diff --git a/Makefile.am b/Makefile.am index 5a55194b..36b1db1e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = 1.0 foreign ansi2knr +AUTOMAKE_OPTIONS = 1.0 foreign SUBDIRS = intl po man lib libmisc src \ - contrib debian doc etc old redhat + contrib debian doc etc redhat # old diff --git a/Makefile.in b/Makefile.in index 5babccf0..b608fad7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -79,6 +79,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -101,18 +102,17 @@ VERSION = @VERSION@ YACC = @YACC@ l = @l@ -AUTOMAKE_OPTIONS = 1.0 foreign ansi2knr +AUTOMAKE_OPTIONS = 1.0 foreign -SUBDIRS = intl po man lib libmisc src contrib debian doc etc old redhat +SUBDIRS = intl po man lib libmisc src contrib debian doc etc redhat # old ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = DIST_COMMON = ./stamp-h.in ABOUT-NLS Makefile.am Makefile.in acconfig.h \ -aclocal.m4 ansi2knr.1 ansi2knr.c config.guess config.h.in config.sub \ -configure configure.in install-sh ltconfig ltmain.sh missing \ -mkinstalldirs +aclocal.m4 config.guess config.h.in config.sub configure configure.in \ +install-sh ltconfig ltmain.sh missing mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) diff --git a/ansi2knr.1 b/ansi2knr.1 deleted file mode 100644 index f9ee5a63..00000000 --- a/ansi2knr.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH ANSI2KNR 1 "19 Jan 1996" -.SH NAME -ansi2knr \- convert ANSI C to Kernighan & Ritchie C -.SH SYNOPSIS -.I ansi2knr -[--varargs] input_file [output_file] -.SH DESCRIPTION -If no output_file is supplied, output goes to stdout. -.br -There are no error messages. -.sp -.I ansi2knr -recognizes function definitions by seeing a non-keyword identifier at the left -margin, followed by a left parenthesis, with a right parenthesis as the last -character on the line, and with a left brace as the first token on the -following line (ignoring possible intervening comments). It will recognize a -multi-line header provided that no intervening line ends with a left or right -brace or a semicolon. These algorithms ignore whitespace and comments, except -that the function name must be the first thing on the line. -.sp -The following constructs will confuse it: -.br - - Any other construct that starts at the left margin and follows the -above syntax (such as a macro or function call). -.br - - Some macros that tinker with the syntax of the function header. -.sp -The --varargs switch is obsolete, and is recognized only for -backwards compatibility. The present version of -.I ansi2knr -will always attempt to convert a ... argument to va_alist and va_dcl. -.SH AUTHOR -L. Peter Deutsch <ghost@aladdin.com> wrote the original ansi2knr and -continues to maintain the current version; most of the code in the current -version is his work. ansi2knr also includes contributions by Francois -Pinard <pinard@iro.umontreal.ca> and Jim Avera <jima@netcom.com>. diff --git a/ansi2knr.c b/ansi2knr.c deleted file mode 100644 index 49624346..00000000 --- a/ansi2knr.c +++ /dev/null @@ -1,609 +0,0 @@ -/* Copyright (C) 1989, 1997, 1998 Aladdin Enterprises. All rights reserved. */ - -/*$Id: ansi2knr.c,v 1.10 1998/12/02 12:42:23 tromey Exp $*/ -/* Convert ANSI C function definitions to K&R ("traditional C") syntax */ - -/* -ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY. No author or distributor accepts responsibility to anyone for the -consequences of using it or for whether it serves any particular purpose or -works at all, unless he says so in writing. Refer to the GNU General Public -License (the "GPL") for full details. - -Everyone is granted permission to copy, modify and redistribute ansi2knr, -but only under the conditions described in the GPL. A copy of this license -is supposed to have been given to you along with ansi2knr so you can know -your rights and responsibilities. It should be in a file named COPYLEFT, -or, if there is no file named COPYLEFT, a file named COPYING. Among other -things, the copyright notice and this notice must be preserved on all -copies. - -We explicitly state here what we believe is already implied by the GPL: if -the ansi2knr program is distributed as a separate set of sources and a -separate executable file which are aggregated on a storage medium together -with another program, this in itself does not bring the other program under -the GPL, nor does the mere fact that such a program or the procedures for -constructing it invoke the ansi2knr executable bring any other part of the -program under the GPL. -*/ - -/* - * Usage: - ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]] - * --filename provides the file name for the #line directive in the output, - * overriding input_file (if present). - * If no input_file is supplied, input is read from stdin. - * If no output_file is supplied, output goes to stdout. - * There are no error messages. - * - * ansi2knr recognizes function definitions by seeing a non-keyword - * identifier at the left margin, followed by a left parenthesis, - * with a right parenthesis as the last character on the line, - * and with a left brace as the first token on the following line - * (ignoring possible intervening comments), except that a line - * consisting of only - * identifier1(identifier2) - * will not be considered a function definition unless identifier2 is - * the word "void". ansi2knr will recognize a multi-line header provided - * that no intervening line ends with a left or right brace or a semicolon. - * These algorithms ignore whitespace and comments, except that - * the function name must be the first thing on the line. - * The following constructs will confuse it: - * - Any other construct that starts at the left margin and - * follows the above syntax (such as a macro or function call). - * - Some macros that tinker with the syntax of the function header. - */ - -/* - * The original and principal author of ansi2knr is L. Peter Deutsch - * <ghost@aladdin.com>. Other authors are noted in the change history - * that follows (in reverse chronological order): - lpd 1998-11-09 added further hack to recognize identifier(void) - as being a procedure - lpd 1998-10-23 added hack to recognize lines consisting of - identifier1(identifier2) as *not* being procedures - lpd 1997-12-08 made input_file optional; only closes input and/or - output file if not stdin or stdout respectively; prints - usage message on stderr rather than stdout; adds - --filename switch (changes suggested by - <ceder@lysator.liu.se>) - lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with - compilers that don't understand void, as suggested by - Tom Lane - lpd 1996-01-15 changed to require that the first non-comment token - on the line following a function header be a left brace, - to reduce sensitivity to macros, as suggested by Tom Lane - <tgl@sss.pgh.pa.us> - lpd 1995-06-22 removed #ifndefs whose sole purpose was to define - undefined preprocessor symbols as 0; changed all #ifdefs - for configuration symbols to #ifs - lpd 1995-04-05 changed copyright notice to make it clear that - including ansi2knr in a program does not bring the entire - program under the GPL - lpd 1994-12-18 added conditionals for systems where ctype macros - don't handle 8-bit characters properly, suggested by - Francois Pinard <pinard@iro.umontreal.ca>; - removed --varargs switch (this is now the default) - lpd 1994-10-10 removed CONFIG_BROKETS conditional - lpd 1994-07-16 added some conditionals to help GNU `configure', - suggested by Francois Pinard <pinard@iro.umontreal.ca>; - properly erase prototype args in function parameters, - contributed by Jim Avera <jima@netcom.com>; - correct error in writeblanks (it shouldn't erase EOLs) - lpd 1989-xx-xx original version - */ - -/* Most of the conditionals here are to make ansi2knr work with */ -/* or without the GNU configure machinery. */ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> -#include <ctype.h> - -#if HAVE_CONFIG_H - -/* - For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h). - This will define HAVE_CONFIG_H and so, activate the following lines. - */ - -# if STDC_HEADERS || HAVE_STRING_H -# include <string.h> -# else -# include <strings.h> -# endif - -#else /* not HAVE_CONFIG_H */ - -/* Otherwise do it the hard way */ - -# ifdef BSD -# include <strings.h> -# else -# ifdef VMS - extern int strlen(), strncmp(); -# else -# include <string.h> -# endif -# endif - -#endif /* not HAVE_CONFIG_H */ - -#if STDC_HEADERS -# include <stdlib.h> -#else -/* - malloc and free should be declared in stdlib.h, - but if you've got a K&R compiler, they probably aren't. - */ -# ifdef MSDOS -# include <malloc.h> -# else -# ifdef VMS - extern char *malloc(); - extern void free(); -# else - extern char *malloc(); - extern int free(); -# endif -# endif - -#endif - -/* - * The ctype macros don't always handle 8-bit characters correctly. - * Compensate for this here. - */ -#ifdef isascii -# undef HAVE_ISASCII /* just in case */ -# define HAVE_ISASCII 1 -#else -#endif -#if STDC_HEADERS || !HAVE_ISASCII -# define is_ascii(c) 1 -#else -# define is_ascii(c) isascii(c) -#endif - -#define is_space(c) (is_ascii(c) && isspace(c)) -#define is_alpha(c) (is_ascii(c) && isalpha(c)) -#define is_alnum(c) (is_ascii(c) && isalnum(c)) - -/* Scanning macros */ -#define isidchar(ch) (is_alnum(ch) || (ch) == '_') -#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_') - -/* Forward references */ -char *skipspace(); -int writeblanks(); -int test1(); -int convert1(); - -/* The main program */ -int -main(argc, argv) - int argc; - char *argv[]; -{ FILE *in = stdin; - FILE *out = stdout; - char *filename = 0; -#define bufsize 5000 /* arbitrary size */ - char *buf; - char *line; - char *more; - char *usage = - "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n"; - /* - * In previous versions, ansi2knr recognized a --varargs switch. - * If this switch was supplied, ansi2knr would attempt to convert - * a ... argument to va_alist and va_dcl; if this switch was not - * supplied, ansi2knr would simply drop any such arguments. - * Now, ansi2knr always does this conversion, and we only - * check for this switch for backward compatibility. - */ - int convert_varargs = 1; - - while ( argc > 1 && argv[1][0] == '-' ) { - if ( !strcmp(argv[1], "--varargs") ) { - convert_varargs = 1; - argc--; - argv++; - continue; - } - if ( !strcmp(argv[1], "--filename") && argc > 2 ) { - filename = argv[2]; - argc -= 2; - argv += 2; - continue; - } - fprintf(stderr, "Unrecognized switch: %s\n", argv[1]); - fprintf(stderr, usage); - exit(1); - } - switch ( argc ) - { - default: - fprintf(stderr, usage); - exit(0); - case 3: - out = fopen(argv[2], "w"); - if ( out == NULL ) { - fprintf(stderr, "Cannot open output file %s\n", argv[2]); - exit(1); - } - /* falls through */ - case 2: - in = fopen(argv[1], "r"); - if ( in == NULL ) { - fprintf(stderr, "Cannot open input file %s\n", argv[1]); - exit(1); - } - if ( filename == 0 ) - filename = argv[1]; - /* falls through */ - case 1: - break; - } - if ( filename ) - fprintf(out, "#line 1 \"%s\"\n", filename); - buf = malloc(bufsize); - line = buf; - while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL ) - { -test: line += strlen(line); - switch ( test1(buf) ) - { - case 2: /* a function header */ - convert1(buf, out, 1, convert_varargs); - break; - case 1: /* a function */ - /* Check for a { at the start of the next line. */ - more = ++line; -f: if ( line >= buf + (bufsize - 1) ) /* overflow check */ - goto wl; - if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL ) - goto wl; - switch ( *skipspace(more, 1) ) - { - case '{': - /* Definitely a function header. */ - convert1(buf, out, 0, convert_varargs); - fputs(more, out); - break; - case 0: - /* The next line was blank or a comment: */ - /* keep scanning for a non-comment. */ - line += strlen(line); - goto f; - default: - /* buf isn't a function header, but */ - /* more might be. */ - fputs(buf, out); - strcpy(buf, more); - line = buf; - goto test; - } - break; - case -1: /* maybe the start of a function */ - if ( line != buf + (bufsize - 1) ) /* overflow check */ - continue; - /* falls through */ - default: /* not a function */ -wl: fputs(buf, out); - break; - } - line = buf; - } - if ( line != buf ) - fputs(buf, out); - free(buf); - if ( out != stdout ) - fclose(out); - if ( in != stdin ) - fclose(in); - return 0; -} - -/* Skip over space and comments, in either direction. */ -char * -skipspace(p, dir) - register char *p; - register int dir; /* 1 for forward, -1 for backward */ -{ for ( ; ; ) - { while ( is_space(*p) ) - p += dir; - if ( !(*p == '/' && p[dir] == '*') ) - break; - p += dir; p += dir; - while ( !(*p == '*' && p[dir] == '/') ) - { if ( *p == 0 ) - return p; /* multi-line comment?? */ - p += dir; - } - p += dir; p += dir; - } - return p; -} - -/* - * Write blanks over part of a string. - * Don't overwrite end-of-line characters. - */ -int -writeblanks(start, end) - char *start; - char *end; -{ char *p; - for ( p = start; p < end; p++ ) - if ( *p != '\r' && *p != '\n' ) - *p = ' '; - return 0; -} - -/* - * Test whether the string in buf is a function definition. - * The string may contain and/or end with a newline. - * Return as follows: - * 0 - definitely not a function definition; - * 1 - definitely a function definition; - * 2 - definitely a function prototype (NOT USED); - * -1 - may be the beginning of a function definition, - * append another line and look again. - * The reason we don't attempt to convert function prototypes is that - * Ghostscript's declaration-generating macros look too much like - * prototypes, and confuse the algorithms. - */ -int -test1(buf) - char *buf; -{ register char *p = buf; - char *bend; - char *endfn; - int contin; - - if ( !isidfirstchar(*p) ) - return 0; /* no name at left margin */ - bend = skipspace(buf + strlen(buf) - 1, -1); - switch ( *bend ) - { - case ';': contin = 0 /*2*/; break; - case ')': contin = 1; break; - case '{': return 0; /* not a function */ - case '}': return 0; /* not a function */ - default: contin = -1; - } - while ( isidchar(*p) ) - p++; - endfn = p; - p = skipspace(p, 1); - if ( *p++ != '(' ) - return 0; /* not a function */ - p = skipspace(p, 1); - if ( *p == ')' ) - return 0; /* no parameters */ - /* Check that the apparent function name isn't a keyword. */ - /* We only need to check for keywords that could be followed */ - /* by a left parenthesis (which, unfortunately, is most of them). */ - { static char *words[] = - { "asm", "auto", "case", "char", "const", "double", - "extern", "float", "for", "if", "int", "long", - "register", "return", "short", "signed", "sizeof", - "static", "switch", "typedef", "unsigned", - "void", "volatile", "while", 0 - }; - char **key = words; - char *kp; - int len = endfn - buf; - - while ( (kp = *key) != 0 ) - { if ( strlen(kp) == len && !strncmp(kp, buf, len) ) - return 0; /* name is a keyword */ - key++; - } - } - { - char *id = p; - int len; - /* - * Check for identifier1(identifier2) and not - * identifier1(void). - */ - - while ( isidchar(*p) ) - p++; - len = p - id; - p = skipspace(p, 1); - if ( *p == ')' && (len != 4 || strncmp(id, "void", 4)) ) - return 0; /* not a function */ - } - /* - * If the last significant character was a ), we need to count - * parentheses, because it might be part of a formal parameter - * that is a procedure. - */ - if (contin > 0) { - int level = 0; - - for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1)) - level += (*p == '(' ? 1 : *p == ')' ? -1 : 0); - if (level > 0) - contin = -1; - } - return contin; -} - -/* Convert a recognized function definition or header to K&R syntax. */ -int -convert1(buf, out, header, convert_varargs) - char *buf; - FILE *out; - int header; /* Boolean */ - int convert_varargs; /* Boolean */ -{ char *endfn; - register char *p; - /* - * The breaks table contains pointers to the beginning and end - * of each argument. - */ - char **breaks; - unsigned num_breaks = 2; /* for testing */ - char **btop; - char **bp; - char **ap; - char *vararg = 0; - - /* Pre-ANSI implementations don't agree on whether strchr */ - /* is called strchr or index, so we open-code it here. */ - for ( endfn = buf; *(endfn++) != '('; ) - ; -top: p = endfn; - breaks = (char **)malloc(sizeof(char *) * num_breaks * 2); - if ( breaks == 0 ) - { /* Couldn't allocate break table, give up */ - fprintf(stderr, "Unable to allocate break table!\n"); - fputs(buf, out); - return -1; - } - btop = breaks + num_breaks * 2 - 2; - bp = breaks; - /* Parse the argument list */ - do - { int level = 0; - char *lp = NULL; - char *rp; - char *end = NULL; - - if ( bp >= btop ) - { /* Filled up break table. */ - /* Allocate a bigger one and start over. */ - free((char *)breaks); - num_breaks <<= 1; - goto top; - } - *bp++ = p; - /* Find the end of the argument */ - for ( ; end == NULL; p++ ) - { switch(*p) - { - case ',': - if ( !level ) end = p; - break; - case '(': - if ( !level ) lp = p; - level++; - break; - case ')': - if ( --level < 0 ) end = p; - else rp = p; - break; - case '/': - p = skipspace(p, 1) - 1; - break; - default: - ; - } - } - /* Erase any embedded prototype parameters. */ - if ( lp ) - writeblanks(lp + 1, rp); - p--; /* back up over terminator */ - /* Find the name being declared. */ - /* This is complicated because of procedure and */ - /* array modifiers. */ - for ( ; ; ) - { p = skipspace(p - 1, -1); - switch ( *p ) - { - case ']': /* skip array dimension(s) */ - case ')': /* skip procedure args OR name */ - { int level = 1; - while ( level ) - switch ( *--p ) - { - case ']': case ')': level++; break; - case '[': case '(': level--; break; - case '/': p = skipspace(p, -1) + 1; break; - default: ; - } - } - if ( *p == '(' && *skipspace(p + 1, 1) == '*' ) - { /* We found the name being declared */ - while ( !isidfirstchar(*p) ) - p = skipspace(p, 1) + 1; - goto found; - } - break; - default: - goto found; - } - } -found: if ( *p == '.' && p[-1] == '.' && p[-2] == '.' ) - { if ( convert_varargs ) - { *bp++ = "va_alist"; - vararg = p-2; - } - else - { p++; - if ( bp == breaks + 1 ) /* sole argument */ - writeblanks(breaks[0], p); - else - writeblanks(bp[-1] - 1, p); - bp--; - } - } - else - { while ( isidchar(*p) ) p--; - *bp++ = p+1; - } - p = end; - } - while ( *p++ == ',' ); - *bp = p; - /* Make a special check for 'void' arglist */ - if ( bp == breaks+2 ) - { p = skipspace(breaks[0], 1); - if ( !strncmp(p, "void", 4) ) - { p = skipspace(p+4, 1); - if ( p == breaks[2] - 1 ) - { bp = breaks; /* yup, pretend arglist is empty */ - writeblanks(breaks[0], p + 1); - } - } - } - /* Put out the function name and left parenthesis. */ - p = buf; - while ( p != endfn ) putc(*p, out), p++; - /* Put out the declaration. */ - if ( header ) - { fputs(");", out); - for ( p = breaks[0]; *p; p++ ) - if ( *p == '\r' || *p == '\n' ) - putc(*p, out); - } - else - { for ( ap = breaks+1; ap < bp; ap += 2 ) - { p = *ap; - while ( isidchar(*p) ) - putc(*p, out), p++; - if ( ap < bp - 1 ) - fputs(", ", out); - } - fputs(") ", out); - /* Put out the argument declarations */ - for ( ap = breaks+2; ap <= bp; ap += 2 ) - (*ap)[-1] = ';'; - if ( vararg != 0 ) - { *vararg = 0; - fputs(breaks[0], out); /* any prior args */ - fputs("va_dcl", out); /* the final arg */ - fputs(bp[0], out); - } - else - fputs(breaks[0], out); - } - free((char *)breaks); - return 0; -} diff --git a/config.h.in b/config.h.in index 61868105..716b7583 100644 --- a/config.h.in +++ b/config.h.in @@ -260,9 +260,15 @@ /* Define if you have the initgroups function. */ #undef HAVE_INITGROUPS +/* Define if you have the lchown function. */ +#undef HAVE_LCHOWN + /* Define if you have the lckpwdf function. */ #undef HAVE_LCKPWDF +/* Define if you have the lstat function. */ +#undef HAVE_LSTAT + /* Define if you have the memcpy function. */ #undef HAVE_MEMCPY diff --git a/configure b/configure index 4a6617af..4c7f3918 100755 --- a/configure +++ b/configure @@ -723,7 +723,7 @@ fi PACKAGE=shadow -VERSION=19990827 +VERSION=20000826 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -3231,7 +3231,7 @@ else fi done -for ac_func in gettimeofday getusershell getutent initgroups lckpwdf +for ac_func in gettimeofday getusershell getutent initgroups lchown lckpwdf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:3238: checking for $ac_func" >&5 @@ -3286,7 +3286,7 @@ else fi done -for ac_func in memcpy memset setgroups sigaction strchr updwtmp updwtmpx +for ac_func in lstat memcpy memset setgroups sigaction strchr updwtmp updwtmpx do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:3293: checking for $ac_func" >&5 @@ -4410,17 +4410,58 @@ fi fi + if test "$with_libskey" = "yes"; then + echo $ac_n "checking for MD5Init in -lmd""... $ac_c" 1>&6 +echo "configure:4417: checking for MD5Init in -lmd" >&5 +ac_lib_var=`echo md'_'MD5Init | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lmd $LIBS" +cat > conftest.$ac_ext <<EOF +#line 4425 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char MD5Init(); + +int main() { +MD5Init() +; return 0; } +EOF +if { (eval echo configure:4436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBMD=-lmd +else + echo "$ac_t""no" 1>&6 +fi + echo $ac_n "checking for skeychallenge in -lskey""... $ac_c" 1>&6 -echo "configure:4416: checking for skeychallenge in -lskey" >&5 +echo "configure:4457: checking for skeychallenge in -lskey" >&5 ac_lib_var=`echo skey'_'skeychallenge | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lskey $LIBCRYPT $LIBS" +LIBS="-lskey $LIBMD $LIBCRYPT $LIBS" cat > conftest.$ac_ext <<EOF -#line 4424 "configure" +#line 4465 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4431,7 +4472,7 @@ int main() { skeychallenge() ; return 0; } EOF -if { (eval echo configure:4435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4456,7 +4497,7 @@ fi elif test "$with_libopie" = "yes"; then echo $ac_n "checking for opiechallenge in -lopie""... $ac_c" 1>&6 -echo "configure:4460: checking for opiechallenge in -lopie" >&5 +echo "configure:4501: checking for opiechallenge in -lopie" >&5 ac_lib_var=`echo opie'_'opiechallenge | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4464,7 +4505,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lopie $LIBCRYPT $LIBS" cat > conftest.$ac_ext <<EOF -#line 4468 "configure" +#line 4509 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4475,7 +4516,7 @@ int main() { opiechallenge() ; return 0; } EOF -if { (eval echo configure:4479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4503,7 +4544,7 @@ fi if test "$with_libtcfs" = "yes"; then echo $ac_n "checking for tcfs_encrypt_key in -ltcfs""... $ac_c" 1>&6 -echo "configure:4507: checking for tcfs_encrypt_key in -ltcfs" >&5 +echo "configure:4548: checking for tcfs_encrypt_key in -ltcfs" >&5 ac_lib_var=`echo tcfs'_'tcfs_encrypt_key | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4511,7 +4552,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltcfs -lgdbm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4515 "configure" +#line 4556 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4522,7 +4563,7 @@ int main() { tcfs_encrypt_key() ; return 0; } EOF -if { (eval echo configure:4526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4558,19 +4599,19 @@ if test "$with_libpam" = "yes"; then EOF echo $ac_n "checking whether pam_strerror needs two arguments""... $ac_c" 1>&6 -echo "configure:4562: checking whether pam_strerror needs two arguments" >&5 +echo "configure:4603: checking whether pam_strerror needs two arguments" >&5 if eval "test \"`echo '$''{'ac_cv_pam_strerror_needs_two_args'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4567 "configure" +#line 4608 "configure" #include "confdefs.h" #include <security/pam_appl.h> int main() { pam_handle_t *pamh; pam_strerror(pamh, PAM_SUCCESS); ; return 0; } EOF -if { (eval echo configure:4574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_pam_strerror_needs_two_args=yes else @@ -4597,21 +4638,21 @@ LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'` echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:4601: checking for inline" >&5 +echo "configure:4642: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 4608 "configure" +#line 4649 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:4615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -4637,12 +4678,12 @@ EOF esac echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:4641: checking for size_t" >&5 +echo "configure:4682: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4646 "configure" +#line 4687 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -4672,19 +4713,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:4676: checking for working alloca.h" >&5 +echo "configure:4717: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4681 "configure" +#line 4722 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -4705,12 +4746,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4709: checking for alloca" >&5 +echo "configure:4750: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4714 "configure" +#line 4755 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -4738,7 +4779,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:4742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -4770,12 +4811,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4774: checking whether alloca needs Cray hooks" >&5 +echo "configure:4815: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4779 "configure" +#line 4820 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -4800,12 +4841,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4804: checking for $ac_func" >&5 +echo "configure:4845: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4809 "configure" +#line 4850 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4828,7 +4869,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4855,7 +4896,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4859: checking stack direction for C alloca" >&5 +echo "configure:4900: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4863,7 +4904,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 4867 "configure" +#line 4908 "configure" #include "confdefs.h" find_stack_direction () { @@ -4882,7 +4923,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -4907,17 +4948,17 @@ for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4911: checking for $ac_hdr" >&5 +echo "configure:4952: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4916 "configure" +#line 4957 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4921: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4962: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4946,12 +4987,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4950: checking for $ac_func" >&5 +echo "configure:4991: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4955 "configure" +#line 4996 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4974,7 +5015,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4999,7 +5040,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:5003: checking for working mmap" >&5 +echo "configure:5044: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5007,7 +5048,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 5011 "configure" +#line 5052 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -5147,7 +5188,7 @@ main() } EOF -if { (eval echo configure:5151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -5175,17 +5216,17 @@ unistd.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5179: checking for $ac_hdr" >&5 +echo "configure:5220: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5184 "configure" +#line 5225 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5215,12 +5256,12 @@ done strdup __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5219: checking for $ac_func" >&5 +echo "configure:5260: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5224 "configure" +#line 5265 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5243,7 +5284,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5272,12 +5313,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5276: checking for $ac_func" >&5 +echo "configure:5317: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5281 "configure" +#line 5322 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5300,7 +5341,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5334,19 +5375,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:5338: checking for LC_MESSAGES" >&5 +echo "configure:5379: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5343 "configure" +#line 5384 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:5350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -5367,7 +5408,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:5371: checking whether NLS is requested" >&5 +echo "configure:5412: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -5387,7 +5428,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:5391: checking whether included gettext is requested" >&5 +echo "configure:5432: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -5406,17 +5447,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:5410: checking for libintl.h" >&5 +echo "configure:5451: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5415 "configure" +#line 5456 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5420: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5433,19 +5474,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:5437: checking for gettext in libc" >&5 +echo "configure:5478: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5442 "configure" +#line 5483 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:5449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -5461,7 +5502,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:5465: checking for bindtextdomain in -lintl" >&5 +echo "configure:5506: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5469,7 +5510,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 5473 "configure" +#line 5514 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5480,7 +5521,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:5484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5496,12 +5537,12 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:5500: checking for gettext in libintl" >&5 +echo "configure:5541: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:5505: checking for gettext in -lintl" >&5 +echo "configure:5546: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5509,7 +5550,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 5513 "configure" +#line 5554 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5520,7 +5561,7 @@ int main() { gettext() ; return 0; } EOF -if { (eval echo configure:5524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5559,7 +5600,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5563: checking for $ac_word" >&5 +echo "configure:5604: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5593,12 +5634,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5597: checking for $ac_func" >&5 +echo "configure:5638: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5602 "configure" +#line 5643 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5621,7 +5662,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5648,7 +5689,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5652: checking for $ac_word" >&5 +echo "configure:5693: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5684,7 +5725,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5688: checking for $ac_word" >&5 +echo "configure:5729: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5716,7 +5757,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 5720 "configure" +#line 5761 "configure" #include "confdefs.h" int main() { @@ -5724,7 +5765,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:5728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -5747,7 +5788,7 @@ fi if test "$CATOBJEXT" = "NONE"; then echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 -echo "configure:5751: checking whether catgets can be used" >&5 +echo "configure:5792: checking whether catgets can be used" >&5 # Check whether --with-catgets or --without-catgets was given. if test "${with_catgets+set}" = set; then withval="$with_catgets" @@ -5760,7 +5801,7 @@ fi if test "$nls_cv_use_catgets" = "yes"; then echo $ac_n "checking for main in -li""... $ac_c" 1>&6 -echo "configure:5764: checking for main in -li" >&5 +echo "configure:5805: checking for main in -li" >&5 ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5768,14 +5809,14 @@ else ac_save_LIBS="$LIBS" LIBS="-li $LIBS" cat > conftest.$ac_ext <<EOF -#line 5772 "configure" +#line 5813 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:5779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5803,12 +5844,12 @@ else fi echo $ac_n "checking for catgets""... $ac_c" 1>&6 -echo "configure:5807: checking for catgets" >&5 +echo "configure:5848: checking for catgets" >&5 if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5812 "configure" +#line 5853 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char catgets(); below. */ @@ -5831,7 +5872,7 @@ catgets(); ; return 0; } EOF -if { (eval echo configure:5835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_catgets=yes" else @@ -5853,7 +5894,7 @@ EOF # Extract the first word of "gencat", so it can be a program name with args. set dummy gencat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5857: checking for $ac_word" >&5 +echo "configure:5898: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5889,7 +5930,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5893: checking for $ac_word" >&5 +echo "configure:5934: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5926,7 +5967,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5930: checking for $ac_word" >&5 +echo "configure:5971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5961,7 +6002,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5965: checking for $ac_word" >&5 +echo "configure:6006: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6019,7 +6060,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6023: checking for $ac_word" >&5 +echo "configure:6064: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6053,7 +6094,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6057: checking for $ac_word" >&5 +echo "configure:6098: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6089,7 +6130,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6093: checking for $ac_word" >&5 +echo "configure:6134: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6182,7 +6223,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:6186: checking for catalogs to be installed" >&5 +echo "configure:6227: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -6210,17 +6251,17 @@ echo "configure:6186: checking for catalogs to be installed" >&5 if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:6214: checking for linux/version.h" >&5 +echo "configure:6255: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6219 "configure" +#line 6260 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6386,7 +6427,8 @@ done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" -trap 'rm -fr `echo "libmisc/Makefile man/Makefile lib/Makefile src/Makefile Makefile +trap 'rm -fr `echo "libmisc/Makefile man/Makefile man/pl/Makefile + lib/Makefile src/Makefile Makefile contrib/Makefile debian/Makefile doc/Makefile etc/Makefile intl/Makefile intl/po2tbl.sed po/Makefile.in etc/pam.d/Makefile old/Makefile @@ -6457,6 +6499,7 @@ s%@LIBOBJS@%$LIBOBJS%g s%@LIBCRYPT@%$LIBCRYPT%g s%@LIBCRACK@%$LIBCRACK%g s%@LIBSKEY@%$LIBSKEY%g +s%@LIBMD@%$LIBMD%g s%@LIBTCFS@%$LIBTCFS%g s%@LIBPAM@%$LIBPAM%g s%@LTLIBOBJS@%$LTLIBOBJS%g @@ -6523,7 +6566,8 @@ EOF cat >> $CONFIG_STATUS <<EOF -CONFIG_FILES=\${CONFIG_FILES-"libmisc/Makefile man/Makefile lib/Makefile src/Makefile Makefile +CONFIG_FILES=\${CONFIG_FILES-"libmisc/Makefile man/Makefile man/pl/Makefile + lib/Makefile src/Makefile Makefile contrib/Makefile debian/Makefile doc/Makefile etc/Makefile intl/Makefile intl/po2tbl.sed po/Makefile.in etc/pam.d/Makefile old/Makefile diff --git a/configure.in b/configure.in index 13d2bc47..aea7d557 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(lib/dialchk.c) -AM_INIT_AUTOMAKE(shadow, 19990827) +AM_INIT_AUTOMAKE(shadow, 20000826) AM_CONFIG_HEADER(config.h) dnl Some hacks... @@ -111,8 +111,8 @@ AC_FUNC_STRFTIME dnl Disabled for now, strtoday.c has problems with year 2000 or later dnl AC_CHECK_FUNCS(strptime) AC_CHECK_FUNCS(a64l fchmod fchown fsync getgroups gethostname getspnam) -AC_CHECK_FUNCS(gettimeofday getusershell getutent initgroups lckpwdf) -AC_CHECK_FUNCS(memcpy memset setgroups sigaction strchr updwtmp updwtmpx) +AC_CHECK_FUNCS(gettimeofday getusershell getutent initgroups lchown lckpwdf) +AC_CHECK_FUNCS(lstat memcpy memset setgroups sigaction strchr updwtmp updwtmpx) AC_REPLACE_FUNCS(mkdir putgrent putpwent putspent rename rmdir) AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent) @@ -259,8 +259,10 @@ if test "$with_libcrack" != "no"; then fi AC_SUBST(LIBSKEY) +AC_SUBST(LIBMD) if test "$with_libskey" = "yes"; then - AC_CHECK_LIB(skey, skeychallenge, AC_DEFINE(SKEY) LIBSKEY=-lskey, , $LIBCRYPT) + AC_CHECK_LIB(md, MD5Init, LIBMD=-lmd) + AC_CHECK_LIB(skey, skeychallenge, AC_DEFINE(SKEY) LIBSKEY=-lskey, , $LIBMD $LIBCRYPT) elif test "$with_libopie" = "yes"; then AC_CHECK_LIB(opie, opiechallenge, AC_DEFINE(OPIE) LIBSKEY=-lopie, , $LIBCRYPT) fi @@ -299,7 +301,8 @@ dnl AC_SUBST(LTALLOCA) AM_GNU_GETTEXT dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) -AC_OUTPUT(libmisc/Makefile man/Makefile lib/Makefile src/Makefile Makefile +AC_OUTPUT(libmisc/Makefile man/Makefile man/pl/Makefile + lib/Makefile src/Makefile Makefile contrib/Makefile debian/Makefile doc/Makefile etc/Makefile intl/Makefile intl/po2tbl.sed po/Makefile.in etc/pam.d/Makefile old/Makefile diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 05aabfef..ea24774e 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -2,4 +2,5 @@ # and also cooperate to make a distribution for `make dist' EXTRA_DIST = README adduser.c adduser-old.c adduser.sh adduser2.sh \ - atudel pwdauth.c rpasswd.c shadow-anonftp.patch udbachk.v012.tgz + atudel groupmems.shar pwdauth.c rpasswd.c shadow-anonftp.patch \ + udbachk.v012.tgz diff --git a/contrib/Makefile.in b/contrib/Makefile.in index 3c4a344f..4f546120 100644 --- a/contrib/Makefile.in +++ b/contrib/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -104,7 +105,7 @@ VERSION = @VERSION@ YACC = @YACC@ l = @l@ -EXTRA_DIST = README adduser.c adduser-old.c adduser.sh adduser2.sh atudel pwdauth.c rpasswd.c shadow-anonftp.patch udbachk.v012.tgz +EXTRA_DIST = README adduser.c adduser-old.c adduser.sh adduser2.sh atudel groupmems.shar pwdauth.c rpasswd.c shadow-anonftp.patch udbachk.v012.tgz mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h diff --git a/contrib/groupmems.shar b/contrib/groupmems.shar new file mode 100644 index 00000000..d45efd2e --- /dev/null +++ b/contrib/groupmems.shar @@ -0,0 +1,546 @@ +#!/bin/sh +# This is a shell archive (produced by GNU sharutils 4.2.1). +# To extract the files from this archive, save it to some FILE, remove +# everything before the `!/bin/sh' line above, then type `sh FILE'. +# +# Made on 2000-05-25 14:41 CDT by <gk4@gnu.austin.ibm.com>. +# Source directory was `/home/gk4/src/groupmem'. +# +# Existing files will *not* be overwritten unless `-c' is specified. +# +# This shar contains: +# length mode name +# ------ ---------- ------------------------------------------ +# 1960 -rw-r--r-- Makefile +# 6348 -rw-r--r-- groupmems.c +# 3372 -rw------- groupmems.8 +# +save_IFS="${IFS}" +IFS="${IFS}:" +gettext_dir=FAILED +locale_dir=FAILED +first_param="$1" +for dir in $PATH +do + if test "$gettext_dir" = FAILED && test -f $dir/gettext \ + && ($dir/gettext --version >/dev/null 2>&1) + then + set `$dir/gettext --version 2>&1` + if test "$3" = GNU + then + gettext_dir=$dir + fi + fi + if test "$locale_dir" = FAILED && test -f $dir/shar \ + && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) + then + locale_dir=`$dir/shar --print-text-domain-dir` + fi +done +IFS="$save_IFS" +if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED +then + echo=echo +else + TEXTDOMAINDIR=$locale_dir + export TEXTDOMAINDIR + TEXTDOMAIN=sharutils + export TEXTDOMAIN + echo="$gettext_dir/gettext -s" +fi +if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then + shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' +elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then + shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' +elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then + shar_touch='touch -am $3$4$5$6$2 "$8"' +else + shar_touch=: + echo + $echo 'WARNING: not restoring timestamps. Consider getting and' + $echo "installing GNU \`touch', distributed in GNU File Utilities..." + echo +fi +rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch +# +if mkdir _sh10937; then + $echo 'x -' 'creating lock directory' +else + $echo 'failed to create lock directory' + exit 1 +fi +# ============= Makefile ============== +if test -f 'Makefile' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'Makefile' '(file already exists)' +else + $echo 'x -' extracting 'Makefile' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'Makefile' && +/* +# Copyright 2000, International Business Machines, Inc. +# All rights reserved. +# +# original author: George Kraft IV, gk4@us.ibm.com +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of International Business Machines, Inc., nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY INTERNATIONAL BUSINESS MACHINES, INC. AND +# CONTRIBUTORS ``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 +# INTERNATIONAL BUSINESS MACHINES, INC. OR CONTRIBUTORS 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. +# +X +all: groupmems +X +groupmems: groupmems.c +X cc -g -o groupmems groupmems.c -L. -lshadow +X +install: groupmems +X -/usr/sbin/groupadd groups +X install -o root -g groups -m 4770 groupmems /usr/bin +X +install.man: groupmems.8 +X install -o root -g root -m 644 groupmems.8 /usr/man/man8 +X +SHAR_EOF + (set 20 00 05 25 14 40 28 'Makefile'; eval "$shar_touch") && + chmod 0644 'Makefile' || + $echo 'restore of' 'Makefile' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'Makefile:' 'MD5 check failed' +b46cf7ef8d59149093c011ced3f3103c Makefile +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Makefile'`" + test 1960 -eq "$shar_count" || + $echo 'Makefile:' 'original size' '1960,' 'current size' "$shar_count!" + fi +fi +# ============= groupmems.c ============== +if test -f 'groupmems.c' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'groupmems.c' '(file already exists)' +else + $echo 'x -' extracting 'groupmems.c' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'groupmems.c' && +/* +X * Copyright 2000, International Business Machines, Inc. +X * All rights reserved. +X * +X * original author: George Kraft IV, gk4@us.ibm.com +X * +X * Redistribution and use in source and binary forms, with or without +X * modification, are permitted provided that the following conditions +X * are met: +X * +X * 1. Redistributions of source code must retain the above copyright +X * notice, this list of conditions and the following disclaimer. +X * 2. Redistributions in binary form must reproduce the above copyright +X * notice, this list of conditions and the following disclaimer in the +X * documentation and/or other materials provided with the distribution. +X * 3. Neither the name of International Business Machines, Inc., nor the +X * names of its contributors may be used to endorse or promote products +X * derived from this software without specific prior written permission. +X * +X * THIS SOFTWARE IS PROVIDED BY INTERNATIONAL BUSINESS MACHINES, INC. AND +X * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +X * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +X * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +X * INTERNATIONAL BUSINESS MACHINES, INC. OR CONTRIBUTORS BE LIABLE +X * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +X * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +X * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +X * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +X * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +X * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +X * SUCH DAMAGE. +X */ +/* +** +** Utility "groupmem" adds and deletes members from a user's group. +** +** Setup (as "root"): +** +** groupadd -r groups +** chmod 2770 groupmems +** chown root.groups groupmems +** groupmems -g groups -a gk4 +** +** Usage (as "gk4"): +** +** groupmems -a olive +** groupmems -a jordan +** groupmems -a meghan +** groupmems -a morgan +** groupmems -a jake +** groupmems -l +** groupmems -d jake +** groupmems -l +*/ +X +#include <stdio.h> +#include <pwd.h> +#include <grp.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include "defines.h" +#include "groupio.h" +X +/* Exit Status Values */ +X +#define EXIT_SUCCESS 0 /* success */ +#define EXIT_USAGE 1 /* invalid command syntax */ +#define EXIT_GROUP_FILE 2 /* group file access problems */ +#define EXIT_NOT_ROOT 3 /* not super user */ +#define EXIT_NOT_EROOT 4 /* not effective super user */ +#define EXIT_NOT_PRIMARY 5 /* not primary owner of group */ +#define EXIT_NOT_MEMBER 6 /* member of group does not exist */ +#define EXIT_MEMBER_EXISTS 7 /* member of group already exists */ +X +#define TRUE 1 +#define FALSE 0 +X +/* Globals */ +X +extern int optind; +extern char *optarg; +static char *adduser = NULL; +static char *deluser = NULL; +static char *thisgroup = NULL; +static int purge = FALSE; +static int list = FALSE; +static int exclusive = 0; +X +static int isroot(void) { +X return getuid() ? FALSE : TRUE; +} +X +static int isgroup(void) { +X gid_t g = getgid(); +X struct group *grp = getgrgid(g); +X +X return TRUE; +} +X +static char *whoami(void) { +X struct group *grp = getgrgid(getgid()); +X struct passwd *usr = getpwuid(getuid()); +X +X if (0 == strcmp(usr->pw_name, grp->gr_name)) { +X return (char *)strdup(usr->pw_name); +X } else { +X return NULL; +X } +} +X +static void +addtogroup(char *user, char **members) { +X int i; +X char **pmembers; +X +X for (i = 0; NULL != members[i]; i++ ) { +X if (0 == strcmp(user, members[i])) { +X fprintf(stderr, "Member already exists\n"); +X exit(EXIT_MEMBER_EXISTS); +X } +X } +X +X if (0 == i) { +X pmembers = (char **)calloc(2, sizeof(char *)); +X } else { +X pmembers = (char **)realloc(members, sizeof(char *)*(i+1)); +X } +X +X *members = *pmembers; +X members[i] = user; +X members[i+1] = NULL; +} +X +static void +rmfromgroup(char *user, char **members) { +X int i; +X int found = FALSE; +X +X i = 0; +X while (!found && NULL != members[i]) { +X if (0 == strcmp(user, members[i])) { +X found = TRUE; +X } else { +X i++; +X } +X } +X +X while (found && NULL != members[i]) { +X members[i] = members[++i]; +X } +X +X if (!found) { +X fprintf(stderr, "Member to remove could not be found\n"); +X exit(EXIT_NOT_MEMBER); +X } +} +X +static void +nomembers(char **members) { +X int i; +X +X for (i = 0; NULL != members[i]; i++ ) { +X members[i] = NULL; +X } +} +X +static void +members(char **members) { +X int i; +X +X for (i = 0; NULL != members[i]; i++ ) { +X printf("%s ", members[i]); +X +X if (NULL == members[i+1]) { +X printf("\n"); +X } else { +X printf(" "); +X } +X } +} +X +static void usage(void) { +X fprintf(stderr, "usage: groupmems -a username | -d username | -D | -l [-g groupname]\n"); +X exit(EXIT_USAGE); +} +X +main(int argc, char **argv) { +X int arg, i; +X char *name; +X struct group *grp; +X +X while ((arg = getopt(argc, argv, "a:d:g:Dl")) != EOF) { +X switch (arg) { +X case 'a': +X adduser = strdup(optarg); +X ++exclusive; +X break; +X case 'd': +X deluser = strdup(optarg); +X ++exclusive; +X break; +X case 'g': +X thisgroup = strdup(optarg); +X break; +X case 'D': +X purge = TRUE; +X ++exclusive; +X break; +X case 'l': +X list = TRUE; +X ++exclusive; +X break; +X default: +X usage(); +X } +X } +X +X if (exclusive > 1 || optind < argc) { +X usage(); +X } +X +X if (!isroot() && NULL != thisgroup) { +X fprintf(stderr, "Only root can add members to different groups\n"); +X exit(EXIT_NOT_ROOT); +X } else if (isroot() && NULL != thisgroup) { +X name = thisgroup; +X } else if (!isgroup()) { +X fprintf(stderr, "Group access is required\n"); +X exit(EXIT_NOT_EROOT); +X } else if (NULL == (name = whoami())) { +X fprintf(stderr, "Not primary owner of current group\n"); +X exit(EXIT_NOT_PRIMARY); +X } +X +X if (!gr_lock()) { +X fprintf(stderr, "Unable to lock group file\n"); +X exit(EXIT_GROUP_FILE); +X } +X +X if (!gr_open(O_RDWR)) { +X fprintf(stderr, "Unable to open group file\n"); +X exit(EXIT_GROUP_FILE); +X } +X +X grp = (struct group *)gr_locate(name); +X +X if (NULL != adduser) { +X addtogroup(adduser, grp->gr_mem); +X gr_update(grp); +X } else if (NULL != deluser) { +X rmfromgroup(deluser, grp->gr_mem); +X gr_update(grp); +X } else if (purge) { +X nomembers(grp->gr_mem); +X gr_update(grp); +X } else if (list) { +X members(grp->gr_mem); +X } +X +X if (!gr_close()) { +X fprintf(stderr, "Cannot close group file\n"); +X exit(EXIT_GROUP_FILE); +X } +X +X gr_unlock(); +X +X exit(EXIT_SUCCESS); +} +X +/* EOF */ +SHAR_EOF + (set 20 00 05 25 14 36 38 'groupmems.c'; eval "$shar_touch") && + chmod 0644 'groupmems.c' || + $echo 'restore of' 'groupmems.c' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'groupmems.c:' 'MD5 check failed' +f0dd68f8d762d89d24d3ce1f4141f981 groupmems.c +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'groupmems.c'`" + test 6348 -eq "$shar_count" || + $echo 'groupmems.c:' 'original size' '6348,' 'current size' "$shar_count!" + fi +fi +# ============= groupmems.8 ============== +if test -f 'groupmems.8' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'groupmems.8' '(file already exists)' +else + $echo 'x -' extracting 'groupmems.8' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'groupmems.8' && +X.\" +X.\" Copyright 2000, International Business Machines, Inc. +X.\" All rights reserved. +X.\" +X.\" original author: George Kraft IV, gk4@us.ibm.com +X.\" +X.\" Redistribution and use in source and binary forms, with or without +X.\" modification, are permitted provided that the following conditions +X.\" are met: +X.\" +X.\" 1. Redistributions of source code must retain the above copyright +X.\" notice, this list of conditions and the following disclaimer. +X.\" 2. Redistributions in binary form must reproduce the above copyright +X.\" notice, this list of conditions and the following disclaimer in the +X.\" documentation and/or other materials provided with the distribution. +X.\" 3. Neither the name of International Business Machines, Inc., nor the +X.\" names of its contributors may be used to endorse or promote products +X.\" derived from this software without specific prior written permission. +X.\" +X.\" THIS SOFTWARE IS PROVIDED BY INTERNATIONAL BUSINESS MACHINES, INC. AND +X.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +X.\" BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +X.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +X.\" INTERNATIONAL BUSINESS MACHINES, INC. OR CONTRIBUTORS BE LIABLE +X.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +X.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +X.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +X.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +X.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +X.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +X.\" SUCH DAMAGE. +X.\" +X.\" $Id: groupmems.shar,v 1.1 2000/08/26 18:37:32 marekm Exp $ +X.\" +X.TH GROUPMEMS 8 +X.SH NAME +groupmems \- Administer members of a user's primary group +X.SH SYNOPSIS +X.B groupmems +\fB-a\fI user_name \fR | +\fB-d\fI user_name \fR | +\fB-l\fR | +\fB-D\fR | +[\fB-g\fI group_name \fR] +X.SH DESCRIPTION +The \fBgroupmems\fR utility allows a user to administer his/her own +group membership list without the requirement of super user privileges. +The \fBgroupmems\fR utility is for systems that configure its users to +be in their own name sake primary group (i.e., guest / guest). +X.P +Only the super user, as administrator, can use \fBgroupmems\fR to alter +the memberships of other groups. +X.IP "\fB-a \fIuser_name\fR" +Add a new user to the group membership list. +X.IP "\fB-d \fIuser_name\fR" +Delete a user from the group membership list. +X.IP "\fB-l\fR" +List the group membership list. +X.IP "\fB-D\fR" +Delete all users from the group membership list. +X.IP "\fB-g \fIgroup_name\fR" +The super user can specify which group membership list to modify. +X.SH SETUP +The \fBgroupmems\fR executable should be in mode \fB2770\fR as user \fBroot\fR +and in group \fBgroups\fR. The system administrator can add users to +group groups to allow or disallow them using the \fBgroupmems\fR utility +to manager their own group membership list. +X.P +X $ groupadd -r groups +X.br +X $ chmod 2770 groupmems +X.br +X $ chown root.groups groupmems +X.br +X $ groupmems -g groups -a gk4 +X.SH FILES +/etc/group +X.br +/etc/gshadow +X.SH SEE ALSO +X.BR chfn (1), +X.BR chsh (1), +X.BR useradd (8), +X.BR userdel (8), +X.BR usermod (8), +X.BR passwd (1), +X.BR groupadd (8), +X.BR groupdel (8) +X.SH AUTHOR +George Kraft IV (gk4@us.ibm.com) +X.\" EOF +SHAR_EOF + (set 20 00 05 25 14 38 23 'groupmems.8'; eval "$shar_touch") && + chmod 0600 'groupmems.8' || + $echo 'restore of' 'groupmems.8' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'groupmems.8:' 'MD5 check failed' +181e6cd3a3c9d3df320197fa2cde2b4a groupmems.8 +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'groupmems.8'`" + test 3372 -eq "$shar_count" || + $echo 'groupmems.8:' 'original size' '3372,' 'current size' "$shar_count!" + fi +fi +rm -fr _sh10937 +exit 0 diff --git a/debian/Makefile.in b/debian/Makefile.in index f1ad4f6b..4e64b180 100644 --- a/debian/Makefile.in +++ b/debian/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ diff --git a/debian/login.copyright b/debian/login.copyright index 727bc1b7..a848548c 100644 --- a/debian/login.copyright +++ b/debian/login.copyright @@ -32,7 +32,7 @@ SUCH DAMAGE. This source code is currently archived on ftp.uu.net in the comp.sources.misc portion of the USENET archives. You may also contact -the author, Julianne F. Haugh, at jfh@bga.com if you have +the author, Julianne F. Haugh, at jfh@austin.ibm.com if you have any questions regarding this package. THIS SOFTWARE IS BEING DISTRIBUTED AS-IS. THE AUTHORS DISCLAIM ALL diff --git a/debian/passwd.copyright b/debian/passwd.copyright index e032df5f..701d899f 100644 --- a/debian/passwd.copyright +++ b/debian/passwd.copyright @@ -32,7 +32,7 @@ SUCH DAMAGE. This source code is currently archived on ftp.uu.net in the comp.sources.misc portion of the USENET archives. You may also contact -the author, Julianne F. Haugh, at jfh@bga.com if you have +the author, Julianne F. Haugh, at jfh@austin.ibm.com if you have any questions regarding this package. THIS SOFTWARE IS BEING DISTRIBUTED AS-IS. THE AUTHORS DISCLAIM ALL diff --git a/debian/secure-su.copyright b/debian/secure-su.copyright index 4e5a0ea7..de1479c6 100644 --- a/debian/secure-su.copyright +++ b/debian/secure-su.copyright @@ -31,7 +31,7 @@ SUCH DAMAGE. This source code is currently archived on ftp.uu.net in the comp.sources.misc portion of the USENET archives. You may also contact -the author, Julianne F. Haugh, at jfh@bga.com if you have +the author, Julianne F. Haugh, at jfh@austin.ibm.com if you have any questions regarding this package. THIS SOFTWARE IS BEING DISTRIBUTED AS-IS. THE AUTHORS DISCLAIM ALL diff --git a/doc/ANNOUNCE b/doc/ANNOUNCE index e4c24101..a19ad596 100644 --- a/doc/ANNOUNCE +++ b/doc/ANNOUNCE @@ -1,4 +1,4 @@ -$Id: ANNOUNCE,v 1.3 1998/01/29 23:22:25 marekm Exp $ +$Id: ANNOUNCE,v 1.4 2000/08/26 18:27:09 marekm Exp $ [ This is the original comp.os.linux.announce posting (only the author's name and e-mail address has been updated), kept here @@ -10,7 +10,7 @@ $Id: ANNOUNCE,v 1.3 1998/01/29 23:22:25 marekm Exp $ This is a new beta release of the Shadow Password Suite for Linux. Many bugs have been reported (and fixed!), and the package is now under a BSD-style copyright. It was written by Julianne F. Haugh -<jfh@tab.com>, and the Linux port is now maintained by me. +<jfh@austin.ibm.com>, and the Linux port is now maintained by me. Again, this is beta software which may still have some bugs, please treat it as such. Please don't install it if you don't know what @@ -34,7 +34,7 @@ Version: 3.3.3-951218 Entered-date: 18DEC95 Description: Keywords: login passwd security shadow -Author: jfh@tab.com (Julie Haugh) +Author: jfh@austin.ibm.com (Julie Haugh) Maintained-by: marekm@i17linuxb.ists.pwr.wroc.pl (Marek Michalkiewicz) Primary-site: sunsite.unc.edu /pub/Linux/system/Admin 220K shadow-951218.tar.gz diff --git a/doc/CHANGES b/doc/CHANGES index 2e1c54be..d25ec5b1 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,4 +1,23 @@ -$Id: CHANGES,v 1.28 1999/08/27 19:02:50 marekm Exp $ +$Id: CHANGES,v 1.29 2000/08/26 18:27:09 marekm Exp $ + +shadow-19990827 => shadow-20000826 + +WARNING: this release is not tested (other than that it compiles for me), +please be careful. Previous release was a year ago, so it is really time +to release something and start looking for a new, better maintainer... +(I've been extremely busy recently. Credit for most of the real work, +such as complete PAM support, should go to Ben Collins <bcollins@debian.org> +who maintains this package for Debian.) + +- merged most of the changes from Debian (not all of them yet, PAM support + should be complete but is not tested - need to upgrade to potato first) +- added Polish translations of manual pages from PLD +- change sulog() to not depend on global variables oldname, name +- try to not follow symbolic links when deleting files recursively + in userdel (still not perfect, safest to do it in single user mode) +- removed workarounds for ancient (pre-ANSI) C compilers - use gcc! + (a few ANSI C constructs were used already, and no one complained) +- updated author's e-mail address (jfh@bga.com -> jfh@austin.ibm.com) shadow-19990709 => shadow-19990827 diff --git a/doc/LSM b/doc/LSM index def653a3..39186a20 100644 --- a/doc/LSM +++ b/doc/LSM @@ -1,17 +1,17 @@ Begin3 Title: Shadow Password Suite -Version: 19990827 -Entered-date: 27AUG99 +Version: 20000826 +Entered-date: 26AUG00 Description: Shadow password file utilities. This package includes the programs necessary to convert traditional V7 UNIX password files to the SVR4 shadow password format, and additional tools to maintain password and group files (that work with both shadow and non-shadow passwords). Keywords: login passwd security shadow -Author: jfh@bga.com (Julianne F. Haugh) +Author: jfh@austin.ibm.com (Julianne F. Haugh) Maintained-by: marekm@linux.org.pl (Marek Michalkiewicz) Primary-site: piast.t19.ds.pwr.wroc.pl /pub/linux/shadow/ - 707K shadow-19990827.tar.gz + 717K shadow-20000826.tar.gz Alternate-site: ftp.ists.pwr.wroc.pl /pub/linux/shadow/ Original-site: ftp.uu.net ? Platforms: Linux, SunOS, ... diff --git a/doc/Makefile.in b/doc/Makefile.in index 49102d75..b4ee0917 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ diff --git a/doc/README b/doc/README index b94f3322..c177638f 100644 --- a/doc/README +++ b/doc/README @@ -1,4 +1,4 @@ -[ $Id: README,v 1.3 1998/12/28 20:34:27 marekm Exp $ ] +[ $Id: README,v 1.4 2000/08/26 18:27:09 marekm Exp $ ] This is the explanatory document for Julianne Frances Haugh's login replacement, release 3. This document was last updated 16 Feb 1997. @@ -32,7 +32,7 @@ SUCH DAMAGE. This source code is currently archived on ftp.uu.net in the comp.sources.misc portion of the USENET archives. You may also contact -the author, Julianne F. Haugh, at jfh@bga.com if you have any questions +the author, Julianne F. Haugh, at jfh@austin.ibm.com if you have any questions regarding this package. THIS SOFTWARE IS BEING DISTRIBUTED AS-IS. THE AUTHORS DISCLAIM ALL diff --git a/doc/README.linux b/doc/README.linux index 4159b0a7..cd55c940 100644 --- a/doc/README.linux +++ b/doc/README.linux @@ -1,4 +1,4 @@ -$Id: README.linux,v 1.19 1999/06/07 16:40:44 marekm Exp $ +$Id: README.linux,v 1.20 2000/08/26 18:27:09 marekm Exp $ This is the shadow suite hacked a bit for Linux. See CHANGES for short description of changes. See also WISHLIST if you have too @@ -66,7 +66,7 @@ The code feels like stabilizing now - while still BETA, it should work quite well. Many bugs have been fixed, but there may be still a few lurking. Again, please test it and report any problems. -Thanks to Julianne Frances Haugh <jfh@bga.com> who wrote the thing +Thanks to Julianne Frances Haugh <jfh@austin.ibm.com> who wrote the thing in the first place, sent me the latest version, and released it under a "free" BSD-style license, so that it can be included in Linux distributions (at least Debian 1.3 and Slackware 3.2 are already @@ -75,6 +75,9 @@ the standard source tree). David Frey <David.Frey@lugs.ch>, Michael Meskes <meskes@topsystem.de> and Guy Maor <maor@debian.org> have done a lot of work to integrate shadow passwords into Debian Linux. +Ben Collins <bcollins@debian.org> maintains this package for Debian +and added complete PAM support, now available in Debian 2.2. + Thanks to Bradley Glonka <bradley@123.net> of Linux System Labs (http://www.lsl.com/) for sending me a free Red Hat 4.2 CD-ROM, making it possible to test this package on this distribution. @@ -110,6 +113,7 @@ Judd Bourgeois <shagboy@bluesky.net> Ulisses Alonso Camaro <ulisses@pusa.eleinf.uv.es> Ed Carp <ecarp@netcom.com> Rani Chouha <ranibey@smartec.com> +Ben Collins <bcollins@debian.org> Joshua Cowan <jcowan@hermit.reslife.okstate.edu> Alan Curry <pacman@tardis.mars.net> Frank Denis <j@4u.net> diff --git a/doc/README.mirrors b/doc/README.mirrors index fbb3a57e..ddc96115 100644 --- a/doc/README.mirrors +++ b/doc/README.mirrors @@ -19,10 +19,12 @@ Working mirrors that I know of, sorted by country (note: I removed a few mirrors that didn't work when I tried to access them several times - if any of them are still alive, please let me know): +(XXX - list may be out of date now.) + Brazil: - ftp://ftp.athena.del.ufrj.br/pub/linux/shadow_password/ - Rafael Jorge Csura Szendrodi <szendro@santuario.del.ufrj.br> + ftp://ftp.athena.pads.ufrj.br/pub/linux/shadow/ + Rafael Jorge Csura Szendrodi <szendro@santuario.pads.ufrj.br> Czech Republic: diff --git a/doc/README.pam b/doc/README.pam index 222b5820..4a873640 100644 --- a/doc/README.pam +++ b/doc/README.pam @@ -1,18 +1,24 @@ About PAM support in the Shadow Password Suite -Warning: this code is still considered ALPHA. It is still incomplete, -and needs more testing. Please let me know if it works, or if something -doesn't work. +Warning: this code is still considered BETA. It needs more testing. +Please let me know if it works, or if something doesn't work. -Use "./configure --with-libpam" to enable PAM support. Right now it only -works for the passwd and su applications. PAM support still needs to be -implemented in login. +Use "./configure --with-libpam" to enable PAM support in the login, +passwd and su applications. When compiled with PAM support enabled, the following traditional features of the shadow suite are not implemented directly in the applications - instead, they should be implemented in the PAM modules. +login: + - /etc/login.access + - /etc/porttime + - resource limits + - console groups + - password expiration / password strength checks + - /etc/motd and mail check + passwd: - administrator defined authentication methods - TCFS support @@ -27,10 +33,3 @@ su: - time restrictions - resource limits -Known problems: - - the pam_limits module doesn't work with su - it should be changed - to set the limits in pam_setcred() instead of pam_open_session() - (this version of su doesn't open any new sessions, like Solaris su - and unlike SimplePAMApps su) - - PAM support still needs to be implemented in login - diff --git a/doc/WISHLIST b/doc/WISHLIST index abdb1919..8ae49d50 100644 --- a/doc/WISHLIST +++ b/doc/WISHLIST @@ -1,4 +1,4 @@ -$Id: WISHLIST,v 1.23 1999/08/27 19:02:50 marekm Exp $ +$Id: WISHLIST,v 1.24 2000/08/26 18:27:09 marekm Exp $ This is my wishlist for the shadow suite, in no particular order. Feel free to do anything from this list and mail me the diffs :-). @@ -16,7 +16,6 @@ New ideas to add to this list are welcome, too. --marekm - update man pages to reflect all the changes (real programmers ... :-) - patch for rlogind/telnetd to create utmp entry and fill in ut_addr - fix the usermod -l bug properly [for now it's OK - #undef AUTH_METHODS] -- IMPORTANT: finish PAM support (passwd, su - done, untested; login - started) - option to specify encrypted password in passwd (for yppasswdd, so it doesn't need to know about shadow/non-shadow); should probably use a pipe (less insecure than command line arguments) @@ -28,7 +27,7 @@ New ideas to add to this list are welcome, too. --marekm - poppassd (remote password change for eudora etc.) - add support for passwd/shadow db files (glibc) - better documentation -- su -l, -m, -p, -s options (as in GNU su) +- su -l, -m, -p, -s options (as in GNU su) - done in the Debian patches - vipw: check password files for errors after editing - clean up login utmp(x) handling code - add "maximum time users allowed to stay logged in" limit option to logoutd @@ -46,10 +45,7 @@ New ideas to add to this list are welcome, too. --marekm (and use UID_MIN, UID_MAX from login.defs) - newusers should be able to copy /etc/skel to the new home directory (like useradd) -- include i18n files in Debian packages -- integrate the latest upstream version into the Debian distribution - (as of this writing, they still have shadow-980403 with huge diff, - and many bugs have been fixed since then) +- integrate the changes from Debian (complete PAM support, bug fixes) - add directories where other packages can add hooks for package-specific per-user configuration, to be executed with run-parts. Some hooks should be executed at package install time for existing users, likewise for diff --git a/etc/Makefile.in b/etc/Makefile.in index 935cbba1..c27dab48 100644 --- a/etc/Makefile.in +++ b/etc/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ diff --git a/etc/login.defs.hurd b/etc/login.defs.hurd index 0f4e8852..e7cdb4df 100644 --- a/etc/login.defs.hurd +++ b/etc/login.defs.hurd @@ -1,7 +1,7 @@ # # /etc/login.defs - Configuration control definitions for the login package. # -# $Id: login.defs.hurd,v 1.1 1999/08/27 19:02:50 marekm Exp $ +# $Id: login.defs.hurd,v 1.2 2000/08/26 18:27:10 marekm Exp $ # # One item must be defined: MAIL_DIR. # If unspecified, some arbitrary (and possibly incorrect) value will @@ -137,5 +137,7 @@ CHFN_RESTRICT rwh # (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is # the same as gid, and username is the same as the primary group name. # +# This also enables userdel to remove user groups if no members exist. +# USERGROUPS_ENAB yes diff --git a/etc/login.defs.linux b/etc/login.defs.linux index 71eac826..94402934 100644 --- a/etc/login.defs.linux +++ b/etc/login.defs.linux @@ -1,7 +1,7 @@ # # /etc/login.defs - Configuration control definitions for the login package. # -# $Id: login.defs.linux,v 1.11 1999/08/27 19:02:50 marekm Exp $ +# $Id: login.defs.linux,v 1.12 2000/08/26 18:27:10 marekm Exp $ # # Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. # If unspecified, some arbitrary (and possibly incorrect) value will @@ -364,5 +364,7 @@ ENVIRON_FILE /etc/environment # (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is # the same as gid, and username is the same as the primary group name. # +# This also enables userdel to remove user groups if no members exist. +# USERGROUPS_ENAB yes diff --git a/etc/pam.d/Makefile.in b/etc/pam.d/Makefile.in index 53198294..83dbbb8b 100644 --- a/etc/pam.d/Makefile.in +++ b/etc/pam.d/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ diff --git a/lib/Makefile.am b/lib/Makefile.am index d9b8572f..f3de6fe0 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -45,7 +45,7 @@ libdir = ${exec_prefix}/lib #lib_PROGRAMS = libshadow.la lib_LTLIBRARIES = libshadow.la libshadow_la_SOURCES = ${libshadow_a_SOURCES} -#libshadow_la_LIBADD = @LTLIBOBJS@ +libshadow_la_LIBADD = @LTLIBOBJS@ #libshadow_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) libshadow_la_LDFLAGS = -version-info 0:0:0 diff --git a/lib/Makefile.in b/lib/Makefile.in index 9def3a2b..d28a1db4 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -78,6 +78,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -138,7 +139,7 @@ libdir = ${exec_prefix}/lib #lib_PROGRAMS = libshadow.la lib_LTLIBRARIES = libshadow.la libshadow_la_SOURCES = ${libshadow_a_SOURCES} -#libshadow_la_LIBADD = @LTLIBOBJS@ +libshadow_la_LIBADD = @LTLIBOBJS@ #libshadow_la_LDFLAGS = -version-info 0:0:0 -rpath $(libdir) libshadow_la_LDFLAGS = -version-info 0:0:0 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -156,7 +157,7 @@ rad64.o sgroupio.o shadow.o shadowio.o utent.o tcfsio.o AR = ar LTLIBRARIES = $(lib_LTLIBRARIES) -libshadow_la_LIBADD = +libshadow_la_DEPENDENCIES = @LTLIBOBJS@ libshadow_la_OBJECTS = commonio.lo dialchk.lo dialup.lo encrypt.lo \ fputsx.lo getdef.lo getpass.lo groupio.lo gshadow.lo lockpw.lo port.lo \ pwauth.lo pwio.lo rad64.lo sgroupio.lo shadow.lo shadowio.lo utent.lo \ @@ -335,14 +336,17 @@ gshadow.lo gshadow.o : gshadow.c ../config.h rcsid.h prototypes.h \ defines.h gshadow_.h lockpw.lo lockpw.o : lockpw.c ../config.h port.lo port.o : port.c ../config.h rcsid.h defines.h gshadow_.h port.h -putgrent.o: putgrent.c ../config.h prototypes.h defines.h gshadow_.h +putgrent.lo putgrent.o : putgrent.c ../config.h prototypes.h defines.h \ + gshadow_.h pwauth.lo pwauth.o : pwauth.c ../config.h rcsid.h prototypes.h defines.h \ gshadow_.h pwauth.h getdef.h pwio.lo pwio.o : pwio.c ../config.h rcsid.h prototypes.h defines.h \ gshadow_.h commonio.h pwio.h rad64.lo rad64.o : rad64.c ../config.h rcsid.h -sgetgrent.o: sgetgrent.c ../config.h rcsid.h defines.h gshadow_.h -sgetpwent.o: sgetpwent.c ../config.h rcsid.h defines.h gshadow_.h +sgetgrent.lo sgetgrent.o : sgetgrent.c ../config.h rcsid.h defines.h \ + gshadow_.h +sgetpwent.lo sgetpwent.o : sgetpwent.c ../config.h rcsid.h defines.h \ + gshadow_.h sgroupio.lo sgroupio.o : sgroupio.c ../config.h rcsid.h prototypes.h \ defines.h gshadow_.h commonio.h sgroupio.h shadowio.lo shadowio.o : shadowio.c ../config.h rcsid.h prototypes.h \ diff --git a/lib/commonio.c b/lib/commonio.c index 2bee8838..6343f956 100644 --- a/lib/commonio.c +++ b/lib/commonio.c @@ -2,7 +2,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: commonio.c,v 1.14 1998/07/23 22:13:15 marekm Exp $") +RCSID("$Id: commonio.c,v 1.15 2000/08/26 18:27:17 marekm Exp $") #include "defines.h" #include <sys/stat.h> @@ -19,15 +19,15 @@ RCSID("$Id: commonio.c,v 1.14 1998/07/23 22:13:15 marekm Exp $") #include "commonio.h" /* local function prototypes */ -static int check_link_count P_((const char *)); -static int do_lock_file P_((const char *, const char *)); -static FILE *fopen_set_perms P_((const char *, const char *, const struct stat *)); -static int create_backup P_((const char *, FILE *)); -static void free_linked_list P_((struct commonio_db *)); -static void add_one_entry P_((struct commonio_db *, struct commonio_entry *)); -static int name_is_nis P_((const char *)); -static int write_all P_((const struct commonio_db *)); -static struct commonio_entry *find_entry_by_name P_((struct commonio_db *, const char *)); +static int check_link_count(const char *); +static int do_lock_file(const char *, const char *); +static FILE *fopen_set_perms(const char *, const char *, const struct stat *); +static int create_backup(const char *, FILE *); +static void free_linked_list(struct commonio_db *); +static void add_one_entry(struct commonio_db *, struct commonio_entry *); +static int name_is_nis(const char *); +static int write_all(const struct commonio_db *); +static struct commonio_entry *find_entry_by_name(struct commonio_db *, const char *); #ifdef HAVE_LCKPWDF static int lock_count = 0; @@ -199,8 +199,8 @@ free_linked_list(struct commonio_db *db) if (p->line) free(p->line); - if (p->entry) - db->ops->free(p->entry); + if (p->eptr) + db->ops->free(p->eptr); free(p); } @@ -354,26 +354,26 @@ name_is_nis(const char *n) #if KEEP_NIS_AT_END /* prototype */ -static void add_one_entry_nis P_((struct commonio_db *, struct commonio_entry *)); +static void add_one_entry_nis(struct commonio_db *, struct commonio_entry *); static void -add_one_entry_nis(struct commonio_db *db, struct commonio_entry *new) +add_one_entry_nis(struct commonio_db *db, struct commonio_entry *newp) { struct commonio_entry *p; for (p = db->head; p; p = p->next) { - if (name_is_nis(p->entry ? db->ops->getname(p->entry) : p->line)) { - new->next = p; - new->prev = p->prev; + if (name_is_nis(p->eptr ? db->ops->getname(p->eptr) : p->line)) { + newp->next = p; + newp->prev = p->prev; if (p->prev) - p->prev->next = new; + p->prev->next = newp; else - db->head = new; - p->prev = new; + db->head = newp; + p->prev = newp; return; } } - add_one_entry(db, new); + add_one_entry(db, newp); } #endif /* KEEP_NIS_AT_END */ @@ -385,7 +385,7 @@ commonio_open(struct commonio_db *db, int mode) char *cp; char *line; struct commonio_entry *p; - void *entry; + void *eptr; int flags = mode; mode &= ~O_CREAT; @@ -425,10 +425,10 @@ commonio_open(struct commonio_db *db, int mode) goto cleanup; if (name_is_nis(line)) { - entry = NULL; - } else if ((entry = db->ops->parse(line))) { - entry = db->ops->dup(entry); - if (!entry) + eptr = NULL; + } else if ((eptr = db->ops->parse(line))) { + eptr = db->ops->dup(eptr); + if (!eptr) goto cleanup_line; } @@ -436,7 +436,7 @@ commonio_open(struct commonio_db *db, int mode) if (!p) goto cleanup_entry; - p->entry = entry; + p->eptr = eptr; p->line = line; p->changed = 0; @@ -447,8 +447,8 @@ commonio_open(struct commonio_db *db, int mode) return 1; cleanup_entry: - if (entry) - db->ops->free(entry); + if (eptr) + db->ops->free(eptr); cleanup_line: free(line); cleanup: @@ -464,12 +464,12 @@ static int write_all(const struct commonio_db *db) { const struct commonio_entry *p; - void *entry; + void *eptr; for (p = db->head; p; p = p->next) { if (p->changed) { - entry = p->entry; - if (db->ops->put(entry, db->fp)) + eptr = p->eptr; + if (db->ops->put(eptr, db->fp)) return -1; } else if (p->line) { if (db->ops->fputs(p->line, db->fp) == EOF) @@ -581,7 +581,7 @@ find_entry_by_name(struct commonio_db *db, const char *name) void *ep; for (p = db->head; p; p = p->next) { - ep = p->entry; + ep = p->eptr; if (ep && strcmp(db->ops->getname(ep), name) == 0) break; } @@ -590,7 +590,7 @@ find_entry_by_name(struct commonio_db *db, const char *name) int -commonio_update(struct commonio_db *db, const void *entry) +commonio_update(struct commonio_db *db, const void *eptr) { struct commonio_entry *p; void *nentry; @@ -599,14 +599,14 @@ commonio_update(struct commonio_db *db, const void *entry) errno = EINVAL; return 0; } - if (!(nentry = db->ops->dup(entry))) { + if (!(nentry = db->ops->dup(eptr))) { errno = ENOMEM; return 0; } - p = find_entry_by_name(db, db->ops->getname(entry)); + p = find_entry_by_name(db, db->ops->getname(eptr)); if (p) { - db->ops->free(p->entry); - p->entry = nentry; + db->ops->free(p->eptr); + p->eptr = nentry; p->changed = 1; db->cursor = p; @@ -621,7 +621,7 @@ commonio_update(struct commonio_db *db, const void *entry) return 0; } - p->entry = nentry; + p->eptr = nentry; p->line = NULL; p->changed = 1; @@ -676,8 +676,8 @@ commonio_remove(struct commonio_db *db, const char *name) if (p->line) free(p->line); - if (p->entry) - db->ops->free(p->entry); + if (p->eptr) + db->ops->free(p->eptr); return 1; } @@ -698,7 +698,7 @@ commonio_locate(struct commonio_db *db, const char *name) return NULL; } db->cursor = p; - return p->entry; + return p->eptr; } @@ -717,7 +717,7 @@ commonio_rewind(struct commonio_db *db) const void * commonio_next(struct commonio_db *db) { - void *entry; + void *eptr; if (!db->isopen) { errno = EINVAL; @@ -729,9 +729,9 @@ commonio_next(struct commonio_db *db) db->cursor = db->cursor->next; while (db->cursor) { - entry = db->cursor->entry; - if (entry) - return entry; + eptr = db->cursor->eptr; + if (eptr) + return eptr; db->cursor = db->cursor->next; } diff --git a/lib/commonio.h b/lib/commonio.h index 98da1640..6968692b 100644 --- a/lib/commonio.h +++ b/lib/commonio.h @@ -1,11 +1,11 @@ -/* $Id: commonio.h,v 1.4 1998/01/29 23:22:27 marekm Exp $ */ +/* $Id: commonio.h,v 1.5 2000/08/26 18:27:17 marekm Exp $ */ /* * Linked list entry. */ struct commonio_entry { char *line; - void *entry; /* struct passwd, struct spwd, ... */ + void *eptr; /* struct passwd, struct spwd, ... */ struct commonio_entry *prev, *next; int changed:1; }; @@ -18,37 +18,37 @@ struct commonio_ops { * Make a copy of the object (for example, struct passwd) * and all strings pointed by it, in malloced memory. */ - void * (*dup) P_((const void *)); + void *(*dup)(const void *); /* * free() the object including any strings pointed by it. */ - void (*free) P_((void *)); + void (*free)(void *); /* * Return the name of the object (for example, pw_name * for struct passwd). */ - const char * (*getname) P_((const void *)); + const char *(*getname)(const void *); /* * Parse a string, return object (in static area - * should be copied using the dup operation above). */ - void * (*parse) P_((const char *)); + void *(*parse)(const char *); /* * Write the object to the file (this calls putpwent() * for struct passwd, for example). */ - int (*put) P_((const void *, FILE *)); + int (*put)(const void *, FILE *); /* * fgets and fputs (can be replaced by versions that * understand line continuation conventions). */ - char * (*fgets) P_((char *, int, FILE *)); - int (*fputs) P_((const char *, FILE *)); + char *(*fgets)(char *, int, FILE *); + int (*fputs)(const char *, FILE *); }; /* @@ -85,17 +85,17 @@ struct commonio_db { int use_lckpwdf:1; }; -extern int commonio_setname P_((struct commonio_db *, const char *)); -extern int commonio_present P_((const struct commonio_db *)); -extern int commonio_lock P_((struct commonio_db *)); -extern int commonio_lock_nowait P_((struct commonio_db *)); -extern int commonio_open P_((struct commonio_db *, int)); -extern const void *commonio_locate P_((struct commonio_db *, const char *)); -extern int commonio_update P_((struct commonio_db *, const void *)); -extern int commonio_remove P_((struct commonio_db *, const char *)); -extern int commonio_rewind P_((struct commonio_db *)); -extern const void *commonio_next P_((struct commonio_db *)); -extern int commonio_close P_((struct commonio_db *)); -extern int commonio_unlock P_((struct commonio_db *)); -extern void commonio_del_entry P_((struct commonio_db *, const struct commonio_entry *)); +extern int commonio_setname(struct commonio_db *, const char *); +extern int commonio_present(const struct commonio_db *); +extern int commonio_lock(struct commonio_db *); +extern int commonio_lock_nowait(struct commonio_db *); +extern int commonio_open(struct commonio_db *, int); +extern const void *commonio_locate(struct commonio_db *, const char *); +extern int commonio_update(struct commonio_db *, const void *); +extern int commonio_remove(struct commonio_db *, const char *); +extern int commonio_rewind(struct commonio_db *); +extern const void *commonio_next(struct commonio_db *); +extern int commonio_close(struct commonio_db *); +extern int commonio_unlock(struct commonio_db *); +extern void commonio_del_entry(struct commonio_db *, const struct commonio_entry *); diff --git a/lib/defines.h b/lib/defines.h index 9ee90f29..7294a7f9 100644 --- a/lib/defines.h +++ b/lib/defines.h @@ -1,4 +1,4 @@ -/* $Id: defines.h,v 1.15 1999/08/27 19:02:50 marekm Exp $ */ +/* $Id: defines.h,v 1.16 2000/08/26 18:27:17 marekm Exp $ */ /* some useful defines */ #ifndef _DEFINES_H_ @@ -29,14 +29,6 @@ # define _(Text) Text #endif -#ifndef P_ -# ifdef PROTOTYPES -# define P_(x) x -# else -# define P_(x) () -# endif -#endif - #if STDC_HEADERS # include <stdlib.h> # include <string.h> @@ -194,7 +186,25 @@ char *strchr(), *strrchr(), *strtok(); #ifdef STAT_MACROS_BROKEN # define S_ISDIR(x) ((x) & S_IFMT) == S_IFDIR) # define S_ISREG(x) ((x) & S_IFMT) == S_IFREG) -# define S_ISLNK(x) ((x) & S_IFMT) == S_IFLNK) +# ifdef S_IFLNK +# define S_ISLNK(x) ((x) & S_IFMT) == S_IFLNK) +# endif +#endif + +#ifndef S_ISLNK +#define S_ISLNK(x) (0) +#endif + +#if HAVE_LCHOWN +#define LCHOWN lchown +#else +#define LCHOWN chown +#endif + +#if HAVE_LSTAT +#define LSTAT lstat +#else +#define LSTAT stat #endif #if HAVE_TERMIOS_H diff --git a/lib/dialchk.h b/lib/dialchk.h index 9da2d31e..75f1829e 100644 --- a/lib/dialchk.h +++ b/lib/dialchk.h @@ -1,4 +1,4 @@ -/* $Id: dialchk.h,v 1.1 1997/12/07 23:26:49 marekm Exp $ */ +/* $Id: dialchk.h,v 1.2 2000/08/26 18:27:17 marekm Exp $ */ #ifndef _DIALCHK_H_ #define _DIALCHK_H_ @@ -11,6 +11,6 @@ * line. If so, a dialup password may be required if the shell * is listed as one which requires a second password. */ -extern int dialcheck P_((const char *tty, const char *sh)); +extern int dialcheck(const char *, const char *); #endif diff --git a/lib/dialup.h b/lib/dialup.h index e261b14e..2b3892bd 100644 --- a/lib/dialup.h +++ b/lib/dialup.h @@ -41,7 +41,7 @@ * lines. Each line consists of the last component of the path * name. The leading "/dev/" string is removed. * - * $Id: dialup.h,v 1.2 1997/05/01 23:14:39 marekm Exp $ + * $Id: dialup.h,v 1.3 2000/08/26 18:27:17 marekm Exp $ */ #ifndef _DIALUP_H @@ -52,13 +52,13 @@ struct dialup { char *du_passwd; }; -extern void setduent P_((void)); -extern void endduent P_((void)); -extern struct dialup *fgetduent P_((FILE *)); -extern struct dialup *getduent P_((void)); -extern struct dialup *getdushell P_((const char *)); -extern int putduent P_((const struct dialup *, FILE *)); -extern int isadialup P_((const char *)); +extern void setduent(void); +extern void endduent(void); +extern struct dialup *fgetduent(FILE *); +extern struct dialup *getduent(void); +extern struct dialup *getdushell(const char *); +extern int putduent(const struct dialup *, FILE *); +extern int isadialup(const char *); #define DIALPWD "/etc/d_passwd" #define DIALUPS "/etc/dialups" diff --git a/lib/encrypt.c b/lib/encrypt.c index 42f04d66..51c16e7a 100644 --- a/lib/encrypt.c +++ b/lib/encrypt.c @@ -30,13 +30,13 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: encrypt.c,v 1.6 1999/03/07 19:14:35 marekm Exp $") +RCSID("$Id: encrypt.c,v 1.7 2000/08/26 18:27:17 marekm Exp $") #include "prototypes.h" #include "defines.h" extern char *crypt(); -extern char *libshadow_md5_crypt P_((const char *, const char *)); +extern char *libshadow_md5_crypt(const char *, const char *); char * pw_encrypt(const char *clear, const char *salt) diff --git a/lib/getdef.c b/lib/getdef.c index f3cae104..12ce99e8 100644 --- a/lib/getdef.c +++ b/lib/getdef.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: getdef.c,v 1.13 1999/08/27 19:02:51 marekm Exp $") +RCSID("$Id: getdef.c,v 1.14 2000/08/26 18:27:17 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -55,6 +55,9 @@ struct itemdef { static struct itemdef def_table[] = { { "CHFN_AUTH", NULL }, { "CHFN_RESTRICT", NULL }, +#ifdef USE_PAM + { "CLOSE_SESSIONS", NULL }, +#endif { "CONSOLE", NULL }, { "CONSOLE_GROUPS", NULL }, { "CRACKLIB_DICTPATH", NULL }, @@ -63,7 +66,8 @@ static struct itemdef def_table[] = { { "DIALUPS_CHECK_ENAB", NULL }, { "ENVIRON_FILE", NULL }, { "ENV_HZ", NULL }, - { "ENV_PATH" , NULL }, + { "ENV_PATH", NULL }, + { "ENV_ROOTPATH", NULL }, /* SuSE compatibility? */ { "ENV_SUPATH", NULL }, { "ENV_TZ", NULL }, { "ERASECHAR", NULL }, @@ -130,8 +134,8 @@ static int def_loaded = 0; /* are defs already loaded? */ extern long strtol(); /* local function prototypes */ -static struct itemdef *def_find P_((const char *)); -static void def_load P_((void)); +static struct itemdef *def_find(const char *); +static void def_load(void); /* diff --git a/lib/getdef.h b/lib/getdef.h index 3b14d5ae..304e1096 100644 --- a/lib/getdef.h +++ b/lib/getdef.h @@ -2,10 +2,10 @@ #define _GETDEF_H /* getdef.c */ -extern int getdef_bool P_((const char *)); -extern long getdef_long P_((const char *, long)); -extern int getdef_num P_((const char *, int)); -extern char *getdef_str P_((const char *)); -extern int putdef_str P_((const char *, const char *)); +extern int getdef_bool(const char *); +extern long getdef_long(const char *, long); +extern int getdef_num(const char *, int); +extern char *getdef_str(const char *); +extern int putdef_str(const char *, const char *); #endif /* _GETDEF_H */ diff --git a/lib/groupio.c b/lib/groupio.c index 5e67f996..04d470bd 100644 --- a/lib/groupio.c +++ b/lib/groupio.c @@ -2,7 +2,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: groupio.c,v 1.7 1998/01/29 23:22:28 marekm Exp $") +RCSID("$Id: groupio.c,v 1.8 2000/08/26 18:27:17 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -10,8 +10,8 @@ RCSID("$Id: groupio.c,v 1.7 1998/01/29 23:22:28 marekm Exp $") #include "commonio.h" #include "groupio.h" -extern int putgrent P_((const struct group *, FILE *)); -extern struct group *sgetgrent P_((const char *)); +extern int putgrent(const struct group *, FILE *); +extern struct group *sgetgrent(const char *); struct group * __gr_dup(const struct group *grent) diff --git a/lib/groupio.h b/lib/groupio.h index 37792fbb..7c083cea 100644 --- a/lib/groupio.h +++ b/lib/groupio.h @@ -1,12 +1,12 @@ -extern struct group *__gr_dup P_((const struct group *)); -extern void __gr_set_changed P_((void)); -extern int gr_close P_((void)); -extern const struct group *gr_locate P_((const char *)); -extern int gr_lock P_((void)); -extern int gr_name P_((const char *)); -extern const struct group *gr_next P_((void)); -extern int gr_open P_((int)); -extern int gr_remove P_((const char *)); -extern int gr_rewind P_((void)); -extern int gr_unlock P_((void)); -extern int gr_update P_((const struct group *)); +extern struct group *__gr_dup(const struct group *); +extern void __gr_set_changed(void); +extern int gr_close(void); +extern const struct group *gr_locate(const char *); +extern int gr_lock(void); +extern int gr_name(const char *); +extern const struct group *gr_next(void); +extern int gr_open(int); +extern int gr_remove(const char *); +extern int gr_rewind(void); +extern int gr_unlock(void); +extern int gr_update(const struct group *); diff --git a/lib/prototypes.h b/lib/prototypes.h index 4fff4f9b..20436dcf 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -6,7 +6,7 @@ * Juha Virtanen, <jiivee@hut.fi>; November 1995 */ /* - * $Id: prototypes.h,v 1.13 1999/07/09 18:02:43 marekm Exp $ + * $Id: prototypes.h,v 1.14 2000/08/26 18:27:17 marekm Exp $ * * Added a macro to work around ancient (non-ANSI) compilers, just in case * someone ever tries to compile this with SunOS cc... --marekm @@ -23,191 +23,206 @@ #include "defines.h" /* addgrps.c */ -extern int add_groups P_((const char *)); -extern void add_cons_grps P_((void)); +extern int add_groups(const char *); +extern void add_cons_grps(void); /* age.c */ #ifdef SHADOWPWD -extern void agecheck P_((const struct passwd *pw, const struct spwd *sp)); -extern int expire P_((const struct passwd *pw, const struct spwd *sp)); -extern int isexpired P_((const struct passwd *pw, const struct spwd *sp)); +extern void agecheck(const struct passwd *, const struct spwd *); +extern int expire(const struct passwd *, const struct spwd *); +extern int isexpired(const struct passwd *, const struct spwd *); #else -extern void agecheck P_((const struct passwd *pw)); -extern int expire P_((const struct passwd *pw)); -extern int isexpired P_((const struct passwd *pw)); +extern void agecheck(const struct passwd *); +extern int expire(const struct passwd *); +extern int isexpired(const struct passwd *); #endif /* basename() renamed to Basename() to avoid libc name space confusion */ /* basename.c */ -extern char *Basename P_((char *str)); +extern char *Basename(char *str); /* chkshell.c */ -extern int check_shell P_((const char *)); +extern int check_shell(const char *); /* chowndir.c */ -extern int chown_tree P_((const char *, uid_t, uid_t, gid_t, gid_t)); +extern int chown_tree(const char *, uid_t, uid_t, gid_t, gid_t); /* chowntty.c */ -extern void chown_tty P_((const char *, const struct passwd *)); +extern void chown_tty(const char *, const struct passwd *); /* console.c */ -extern int console P_((const char *tty)); -extern int is_listed P_((const char *cfgin, const char *tty, int def)); +extern int console(const char *); +extern int is_listed(const char *, const char *, int); /* copydir.c */ -extern int copy_tree P_((const char *, const char *, uid_t, gid_t)); -extern int remove_tree P_((const char *)); +extern int copy_tree(const char *, const char *, uid_t, gid_t); +extern int remove_tree(const char *); /* encrypt.c */ -extern char *pw_encrypt P_((const char *, const char *)); +extern char *pw_encrypt(const char *, const char *); /* entry.c */ -extern void entry P_((const char *name, struct passwd *pwent)); +extern void pw_entry(const char *, struct passwd *); /* env.c */ -extern void addenv P_((const char *, const char *)); -extern void initenv P_((void)); -extern void set_env P_((int, char * const *)); -extern void sanitize_env P_((void)); +extern void addenv(const char *, const char *); +extern void initenv(void); +extern void set_env(int, char * const *); +extern void sanitize_env(void); /* fields.c */ -extern void change_field P_((char *buf, size_t maxsize, const char *prompt)); -extern int valid_field P_((const char *field, const char *illegal)); +extern void change_field(char *, size_t, const char *); +extern int valid_field(const char *, const char *); /* fputsx.c */ -extern char *fgetsx P_((char *, int, FILE *)); -extern int fputsx P_((const char *, FILE *)); +extern char *fgetsx(char *, int, FILE *); +extern int fputsx(const char *, FILE *); /* grdbm.c */ -extern int gr_dbm_remove P_((const struct group *gr)); -extern int gr_dbm_update P_((const struct group *gr)); -extern int gr_dbm_present P_((void)); +extern int gr_dbm_remove(const struct group *); +extern int gr_dbm_update(const struct group *); +extern int gr_dbm_present(void); /* grent.c */ -extern int putgrent P_((const struct group *, FILE *)); +extern int putgrent(const struct group *, FILE *); /* grpack.c */ -extern int gr_pack P_((const struct group *group, char *buf)); -extern int gr_unpack P_((char *buf, int len, struct group *group)); +extern int gr_pack(const struct group *, char *); +extern int gr_unpack(char *, int, struct group *); #ifdef SHADOWGRP /* gsdbm.c */ -extern int sg_dbm_remove P_((const char *name)); -extern int sg_dbm_update P_((const struct sgrp *sgr)); -extern int sg_dbm_present P_((void)); +extern int sg_dbm_remove(const char *); +extern int sg_dbm_update(const struct sgrp *); +extern int sg_dbm_present(void); /* gspack.c */ -extern int sgr_pack P_((const struct sgrp *sgrp, char *buf)); -extern int sgr_unpack P_((char *buf, int len, struct sgrp *sgrp)); +extern int sgr_pack(const struct sgrp *, char *); +extern int sgr_unpack(char *, int, struct sgrp *); #endif /* hushed.c */ -extern int hushed P_((const struct passwd *pw)); +extern int hushed(const struct passwd *); /* limits.c */ -extern void setup_limits P_((const struct passwd *)); +extern void setup_limits(const struct passwd *); /* list.c */ -extern char **add_list P_((char **list, const char *member)); -extern char **del_list P_((char **list, const char *member)); -extern char **dup_list P_((char * const *list)); -extern int is_on_list P_((char * const *list, const char *member)); -extern char **comma_to_list P_((const char *comma)); +extern char **add_list(char **, const char *); +extern char **del_list(char **, const char *); +extern char **dup_list(char * const *); +extern int is_on_list(char * const *, const char *); +extern char **comma_to_list(const char *); /* login.c */ -extern void login_prompt P_((const char *, char *, int)); +extern void login_prompt(const char *, char *, int); /* login_desrpc.c */ -extern int login_desrpc P_((const char *)); +extern int login_desrpc(const char *); /* mail.c */ -extern void mailcheck P_((void)); +extern void mailcheck(void); /* motd.c */ -extern void motd P_((void)); +extern void motd(void); /* myname.c */ -extern struct passwd *get_my_pwent P_((void)); +extern struct passwd *get_my_pwent(void); /* obscure.c */ -extern int obscure P_((const char *, const char *, const struct passwd *)); +extern int obscure(const char *, const char *, const struct passwd *); /* pam_pass.c */ -extern int do_pam_passwd P_((const char *, int, int)); +extern int do_pam_passwd(const char *, int, int); /* port.c */ -extern int isttytime P_((const char *, const char *, time_t)); +extern int isttytime(const char *, const char *, time_t); /* pwd2spwd.c */ #ifdef SHADOWPWD -extern struct spwd *pwd_to_spwd P_((const struct passwd *pw)); +extern struct spwd *pwd_to_spwd(const struct passwd *); #endif /* pwdcheck.c */ -extern void passwd_check P_((const char *, const char *, const char *)); +extern void passwd_check(const char *, const char *, const char *); /* pwd_init.c */ -extern void pwd_init P_((void)); +extern void pwd_init(void); /* pwdbm.c */ -extern int pw_dbm_remove P_((const struct passwd *pw)); -extern int pw_dbm_update P_((const struct passwd *pw)); -extern int pw_dbm_present P_((void)); +extern int pw_dbm_remove(const struct passwd *); +extern int pw_dbm_update(const struct passwd *); +extern int pw_dbm_present(void); /* pwpack.c */ -extern int pw_pack P_((const struct passwd *passwd, char *buf)); -extern int pw_unpack P_((char *buf, int len, struct passwd *passwd)); +extern int pw_pack(const struct passwd *, char *); +extern int pw_unpack(char *, int, struct passwd *); /* rad64.c */ -extern int c64i P_((char c)); -extern int i64c P_((int i)); +extern int c64i(int); +extern int i64c(int); /* rlogin.c */ -extern int do_rlogin P_((const char *, char *, int, char *, int)); +extern int do_rlogin(const char *, char *, int, char *, int); + +/* salt.c */ +extern char *crypt_make_salt(void); /* setugid.c */ -extern int setup_groups P_((const struct passwd *)); -extern int change_uid P_((const struct passwd *)); -extern int setup_uid_gid P_((const struct passwd *, int)); +extern int setup_groups(const struct passwd *); +extern int change_uid(const struct passwd *); +extern int setup_uid_gid(const struct passwd *, int); /* setup.c */ -extern void setup P_((struct passwd *info)); +extern void setup(struct passwd *); /* setupenv.c */ -extern void setup_env P_((struct passwd *)); +extern void setup_env(struct passwd *); /* shell.c */ -extern void shell P_((const char *file, const char *arg)); +extern void shell(const char *, const char *); #ifdef SHADOWPWD /* spdbm.c */ -extern int sp_dbm_remove P_((const char *user)); -extern int sp_dbm_update P_((const struct spwd *sp)); -extern int sp_dbm_present P_((void)); +extern int sp_dbm_remove(const char *); +extern int sp_dbm_update(const struct spwd *); +extern int sp_dbm_present(void); /* sppack.c */ -extern int spw_pack P_((const struct spwd *spwd, char *buf)); -extern int spw_unpack P_((char *buf, int len, struct spwd *spwd)); +extern int spw_pack(const struct spwd *, char *); +extern int spw_unpack(char *, int, struct spwd *); #endif /* strtoday.c */ -extern long strtoday P_((const char *str)); +extern long strtoday(const char *); + +/* suauth.c */ +extern int check_su_auth(const char *, const char *); + +/* sulog.c */ +extern void sulog(const char *, int, const char *, const char *); + +/* sub.c */ +extern void subsystem(const struct passwd *); /* ttytype.c */ -extern void ttytype P_((const char *line)); +extern void ttytype(const char *); + +/* tz.c */ +extern char *tz(const char *); /* ulimit.c */ -extern void set_filesize_limit P_((int)); +extern void set_filesize_limit(int); /* utmp.c */ -extern void checkutmp P_((int)); -extern void setutmp P_((const char *, const char *, const char *)); +extern void checkutmp(int); +extern void setutmp(const char *, const char *, const char *); /* valid.c */ -extern int valid P_((const char *, const struct passwd *)); +extern int valid(const char *, const struct passwd *); /* xmalloc.c */ -extern char *xmalloc P_((size_t size)); -extern char *xstrdup P_((const char *str)); +extern char *xmalloc(size_t); +extern char *xstrdup(const char *); #endif /* _PROTOTYPES_H */ diff --git a/lib/pwauth.c b/lib/pwauth.c index 67867ff6..bce32f22 100644 --- a/lib/pwauth.c +++ b/lib/pwauth.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: pwauth.c,v 1.10 1999/08/27 19:02:51 marekm Exp $") +RCSID("$Id: pwauth.c,v 1.11 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <signal.h> @@ -68,7 +68,7 @@ extern char *getpass_with_echo(); struct method { char *name; - int (*func) P_((const char *, int, const char *)); + int (*func)(const char *, int, const char *); }; #ifdef PAD_AUTH diff --git a/lib/pwio.c b/lib/pwio.c index 7dc7e9ad..4fa25da9 100644 --- a/lib/pwio.c +++ b/lib/pwio.c @@ -2,7 +2,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: pwio.c,v 1.9 1998/01/29 23:22:31 marekm Exp $") +RCSID("$Id: pwio.c,v 1.10 2000/08/26 18:27:17 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -12,8 +12,8 @@ RCSID("$Id: pwio.c,v 1.9 1998/01/29 23:22:31 marekm Exp $") #include "commonio.h" #include "pwio.h" -extern struct passwd *sgetpwent P_((const char *)); -extern int putpwent P_((const struct passwd *, FILE *)); +extern struct passwd *sgetpwent(const char *); +extern int putpwent(const struct passwd *, FILE *); struct passwd * __pw_dup(const struct passwd *pwent) diff --git a/lib/pwio.h b/lib/pwio.h index 88bace77..199f67da 100644 --- a/lib/pwio.h +++ b/lib/pwio.h @@ -1,12 +1,12 @@ -extern struct passwd *__pw_dup P_((const struct passwd *)); -extern void __pw_set_changed P_((void)); -extern int pw_close P_((void)); -extern const struct passwd *pw_locate P_((const char *)); -extern int pw_lock P_((void)); -extern int pw_name P_((const char *)); -extern const struct passwd *pw_next P_((void)); -extern int pw_open P_((int)); -extern int pw_remove P_((const char *)); -extern int pw_rewind P_((void)); -extern int pw_unlock P_((void)); -extern int pw_update P_((const struct passwd *)); +extern struct passwd *__pw_dup(const struct passwd *); +extern void __pw_set_changed(void); +extern int pw_close(void); +extern const struct passwd *pw_locate(const char *); +extern int pw_lock(void); +extern int pw_name(const char *); +extern const struct passwd *pw_next(void); +extern int pw_open(int); +extern int pw_remove(const char *); +extern int pw_rewind(void); +extern int pw_unlock(void); +extern int pw_update(const struct passwd *); diff --git a/lib/rad64.c b/lib/rad64.c index 5b22e96e..249a71e1 100644 --- a/lib/rad64.c +++ b/lib/rad64.c @@ -30,14 +30,14 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: rad64.c,v 1.4 1997/12/07 23:26:56 marekm Exp $") +RCSID("$Id: rad64.c,v 1.5 2000/08/26 18:27:17 marekm Exp $") /* * c64i - convert a radix 64 character to an integer */ int -c64i(char c) +c64i(int c) { if (c == '.') return (0); @@ -117,7 +117,7 @@ a64l(const char *s) long shift = 0; for (i = 0, value = 0L;i < 6 && *s;s++) { - value += (c64i (*s) << shift); + value += (c64i ((int) *s) << shift); shift += 6; } return (value); diff --git a/lib/sgroupio.c b/lib/sgroupio.c index a10e422e..4f0c56b4 100644 --- a/lib/sgroupio.c +++ b/lib/sgroupio.c @@ -4,7 +4,7 @@ #ifdef SHADOWGRP #include "rcsid.h" -RCSID("$Id: sgroupio.c,v 1.9 1998/01/29 23:22:31 marekm Exp $") +RCSID("$Id: sgroupio.c,v 1.10 2000/08/26 18:27:17 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -12,8 +12,8 @@ RCSID("$Id: sgroupio.c,v 1.9 1998/01/29 23:22:31 marekm Exp $") #include "commonio.h" #include "sgroupio.h" -extern int putsgent P_((const struct sgrp *, FILE *)); -extern struct sgrp *sgetsgent P_((const char *)); +extern int putsgent(const struct sgrp *, FILE *); +extern struct sgrp *sgetsgent(const char *); struct sgrp * __sgr_dup(const struct sgrp *sgent) diff --git a/lib/sgroupio.h b/lib/sgroupio.h index 7f41a8fa..e9c93bf6 100644 --- a/lib/sgroupio.h +++ b/lib/sgroupio.h @@ -1,13 +1,13 @@ -extern struct sgrp *__sgr_dup P_((const struct sgrp *)); -extern void __sgr_set_changed P_((void)); -extern int sgr_close P_((void)); -extern int sgr_file_present P_((void)); -extern const struct sgrp *sgr_locate P_((const char *)); -extern int sgr_lock P_((void)); -extern int sgr_name P_((const char *)); -extern const struct sgrp *sgr_next P_((void)); -extern int sgr_open P_((int)); -extern int sgr_remove P_((const char *)); -extern int sgr_rewind P_((void)); -extern int sgr_unlock P_((void)); -extern int sgr_update P_((const struct sgrp *)); +extern struct sgrp *__sgr_dup(const struct sgrp *); +extern void __sgr_set_changed(void); +extern int sgr_close(void); +extern int sgr_file_present(void); +extern const struct sgrp *sgr_locate(const char *); +extern int sgr_lock(void); +extern int sgr_name(const char *); +extern const struct sgrp *sgr_next(void); +extern int sgr_open(int); +extern int sgr_remove(const char *); +extern int sgr_rewind(void); +extern int sgr_unlock(void); +extern int sgr_update(const struct sgrp *); diff --git a/lib/shadowio.h b/lib/shadowio.h index 5c8934f6..b3118d5c 100644 --- a/lib/shadowio.h +++ b/lib/shadowio.h @@ -1,13 +1,13 @@ -extern struct spwd *__spw_dup P_((const struct spwd *)); -extern void __spw_set_changed P_((void)); -extern int spw_close P_((void)); -extern int spw_file_present P_((void)); -extern const struct spwd *spw_locate P_((const char *)); -extern int spw_lock P_((void)); -extern int spw_name P_((const char *)); -extern const struct spwd *spw_next P_((void)); -extern int spw_open P_((int)); -extern int spw_remove P_((const char *)); -extern int spw_rewind P_((void)); -extern int spw_unlock P_((void)); -extern int spw_update P_((const struct spwd *)); +extern struct spwd *__spw_dup(const struct spwd *); +extern void __spw_set_changed(void); +extern int spw_close(void); +extern int spw_file_present(void); +extern const struct spwd *spw_locate(const char *); +extern int spw_lock(void); +extern int spw_name(const char *); +extern const struct spwd *spw_next(void); +extern int spw_open(int); +extern int spw_remove(const char *); +extern int spw_rewind(void); +extern int spw_unlock(void); +extern int spw_update(const struct spwd *); diff --git a/lib/tcfsio.h b/lib/tcfsio.h index 3a8ff6c5..3f53fca5 100644 --- a/lib/tcfsio.h +++ b/lib/tcfsio.h @@ -3,12 +3,12 @@ struct tcfspwd { char tcfsorig[200]; /* old password */ }; -extern int tcfs_close P_((void)); -extern int tcfs_file_present P_((void)); -extern tcfspwdb *tcfs_locate P_((char *)); -extern int tcfs_lock P_((void)); -extern int tcfs_name P_((char *)); -extern int tcfs_open P_((int)); -extern int tcfs_remove P_((char *)); -extern int tcfs_unlock P_((void)); -extern int tcfs_update P_((char *, struct tcfspwd *)); +extern int tcfs_close(void); +extern int tcfs_file_present(void); +extern tcfspwdb *tcfs_locate(char *); +extern int tcfs_lock(void); +extern int tcfs_name(char *); +extern int tcfs_open(int); +extern int tcfs_remove(char *); +extern int tcfs_unlock(void); +extern int tcfs_update(char *, struct tcfspwd *); diff --git a/libmisc/Makefile.in b/libmisc/Makefile.in index 9b85780a..760788b5 100644 --- a/libmisc/Makefile.in +++ b/libmisc/Makefile.in @@ -78,6 +78,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -339,8 +340,8 @@ suauth.o: suauth.c ../config.h ../lib/prototypes.h ../lib/defines.h \ ../lib/gshadow_.h sub.o: sub.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \ ../lib/defines.h ../lib/gshadow_.h -sulog.o: sulog.c ../config.h ../lib/rcsid.h ../lib/defines.h \ - ../lib/gshadow_.h ../lib/getdef.h +sulog.o: sulog.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \ + ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h ttytype.o: ttytype.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \ ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h tz.o: tz.c ../config.h ../lib/rcsid.h ../lib/defines.h ../lib/gshadow_.h \ diff --git a/libmisc/chkname.h b/libmisc/chkname.h index c706f15d..b9e3ae02 100644 --- a/libmisc/chkname.h +++ b/libmisc/chkname.h @@ -1,4 +1,4 @@ -/* $Id: chkname.h,v 1.1 1997/12/07 23:27:00 marekm Exp $ */ +/* $Id: chkname.h,v 1.2 2000/08/26 18:27:17 marekm Exp $ */ #ifndef _CHKNAME_H_ #define _CHKNAME_H_ @@ -9,7 +9,7 @@ #include "defines.h" -extern int check_user_name P_((const char *)); -extern int check_group_name P_((const char *name)); +extern int check_user_name(const char *); +extern int check_group_name(const char *name); #endif diff --git a/libmisc/chowndir.c b/libmisc/chowndir.c index b8fe4c0d..b89c5973 100644 --- a/libmisc/chowndir.c +++ b/libmisc/chowndir.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: chowndir.c,v 1.5 1998/04/16 19:57:43 marekm Exp $") +RCSID("$Id: chowndir.c,v 1.6 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -94,10 +94,11 @@ chown_tree(const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid, gid_t snprintf(new_name, sizeof new_name, "%s/%s", root, ent->d_name); - if (stat (new_name, &sb) == -1) + /* Don't follow symbolic links! */ + if (LSTAT(new_name, &sb) == -1) continue; - if (S_ISDIR(sb.st_mode)) { + if (S_ISDIR(sb.st_mode) && !S_ISLNK(sb.st_mode)) { /* * Do the entire subdirectory. @@ -107,8 +108,13 @@ chown_tree(const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid, gid_t old_gid, new_gid))) break; } +#ifndef HAVE_LCHOWN + /* don't use chown (follows symbolic links!) */ + if (S_ISLNK(sb.st_mode)) + continue; +#endif if (sb.st_uid == old_uid) - chown (new_name, new_uid, + LCHOWN(new_name, new_uid, sb.st_gid == old_gid ? new_gid:sb.st_gid); } closedir (dir); @@ -119,7 +125,7 @@ chown_tree(const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid, gid_t if (! stat (root, &sb)) { if (sb.st_uid == old_uid) - chown (root, new_uid, + LCHOWN(root, new_uid, sb.st_gid == old_gid ? new_gid:sb.st_gid); } return rc; diff --git a/libmisc/copydir.c b/libmisc/copydir.c index cb1a470a..0f7fed2d 100644 --- a/libmisc/copydir.c +++ b/libmisc/copydir.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: copydir.c,v 1.6 1998/06/25 22:10:42 marekm Exp $") +RCSID("$Id: copydir.c,v 1.7 2000/08/26 18:27:17 marekm Exp $") #include <sys/stat.h> @@ -192,11 +192,7 @@ copy_tree(const char *src_root, const char *dst_root, uid_t uid, gid_t gid) } snprintf(dst_name, sizeof dst_name, "%s/%s", dst_root, ent->d_name); -#ifdef S_IFLNK - if (lstat (src_name, &sb) == -1) -#else - if (stat (src_name, &sb) == -1) -#endif + if (LSTAT(src_name, &sb) == -1) continue; if (S_ISDIR(sb.st_mode)) { @@ -380,11 +376,7 @@ remove_tree(const char *root) break; } snprintf(new_name, sizeof new_name, "%s/%s", root, ent->d_name); -#ifdef S_IFLNK - if (lstat (new_name, &sb) == -1) -#else - if (stat (new_name, &sb) == -1) -#endif + if (LSTAT(new_name, &sb) == -1) continue; if (S_ISDIR(sb.st_mode)) { diff --git a/libmisc/entry.c b/libmisc/entry.c index 5baa8ed6..746dfb0a 100644 --- a/libmisc/entry.c +++ b/libmisc/entry.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: entry.c,v 1.3 1997/12/07 23:27:03 marekm Exp $") +RCSID("$Id: entry.c,v 1.4 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -38,10 +38,10 @@ RCSID("$Id: entry.c,v 1.3 1997/12/07 23:27:03 marekm Exp $") #include "defines.h" #include <pwd.h> -struct passwd *fgetpwent (); +extern struct passwd *fgetpwent (); void -entry(const char *name, struct passwd *pwent) +pw_entry(const char *name, struct passwd *pwent) { struct passwd *passwd; #ifdef SHADOWPWD diff --git a/libmisc/failure.h b/libmisc/failure.h index 7fbac2bf..1795b50d 100644 --- a/libmisc/failure.h +++ b/libmisc/failure.h @@ -1,4 +1,4 @@ -/* $Id: failure.h,v 1.1 1997/12/07 23:27:04 marekm Exp $ */ +/* $Id: failure.h,v 1.2 2000/08/26 18:27:17 marekm Exp $ */ #ifndef _FAILURE_H_ #define _FAILURE_H_ @@ -12,7 +12,7 @@ * failure() creates a new (struct faillog) entry or updates an * existing one with the current failed login information. */ -extern void failure P_((uid_t, const char *, struct faillog *)); +extern void failure(uid_t, const char *, struct faillog *); /* * failcheck - check for failures > allowable @@ -22,7 +22,7 @@ extern void failure P_((uid_t, const char *, struct faillog *)); * returns FALSE to indicate that the login should be denied even though * the password is valid. */ -extern int failcheck P_((uid_t, struct faillog *, int)); +extern int failcheck(uid_t, struct faillog *, int); /* * failprint - print line of failure information @@ -30,7 +30,7 @@ extern int failcheck P_((uid_t, struct faillog *, int)); * failprint takes a (struct faillog) entry and formats it into a * message which is displayed at login time. */ -extern void failprint P_((const struct faillog *)); +extern void failprint(const struct faillog *); /* * failtmp - update the cummulative failure log @@ -38,7 +38,7 @@ extern void failprint P_((const struct faillog *)); * failtmp updates the (struct utmp) formatted failure log which * maintains a record of all login failures. */ -extern void failtmp P_((const struct utmp *)); +extern void failtmp(const struct utmp *); #endif diff --git a/libmisc/getdate.h b/libmisc/getdate.h index c866afce..691a508f 100644 --- a/libmisc/getdate.h +++ b/libmisc/getdate.h @@ -4,5 +4,5 @@ #include <config.h> #include "defines.h" -time_t get_date P_((const char *p, const time_t *now)); +time_t get_date(const char *, const time_t *); #endif diff --git a/libmisc/hushed.c b/libmisc/hushed.c index c9990d16..fbc7a19d 100644 --- a/libmisc/hushed.c +++ b/libmisc/hushed.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: hushed.c,v 1.3 1997/12/07 23:27:05 marekm Exp $") +RCSID("$Id: hushed.c,v 1.4 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -68,7 +68,7 @@ hushed(const struct passwd *pw) */ if (hushfile[0] != '/') { - strcat(strcat(strcpy(buf, pw->pw_dir), "/"), hushfile); + snprintf(buf, sizeof(buf), "%s/%s", pw->pw_dir, hushfile); return (access(buf, F_OK) == 0); } diff --git a/libmisc/loginprompt.c b/libmisc/loginprompt.c index eb0958f1..abe81d3a 100644 --- a/libmisc/loginprompt.c +++ b/libmisc/loginprompt.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: loginprompt.c,v 1.5 1998/04/16 19:57:44 marekm Exp $") +RCSID("$Id: loginprompt.c,v 1.6 2000/08/26 18:27:17 marekm Exp $") #include <stdio.h> #include <signal.h> @@ -62,9 +62,9 @@ login_prompt(const char *prompt, char *name, int namesize) char *cp; int i; FILE *fp; - RETSIGTYPE (*sigquit) P_((int)); + RETSIGTYPE (*sigquit)(int); #ifdef SIGTSTP - RETSIGTYPE (*sigtstp) P_((int)); + RETSIGTYPE (*sigtstp)(int); #endif /* diff --git a/libmisc/setupenv.c b/libmisc/setupenv.c index 90e5b179..1e428ba7 100644 --- a/libmisc/setupenv.c +++ b/libmisc/setupenv.c @@ -34,7 +34,7 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: setupenv.c,v 1.9 1999/03/07 19:14:41 marekm Exp $") +RCSID("$Id: setupenv.c,v 1.10 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -235,8 +235,21 @@ setup_env(struct passwd *info) * Create the PATH environmental variable and export it. */ - cp = getdef_str( info->pw_uid == 0 ? "ENV_SUPATH" : "ENV_PATH" ); + cp = getdef_str((info->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH"); +#if 0 addenv(cp ? cp : "PATH=/bin:/usr/bin", NULL); +#else + if (!cp) { + /* not specified, use a minimal default */ + addenv("PATH=/bin:/usr/bin", NULL); + } else if (strchr(cp, '=')) { + /* specified as name=value (PATH=...) */ + addenv(cp, NULL); + } else { + /* only value specified without "PATH=" */ + addenv("PATH", cp); + } +#endif /* * Export the user name. For BSD derived systems, it's "USER", for @@ -269,9 +282,11 @@ setup_env(struct passwd *info) #endif } +#ifndef USE_PAM /* * Read environment from optional config file. --marekm */ if ((envf = getdef_str("ENVIRON_FILE"))) read_env_file(envf); +#endif } diff --git a/libmisc/suauth.c b/libmisc/suauth.c index 313a6ec6..77cf9292 100644 --- a/libmisc/suauth.c +++ b/libmisc/suauth.c @@ -23,10 +23,10 @@ * strings output to the user or the syslog. -- chris */ -static int applies P_((const char *, char *)); +static int applies(const char *, char *); -int check_su_auth P_((const char *, const char *)); -int isgrp P_((const char *, const char *)); +int check_su_auth(const char *, const char *); +int isgrp(const char *, const char *); static int lines = 0; diff --git a/libmisc/sulog.c b/libmisc/sulog.c index f20152e7..3de68692 100644 --- a/libmisc/sulog.c +++ b/libmisc/sulog.c @@ -30,25 +30,22 @@ #include <config.h> #include "rcsid.h" -RCSID("$Id: sulog.c,v 1.4 1998/04/02 21:51:51 marekm Exp $") +RCSID("$Id: sulog.c,v 1.5 2000/08/26 18:27:17 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <time.h> +#include "prototypes.h" #include "defines.h" #include "getdef.h" -extern char name[]; -extern char oldname[]; -extern struct tm *localtime (); - /* * sulog - log a SU command execution result */ void -sulog(const char *tty, int success) +sulog(const char *tty, int success, const char *oldname, const char *name) { char *sulog_file; time_t now; diff --git a/man/Makefile.am b/man/Makefile.am index 22aacad9..16a40e7e 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,10 +1,12 @@ AUTOMAKE_OPTIONS = 1.0 foreign +SUBDIRS = pl + man_MANS = chage.1 chfn.1 chsh.1 gpasswd.1 \ login.1 newgrp.1 passwd.1 su.1 \ shadow.3 \ - faillog.5 limits.5 login.access.5 login.defs.5 \ + dialups.5 faillog.5 limits.5 login.access.5 login.defs.5 \ passwd.5 porttime.5 shadow.5 suauth.5 \ chpasswd.8 dpasswd.8 faillog.8 \ groupadd.8 groupdel.8 groupmod.8 \ @@ -12,21 +14,8 @@ man_MANS = chage.1 chfn.1 chsh.1 gpasswd.1 \ pwck.8 pwconv.8 shadowconfig.8 \ useradd.8 userdel.8 usermod.8 vipw.8 -# XXX - for some reason "make dist" no longer distributes man_MANS -# automatically after upgrade to automake-1.2 (it worked with 1.0). -# So they are now all listed in EXTRA_DIST. --marekm -# -#EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 +EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 ${man_MANS} -EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 \ - chage.1 chfn.1 chsh.1 gpasswd.1 \ - login.1 newgrp.1 passwd.1 su.1 \ - shadow.3 \ - faillog.5 limits.5 login.access.5 login.defs.5 \ - passwd.5 porttime.5 shadow.5 suauth.5 \ - chpasswd.8 dpasswd.8 faillog.8 \ - groupadd.8 groupdel.8 groupmod.8 \ - grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 \ - pwck.8 pwconv.8 shadowconfig.8 \ - useradd.8 userdel.8 usermod.8 vipw.8 +# subdirectories for translated manual pages +SUBDIRS = pl diff --git a/man/Makefile.in b/man/Makefile.in index fe5efa27..076af868 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -79,6 +79,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -103,17 +104,13 @@ l = @l@ AUTOMAKE_OPTIONS = 1.0 foreign -man_MANS = chage.1 chfn.1 chsh.1 gpasswd.1 login.1 newgrp.1 passwd.1 su.1 shadow.3 faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 porttime.5 shadow.5 suauth.5 chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwck.8 pwconv.8 shadowconfig.8 useradd.8 userdel.8 usermod.8 vipw.8 +# subdirectories for translated manual pages +SUBDIRS = pl + +man_MANS = chage.1 chfn.1 chsh.1 gpasswd.1 login.1 newgrp.1 passwd.1 su.1 shadow.3 dialups.5 faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 porttime.5 shadow.5 suauth.5 chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwck.8 pwconv.8 shadowconfig.8 useradd.8 userdel.8 usermod.8 vipw.8 -# XXX - for some reason "make dist" no longer distributes man_MANS -# automatically after upgrade to automake-1.2 (it worked with 1.0). -# So they are now all listed in EXTRA_DIST. --marekm -# -#EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 - -EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 chage.1 chfn.1 chsh.1 gpasswd.1 login.1 newgrp.1 passwd.1 su.1 shadow.3 faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 porttime.5 shadow.5 suauth.5 chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwck.8 pwconv.8 shadowconfig.8 useradd.8 userdel.8 usermod.8 vipw.8 - +EXTRA_DIST = groups.1 id.1 pw_auth.3 pwauth.8 sulogin.8 ${man_MANS} mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -280,9 +277,95 @@ uninstall-man: @$(NORMAL_UNINSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-man1 uninstall-man3 uninstall-man5 \ uninstall-man8 -tags: TAGS -TAGS: +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) @@ -299,30 +382,41 @@ distdir: $(DISTFILES) || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done info-am: -info: info-am +info: info-recursive dvi-am: -dvi: dvi-am +dvi: dvi-recursive check-am: all-am -check: check-am +check: check-recursive installcheck-am: -installcheck: installcheck-am +installcheck: installcheck-recursive install-exec-am: -install-exec: install-exec-am +install-exec: install-exec-recursive install-data-am: install-man -install-data: install-data-am +install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am +install: install-recursive uninstall-am: uninstall-man -uninstall: uninstall-am +uninstall: uninstall-recursive all-am: Makefile $(MANS) -all-redirect: all-am +all-redirect: all-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: +installdirs: installdirs-recursive +installdirs-am: $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man3 \ $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8 @@ -336,33 +430,40 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-tags mostlyclean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-tags clean-generic mostlyclean-am -clean: clean-am +clean: clean-recursive -distclean-am: distclean-generic clean-am +distclean-am: distclean-tags distclean-generic clean-am -rm -f libtool -distclean: distclean-am +distclean: distclean-recursive -maintainer-clean-am: maintainer-clean-generic distclean-am +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive .PHONY: install-man1 uninstall-man1 install-man3 uninstall-man3 \ install-man5 uninstall-man5 install-man8 uninstall-man8 install-man \ -uninstall-man tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean +uninstall-man install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/man/chage.1 b/man/chage.1 index 86d0c1fa..2c09fc72 100644 --- a/man/chage.1 +++ b/man/chage.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: chage.1,v 1.5 1999/03/07 19:14:45 marekm Exp $ +.\" $Id: chage.1,v 1.6 2000/08/26 18:27:17 marekm Exp $ .\" .TH CHAGE 1 .SH NAME @@ -106,4 +106,4 @@ The current value is displayed between a pair of \fB[ ]\fR marks. .BR passwd (5), .BR shadow (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/chfn.1 b/man/chfn.1 index 6f62023b..e0ae8828 100644 --- a/man/chfn.1 +++ b/man/chfn.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: chfn.1,v 1.4 1998/12/28 20:34:58 marekm Exp $ +.\" $Id: chfn.1,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH CHFN 1 .SH NAME @@ -63,4 +63,4 @@ Without options, chfn prompts for the current user account. .SH SEE ALSO .BR passwd (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/chpasswd.8 b/man/chpasswd.8 index 33aabd74..860a1cdc 100644 --- a/man/chpasswd.8 +++ b/man/chpasswd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: chpasswd.8,v 1.5 1998/12/28 20:34:59 marekm Exp $ +.\" $Id: chpasswd.8,v 1.6 2000/08/26 18:27:17 marekm Exp $ .\" .TH CHPASSWD 8 .SH NAME @@ -59,4 +59,4 @@ The input file must be protected if it contains unencrypted passwords. .BR useradd (8), .BR newusers (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/chsh.1 b/man/chsh.1 index 6b9ac9cc..c2c1ee3e 100644 --- a/man/chsh.1 +++ b/man/chsh.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: chsh.1,v 1.4 1998/12/28 20:35:01 marekm Exp $ +.\" $Id: chsh.1,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH CHSH 1 .SH NAME @@ -63,4 +63,4 @@ The current value is displayed between a pair of \fB[ ]\fR marks. .BR chfn (1), .BR passwd (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/dialups.5 b/man/dialups.5 new file mode 100644 index 00000000..df33d6cd --- /dev/null +++ b/man/dialups.5 @@ -0,0 +1,22 @@ +.TH DIALUPS 5 "03 Oct 1999" +.SH NAME +d_passwd \- The dialup shell password file +.br +dialups \- List of dialup lines +.SH DESCRIPTION +The \fBd_passwd\fR file contains the names of login shells which require +dialup passwords. Each line contains the fully qualified path name +for the shell, followed by an optional password. Each field is separated +by a '\fB:\fR'. +.PP +The \fBdialups\fR file contains the names of ports which may be dialup +lines. Each line consists of the last component of the path name. The +leading "\fB/dev/\fR" string is removed. +.SH FILES +/etc/d_passwd \- dialup shell password file +.br +/etc/dialups \- dialup line list +.SH SEE ALSO +.BR login (1), +.SH AUTHOR +Ben Collins <bcollins@debian.org> diff --git a/man/dpasswd.8 b/man/dpasswd.8 index 00d54105..b19b36f8 100644 --- a/man/dpasswd.8 +++ b/man/dpasswd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dpasswd.8,v 1.4 1998/12/28 20:35:02 marekm Exp $ +.\" $Id: dpasswd.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH DPASSWD 8 .SH NAME @@ -52,4 +52,4 @@ program. .SH SEE ALSO .BR login (1) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/faillog.5 b/man/faillog.5 index b1f39f3a..8beffdf9 100644 --- a/man/faillog.5 +++ b/man/faillog.5 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: faillog.5,v 1.4 1998/12/28 20:35:03 marekm Exp $ +.\" $Id: faillog.5,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH FAILLOG 5 .SH NAME @@ -56,4 +56,4 @@ The structure of the file is .SH SEE ALSO .BR faillog (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/faillog.8 b/man/faillog.8 index d0a0d871..3ce76a1e 100644 --- a/man/faillog.8 +++ b/man/faillog.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: faillog.8,v 1.6 1999/07/09 18:02:43 marekm Exp $ +.\" $Id: faillog.8,v 1.7 2000/08/26 18:27:17 marekm Exp $ .\" .TH FAILLOG 8 .SH NAME @@ -97,4 +97,4 @@ Some systems may replace /var/log with /var/adm or /usr/adm. .BR login (1), .BR faillog (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/groupadd.8 b/man/groupadd.8 index 5a50351d..2d3de403 100644 --- a/man/groupadd.8 +++ b/man/groupadd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: groupadd.8,v 1.4 1998/12/28 20:35:05 marekm Exp $ +.\" $Id: groupadd.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH GROUPADD 8 .SH NAME @@ -61,4 +61,4 @@ Values between 0 and 99 are typically reserved for system accounts. .BR groupdel (8), .BR groupmod (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/groupdel.8 b/man/groupdel.8 index 375b889d..19621a6b 100644 --- a/man/groupdel.8 +++ b/man/groupdel.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: groupdel.8,v 1.4 1998/12/28 20:35:06 marekm Exp $ +.\" $Id: groupdel.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH GROUPDEL 8 .SH NAME @@ -57,4 +57,4 @@ You must remove the user before you remove the group. .BR groupadd (8), .BR groupmod (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/groupmod.8 b/man/groupmod.8 index ff3a537a..28815dc8 100644 --- a/man/groupmod.8 +++ b/man/groupmod.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: groupmod.8,v 1.4 1998/12/28 20:35:07 marekm Exp $ +.\" $Id: groupmod.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH GROUPMOD 8 .SH NAME @@ -63,4 +63,4 @@ The name of the group will be changed from \fIgroup\fR to .BR groupadd (8), .BR groupdel (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/groups.1 b/man/groups.1 index 075a87b5..bae98989 100644 --- a/man/groups.1 +++ b/man/groups.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: groups.1,v 1.4 1998/12/28 20:35:08 marekm Exp $ +.\" $Id: groups.1,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH GROUPS 1 .SH NAME @@ -54,4 +54,4 @@ effective group ID. .BR getgid (2), .BR getgroups (2) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/grpck.8 b/man/grpck.8 index 50109f37..3d2f7948 100644 --- a/man/grpck.8 +++ b/man/grpck.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: grpck.8,v 1.4 1998/12/28 20:35:09 marekm Exp $ +.\" $Id: grpck.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH GRPCK 1 .SH NAME @@ -98,4 +98,4 @@ Cannot lock group files .IP 5 5 Cannot update group files .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/id.1 b/man/id.1 index 40cfdeac..19cf6a24 100644 --- a/man/id.1 +++ b/man/id.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: id.1,v 1.4 1998/12/28 20:35:10 marekm Exp $ +.\" $Id: id.1,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH ID 1 .SH NAME @@ -51,4 +51,4 @@ support multiple concurrent group membership. .BR getgid (2), .BR getgroups (2) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/lastlog.8 b/man/lastlog.8 index 2c268479..85acc13b 100644 --- a/man/lastlog.8 +++ b/man/lastlog.8 @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)lastlog.8 3.3 08:24:58 29 Sep 1993 (National Guard Release) -.\" $Id: lastlog.8,v 1.5 1998/12/28 20:35:11 marekm Exp $ +.\" $Id: lastlog.8,v 1.6 2000/08/26 18:27:17 marekm Exp $ .\" .TH LASTLOG 8 .SH NAME @@ -34,15 +34,15 @@ lastlog \- examine lastlog file .SH SYNOPSIS .B lastlog .RB [ -u -.IR uid ] +.IR login-name ] .RB [ -t .IR days ] .SH DESCRIPTION \fBlastlog\fR formats and prints the contents of the last login log, \fI/var/log/lastlog\fR. The \fBlogin-name\fR, \fBport\fR, and \fBlast login time\fR will be printed. -The default (no flags) causes lastlog entries to be printed in UID -order. +The default (no flags) causes lastlog entries to be printed, sorted +by the numerical UID. Entering \fB-u \fIlogin-name\fR flag will cause the lastlog record for \fIlogin-name\fR only to be printed. Entering \fB-t \fIdays\fR will cause only the @@ -58,6 +58,6 @@ Large gaps in uid numbers will cause the lastlog program to run longer with no output to the screen (i.e. if mmdf=800 and last uid=170, program will appear to hang as it processes uid 171-799). .SH AUTHORS -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) .br Phillip Street diff --git a/man/login.1 b/man/login.1 index 8735ad80..45a42b5f 100644 --- a/man/login.1 +++ b/man/login.1 @@ -25,15 +25,17 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: login.1,v 1.6 1999/06/07 16:40:44 marekm Exp $ +.\" $Id: login.1,v 1.7 2000/08/26 18:27:17 marekm Exp $ .\" .TH LOGIN 1 .SH NAME login \- Begin session on the system .SH SYNOPSIS -.B login -.RI [ username " [" environmental-variables ]] -.\" XXX - document -f -h -p -r options +\fBlogin\fR [\fB-p\fR] [\fIusername\fR] [\fIENV=VAR ...\fR] +.br +\fBlogin\fR [\fB-p\fR] [\fB-h\fR \fIhost\fR] [\fB-f\fR \fIusername\fR] +.br +\fBlogin\fR [\fB-p\fR] \fB-r\fR \fIhost\fR .SH DESCRIPTION .B login is used to establish a new session with the system. @@ -94,6 +96,25 @@ An initialization script for your command interpreter may also be executed. Please see the appropriate manual section for more information on this function. +.PP +A subsystem login is indicated by the presense of a "*" as the first +character of the login shell. The given home directory will be used as +the root of a new filesystem which the user is actually logged into. +.SH OPTIONS +.TP +.B -p +Preserve environment. +.TP +.B -f +Do not perform authentication, user is preauthenticated. +.TP +.B -h +Name of the remote host for this login. +.TP +.B -r +Perform autologin protocol for rlogin. +.PP +The \fB-r -h\fP and \fB-f\fP options are only used when \fBlogin\fP is invoked by root. .SH CAVEATS .PP This version of \fBlogin\fR has many compilation options, only some of which @@ -131,4 +152,4 @@ $HOME/.hushlogin \- suppress printing of system messages .BR passwd (5), .BR nologin (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/login.defs.5 b/man/login.defs.5 index 69414238..d21a3cc9 100644 --- a/man/login.defs.5 +++ b/man/login.defs.5 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: login.defs.5,v 1.6 1998/12/28 20:35:13 marekm Exp $ +.\" $Id: login.defs.5,v 1.7 2000/08/26 18:27:17 marekm Exp $ .\" .TH LOGIN 5 .SH NAME @@ -79,6 +79,14 @@ program. It can be any combination of letters for Full name, Room number, Work phone, and Home phone, respectively. If not specified, only the superuser can make any changes. .\" +.IP "CLOSE_SESSIONS (boolean)" +Enable pam_close_session() calling. When using normal (pam_unix.so) +session handling modules, this is not needed. However with modules +(such as kerberos or other persistent session models), +.B login +needs to fork and wait for the shell to exit, so that sessions can be +cleaned up. +.\" .IP "CONSOLE (string)" If specified, this definition provides for a restricted set of lines on which root logins will be allowed. An attempted root login which @@ -134,7 +142,8 @@ dialups, one per line, for example: .fi .\" .IP "ENVIRON_FILE (string)" -XXX needs to be documented. +File containing a list of environment variables (one per line) to set +when logging in or su'ing. .\" .IP "ENV_HZ (string)" This parameter specifies a value for an HZ environment parameter. @@ -502,7 +511,8 @@ type and a terminal line, seperated by whitespace, for example: .ft R .sp .fi -This information is used to initialize the TERM environment parameter. +This information is only used to initialize the TERM environment parameter +when it does not already exist. A line starting with a ``#'' pound sign will be treated as a comment. If this paramter is not specified, the file does not exist, or the terminal line is not found in the file, then the TERM environment parameter will not @@ -558,6 +568,6 @@ manual page. .BR porttime (5), .BR faillog (8) .SH AUTHORS -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) .br Chip Rosenthal (chip@unicom.com) diff --git a/man/logoutd.8 b/man/logoutd.8 index 9acf4c31..b611d4f9 100644 --- a/man/logoutd.8 +++ b/man/logoutd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: logoutd.8,v 1.4 1998/12/28 20:35:14 marekm Exp $ +.\" $Id: logoutd.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH LOGOUTD 8 .SH NAME @@ -48,4 +48,4 @@ is terminated. .br /etc/utmp \- current login sessions .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/mkpasswd.8 b/man/mkpasswd.8 index 13be2c43..ad4ed796 100644 --- a/man/mkpasswd.8 +++ b/man/mkpasswd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: mkpasswd.8,v 1.4 1998/12/28 20:35:15 marekm Exp $ +.\" $Id: mkpasswd.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH MKPASSWD 1 .SH NAME @@ -78,4 +78,4 @@ deleted or corrupted database file. .BR group (5), .BR shadow (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/newgrp.1 b/man/newgrp.1 index bfd5a157..f3308357 100644 --- a/man/newgrp.1 +++ b/man/newgrp.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: newgrp.1,v 1.5 1999/08/27 19:02:51 marekm Exp $ +.\" $Id: newgrp.1,v 1.6 2000/08/26 18:27:17 marekm Exp $ .\" .TH NEWGRP 1 .SH NAME @@ -77,4 +77,4 @@ only some of which may be in use at any particular site. .BR id (1), .BR su (1) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/newusers.8 b/man/newusers.8 index 02c4c584..447b8d91 100644 --- a/man/newusers.8 +++ b/man/newusers.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: newusers.8,v 1.4 1998/12/28 20:35:17 marekm Exp $ +.\" $Id: newusers.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH NEWUSERS 8 .SH NAME @@ -65,4 +65,4 @@ The input file must be protected since it contains unencrypted passwords. .BR passwd (1), .BR useradd (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/passwd.1 b/man/passwd.1 index 20c6b1ff..8090db76 100644 --- a/man/passwd.1 +++ b/man/passwd.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: passwd.1,v 1.4 1998/12/28 20:35:18 marekm Exp $ +.\" $Id: passwd.1,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PASSWD 1 .SH NAME @@ -183,8 +183,8 @@ is enabled and they are not logged into the NIS server. /etc/shadow \- encrypted user passwords .SH SEE ALSO .BR passwd (3), -.BR shadow (3), +.\" .BR shadow (3), .BR group (5), .BR passwd (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/passwd.5 b/man/passwd.5 index d93758b1..3b21d092 100644 --- a/man/passwd.5 +++ b/man/passwd.5 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: passwd.5,v 1.4 1998/12/28 20:35:19 marekm Exp $ +.\" $Id: passwd.5,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PASSWD 5 .SH NAME @@ -108,4 +108,4 @@ If this field is empty, it defaults to the value \fB/bin/sh\fR. .BR pwconv (8), .BR pwunconv (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/Makefile.am b/man/pl/Makefile.am new file mode 100644 index 00000000..2ef48e2c --- /dev/null +++ b/man/pl/Makefile.am @@ -0,0 +1,60 @@ +AUTOMAKE_OPTIONS = 1.0 foreign + +manpldir = $(mandir)/pl +manpl1dir = $(manpldir)/man1 +manpl3dir = $(manpldir)/man3 +manpl5dir = $(manpldir)/man5 +manpl8dir = $(manpldir)/man8 + + +manpl1_DATA = \ + chage.1 \ + chfn.1 \ + chsh.1 \ + groups.1 \ + gpasswd.1 \ + id.1 \ + login.1 \ + newgrp.1 \ + passwd.1 \ + su.1 + +manpl3_DATA = \ + pw_auth.3 \ + shadow.3 + +manpl5_DATA = \ + d_passwd.5 \ + dialups.5 \ + faillog.5 \ + limits.5 \ + login.access.5 \ + login.defs.5 \ + passwd.5 \ + porttime.5 \ + shadow.5 \ + suauth.5 + +manpl8_DATA = \ + chpasswd.8 \ + dpasswd.8 \ + faillog.8 \ + groupadd.8 \ + groupdel.8 \ + groupmod.8 \ + grpck.8 \ + lastlog.8 \ + logoutd.8 \ + mkpasswd.8 \ + newusers.8 \ + pwauth.8 \ + pwck.8 \ + pwconv.8 \ + shadowconfig.8 \ + sulogin.8 + useradd.8 \ + userdel.8 \ + usermod.8 \ + vipw.8 + +EXTRA_DIST = $(manpl1_DATA) $(manpl3_DATA) $(manpl5_DATA) $(manpl8_DATA) diff --git a/old/Makefile.in b/man/pl/Makefile.in similarity index 50% rename from old/Makefile.in rename to man/pl/Makefile.in index 996e51fd..277746be 100644 --- a/old/Makefile.in +++ b/man/pl/Makefile.in @@ -10,9 +10,6 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# This is a dummy Makefile.am to get automake work flawlessly, -# and also cooperate to make a distribution for `make dist' - SHELL = @SHELL@ @@ -41,7 +38,7 @@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. +top_builddir = ../.. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ @@ -82,6 +79,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -104,11 +102,32 @@ VERSION = @VERSION@ YACC = @YACC@ l = @l@ -EXTRA_DIST = Makefile.linux Makefile.sun4 Makefile.svr4 Makefile.xenix config.h.linux config.h.sun4 config.h.svr4 config.h.xenix orig-config.h pwconv.8 pwconv-old.8 pwconv-old.c pwd.h.m4 pwunconv.8 pwunconv-old.8 pwunconv-old.c scologin.c vipw.8 +AUTOMAKE_OPTIONS = 1.0 foreign +manpldir = $(mandir)/pl +manpl1dir = $(manpldir)/man1 +manpl3dir = $(manpldir)/man3 +manpl5dir = $(manpldir)/man5 +manpl8dir = $(manpldir)/man8 + +manpl1_DATA = chage.1 chfn.1 chsh.1 groups.1 gpasswd.1 id.1 login.1 newgrp.1 passwd.1 su.1 + + +manpl3_DATA = pw_auth.3 shadow.3 + + +manpl5_DATA = d_passwd.5 dialups.5 faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 porttime.5 shadow.5 suauth.5 + + +manpl8_DATA = chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwauth.8 pwck.8 pwconv.8 shadowconfig.8 sulogin.8 + + +EXTRA_DIST = $(manpl1_DATA) $(manpl3_DATA) $(manpl5_DATA) $(manpl8_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h +CONFIG_HEADER = ../../config.h CONFIG_CLEAN_FILES = +DATA = $(manpl1_DATA) $(manpl3_DATA) $(manpl5_DATA) $(manpl8_DATA) + DIST_COMMON = Makefile.am Makefile.in @@ -119,19 +138,95 @@ GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps old/Makefile + cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps man/pl/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +install-manpl1DATA: $(manpl1_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(manpl1dir) + @list='$(manpl1_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl1dir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl1dir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(manpl1dir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(manpl1dir)/$$p; \ + fi; fi; \ + done + +uninstall-manpl1DATA: + @$(NORMAL_UNINSTALL) + list='$(manpl1_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(manpl1dir)/$$p; \ + done + +install-manpl3DATA: $(manpl3_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(manpl3dir) + @list='$(manpl3_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl3dir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl3dir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(manpl3dir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(manpl3dir)/$$p; \ + fi; fi; \ + done + +uninstall-manpl3DATA: + @$(NORMAL_UNINSTALL) + list='$(manpl3_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(manpl3dir)/$$p; \ + done + +install-manpl5DATA: $(manpl5_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(manpl5dir) + @list='$(manpl5_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl5dir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl5dir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(manpl5dir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(manpl5dir)/$$p; \ + fi; fi; \ + done + +uninstall-manpl5DATA: + @$(NORMAL_UNINSTALL) + list='$(manpl5_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(manpl5dir)/$$p; \ + done + +install-manpl8DATA: $(manpl8_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(manpl8dir) + @list='$(manpl8_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl8dir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(manpl8dir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(manpl8dir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(manpl8dir)/$$p; \ + fi; fi; \ + done + +uninstall-manpl8DATA: + @$(NORMAL_UNINSTALL) + list='$(manpl8_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(manpl8dir)/$$p; \ + done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -subdir = old +subdir = man/pl distdir: $(DISTFILES) @for file in $(DISTFILES); do \ @@ -155,19 +250,23 @@ installcheck: installcheck-am install-exec-am: install-exec: install-exec-am -install-data-am: +install-data-am: install-manpl1DATA install-manpl3DATA \ + install-manpl5DATA install-manpl8DATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am -uninstall-am: +uninstall-am: uninstall-manpl1DATA uninstall-manpl3DATA \ + uninstall-manpl5DATA uninstall-manpl8DATA uninstall: uninstall-am -all-am: Makefile +all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: + $(mkinstalldirs) $(DESTDIR)$(manpl1dir) $(DESTDIR)$(manpl3dir) \ + $(DESTDIR)$(manpl5dir) $(DESTDIR)$(manpl8dir) mostlyclean-generic: @@ -198,13 +297,19 @@ maintainer-clean-am: maintainer-clean-generic distclean-am maintainer-clean: maintainer-clean-am -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean +.PHONY: uninstall-manpl1DATA install-manpl1DATA uninstall-manpl3DATA \ +install-manpl3DATA uninstall-manpl5DATA install-manpl5DATA \ +uninstall-manpl8DATA install-manpl8DATA tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + useradd.8 \ + userdel.8 \ + usermod.8 \ + vipw.8 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/man/pl/chage.1 b/man/pl/chage.1 new file mode 100644 index 00000000..48f1c879 --- /dev/null +++ b/man/pl/chage.1 @@ -0,0 +1,110 @@ +.\" {PTM/WK/1999-09-16} +.\" Copyright 1990 - 1994 Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH CHAGE 1 +.SH NAZWA +chage \- zmie� informacj� o terminie wa�no�ci has�a u�ytkownika +.SH SK�ADNIA +.TP 6 +.B chage +.RB [ -m +.IR mindni ] +.RB [ -M +.IR maxdni ] +.RB [ -d +.IR ostatni ] +.RB [ -I +.IR nieaktywne ] +.br +.RB [ -E +.IR data_wa�no�ci ] +.RB [ -W +.IR dni_ostrzegania ] +.I u�ytkownik +.TP 6 +.B chage -l \fIu�ytkownik\fR +.SH OPIS +\fBchage\fR zmienia liczb� dni pomi�dzy zmianami has�a i dat� ostatniej +zmiany has�a. Informacj� t� system wykorzystuje do ustalenia, kiedy +u�ytkownik musi zmieni� has�o. +Polecenia \fBchage\fR mo�e u�y� tylko u�ytkownik root, za wyj�tkiem +opcji \fB-l\fR. Mo�e si� ni� pos�u�y� si� u�ytkownik nieuprzywilejowany +do stwierdzenia, kiedy wygasa jego w�asne has�o lub konto. +.PP +Opcja \fB-m\fR ustawia minimaln� liczb� dni pomi�dzy zmianami has�a +na warto�� \fImindni\fR. Warto�� zerowa oznacza, �e u�ytkownik mo�e je zmienia� +w dowolnym czasie. +.PP +Opcja \fB-M\fR ustawia maksymaln� liczb� dni, przez jakie has�o jest wa�ne +na warto�� \fImaxdni\fR. +Gdy \fImaxdni\fR plus \fIostatni\fR jest mniejsze ni� bie��cy dzie�, +od u�ytkownika wymagana jest zmiana has�a przed skorzystaniem z konta. +Zdarzenie to mo�e by� zaplanowane z wyprzedzeniem przez wykorzystanie +opcji \fB-W\fR, ostrzegaj�cej zawczasu u�ytkownika o zbli�aj�cym si� terminie +zmiany. +.PP +Opcja \fB-d\fR ustawia liczb� dni od 1 stycznia 1970 do dnia kiedy ostatnio +zmieniono has�o na \fIostatni\fR. Data mo�e r�wnie� zosta� podana w postaci +RRRR-MM-DD (lub postaci powszechniej u�ywanej w twoim regionie). +.PP +Opcja \fB-E\fR s�u�y do ustawiania daty, od kt�rej konto u�ytkownika +nie b�dzie ju� dost�pne. +\fIdata_wa�no�ci\fR jest liczb� dni od 1 stycznia 1970, od kt�rej konto jest +blokowane. Data mo�e by� te� wyra�ona w postaci RRRR-MM-DD (lub innej, +powszechniej u�ywanej w twoim regionie). +U�ytkownik, kt�rego konto jest zablokowane musi skontaktowa� si� +z administratorem systemu zanim b�dzie m�g� z niego ponownie skorzysta�. +.PP +Opcja \fB-I\fR s�u�y do ustawiania czasu nieaktywno�ci po wyga�ni�ciu +has�a, po kt�rym konto jest blokowane. Parametr \fInieaktywne\fR podaje +liczb� dni nieaktywno�ci. Warto�� 0 wy��cza t� funkcj�. +U�ytkownik, kt�rego konto jest zablokowane musi skontaktowa� si� +z administratorem systemu zanim b�dzie m�g� z niego ponownie skorzysta�. +.PP +Opcja \fB-W\fR s�u�y do ustawiania ostrzegania przed wymagan� zmian� has�a. +Parametr \fIdni_ostrzegania\fR jest liczb� dni przed up�ywem wa�no�ci has�a; +od tego dnia u�ytkownik b�dzie ostrzegany o nadchodz�cym terminie. +.PP +Wszystkie powy�sze warto�ci przechowywane s� jako liczba dni, je�eli u�ywany +jest dodatkowy, przes�aniany plik hase� (shadow). Jednak je�eli u�ywany jest +standardowy plik hase�, to s� one zamieniane (w obie strony) na liczb� tygodni. +Z powodu powy�szej konwersji mog� pojawi� si� b��dy zaokr�gle�. +.PP +Je�li nie podano �adnej opcji, to \fBchage\fR dzia�a w trybie interaktywnym, +proponuj�c u�ytkownikowi warto�ci bie��ce dla ka�dego z p�l. Wprowad� now� +warto�� by zmieni� pole, lub pozostaw pust� by u�y� warto�ci bie��cej. +Bie��ca warto�� pola wy�wietlana jest mi�dzy par� znacznik�w \fB[ ]\fR. +.SH PLIKI +.IR /etc/passwd " - informacje o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - chronione informacje o kontach u�ytkownik�w" +.SH ZOBACZ TAK�E +.BR passwd (5), +.BR shadow (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/chfn.1 b/man/pl/chfn.1 new file mode 100644 index 00000000..8b254764 --- /dev/null +++ b/man/pl/chfn.1 @@ -0,0 +1,77 @@ +.\" {PTM/WK/1999-09-25} +.\" Copyright 1990 - 1994 Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH CHFN 1 +.SH NAZWA +chfn \- zmie� nazw� u�ytkownika i informacj� o nim +.SH SK�ADNIA +.TP 5 +.B chfn +.RB [ -f +.IR pe�na_nazwa ] +.RB [ -r +.IR nr_pokoju ] +.br +.RB [ -w +.IR tel_s�u�b ] +.RB [ -h +.IR tel_dom ] +.RB [ -o +.IR inne ] +.RI [ u�ytkownik ] +.SH OPIS +\fBchfn\fR zmienia pe�n� nazw� (imi� i nazwisko), telefon s�u�bowy i domowy +dla danego konta u�ytkownika. Informacja ta jest zwykle drukowana przez +\fBfinger\fR(1) i podobne mu programy. +Zwyk�y u�ytkownik mo�e zmienia� wy��cznie pola opisuj�ce w�asne konto. +Tylko superu�ytkownik mo�e zmienia� pola dowolnego konta. +R�wnie� tylko on mo�e pos�u�y� si� opcj� \fB-o\fR by zmieni� niezdefiniowane +cz�ci pola GECOS. +.PP +Jedynym ograniczeniem nak�adanym na zawarto�� p�l jest zakaz u�ywania w nich +znak�w kontrolnych oraz przecinka, dwukropka i znaku r�wno�ci. +Pola \fIinne\fR (other) nie obowi�zuje to ograniczenie. Pole to s�u�y do +przechowywania informacji rozliczeniowej u�ywanej przez inne aplikacje. +.PP +Je�li nie wybrano �adnej z opcji, to \fBchfn\fR dzia�a w trybie interaktywnym, +proponuj�c u�ytkownikowi warto�ci bie��ce dla ka�dego z p�l. Wprowad� now� +warto�� by zmieni� pole, lub pozostaw pust� by u�y� warto�ci bie��cej. +Bie��ca warto�� pola wy�wietlana jest mi�dzy par� znacznik�w \fB[ ]\fR. +Bez podania opcji \fBchfn\fR pyta o konto u�ytkownika, kt�re ma podlega� +zmianie. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.SH ZOBACZ TAK�E +.BR passwd (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/chpasswd.8 b/man/pl/chpasswd.8 new file mode 100644 index 00000000..eea01899 --- /dev/null +++ b/man/pl/chpasswd.8 @@ -0,0 +1,62 @@ +.\" {PTM/WK/1999-09-16} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH CHPASSWD 8 +.SH NAZWA +chpasswd - wsadowa aktualizacja pliku hase� +.SH SK�ADNIA +.B chpasswd +.RB [ -e ] +.SH OPIS +\fBchpasswd\fR odczytuje ze standardowego wej�cia plik zawieraj�cy pary: +nazwa u�ytkownika i has�o. Odczytan� informacje wykorzystuje do aktualizacji +grupy istniej�cych u�ytkownik�w. +Bez prze��cznika -e, has�a traktowane s� jako podane jawnie. Z prze��cznikiem +-e has�a powinny by� dostarczone w postaci zakodowanej (encrypted). +Ka�dy wiersz ma posta� +.sp 1 + \fInazwa_U�ytkownika\fR:\fIhas�o\fR +.sp 1 +Dany u�ytkownik musi istnie�. +Je�eli b�dzie to konieczne, podane has�o zostanie zakodowane a wiek has�a, +je�li wyst�puje, zaktualizowany. +.PP +Polecenie to przeznaczone jest do u�ytku w du�ych systemach, gdzie aktualizuje +si� wiele kont naraz. +.SH PRZESTROGI +.\" Po u�yciu \fBchpasswd\fR musi zosta� wykonane polecenie \fImkpasswd\fR, +.\" aktualizuj�ce pliki DBM hase� (DBM password files). +Plik �r�d�owy, je�li zawiera niezakodowane has�a, musi by� chroniony. +.\" Polecenie to mo�e by� zaniechane na rzecz polecenia newusers(8). +.SH ZOBACZ TAK�E +.\" mkpasswd(8), passwd(1), useradd(1) +.BR passwd (1), +.BR useradd (8), +.BR newusers (8) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/chsh.1 b/man/pl/chsh.1 new file mode 100644 index 00000000..7f20e865 --- /dev/null +++ b/man/pl/chsh.1 @@ -0,0 +1,70 @@ +.\" {PTM/WK/1999-09-25} +.\" Copyright 1990, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH CHSH 1 +.SH NAZWA +chsh \- zmie� pow�ok� zg�oszeniow� +.SH SK�ADNIA +.TP 5 +.B chsh +.RB [ -s +.IR pow�oka ] +.RI [ u�ytkownik ] +.SH OPIS +\fBchsh\fR zmienia pow�ok� zg�oszeniow� u�ytkownika. +Okre�la nazw� pocz�tkowego polecenia zg�oszeniowego u�ytkownika. +Zwyk�y u�ytkownik mo�e zmieni� wy��cznie pow�ok� zg�oszeniow� w�asnego konta, +superu�ytkownik mo�e zmieni� pow�ok� zg�oszeniow� dla dowolnego konta. +.PP +Jedynym ograniczeniem na�o�onym na pow�ok� zg�oszeniow� jest to, �e jej nazwa +musi by� uj�ta w \fI/etc/shells\fR, chyba �e polecenie \fBchsh\fR wywo�ywane +jest przez superu�ytkownika, w�wczas mo�e by� podana nazwa dowolnego polecenia. +U�ytkownicy kont z ograniczon� pow�ok� logowania nie mog� jej zmienia�. +Odradza si� z tego powodu umieszczanie \fB/bin/rsh\fR w pliku \fI/etc/shells\fR, +gdy� przypadkowa zmiana na pow�ok� ograniczon� uniemo�liwi u�ytkownikowi +jak�kolwiek zmian� pow�oki logowania, nawet z powrotem na dotychczasow�. +.PP +je�eli nie podano opcji \fB-s\fR, to \fBchsh\fR dzia�a w trybie interaktywnym, +proponuj�c u�ytkownikowi bie��c� pow�ok� logowania. Wprowad� now� warto�� +do pola lub pozostaw je puste, by pozostawi� aktualn� warto��. +Bie��ca warto�� wy�wietlana jest pomi�dzy par� znacznik�w \fB[ ]\fR. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shells " - lista dozwolonych pow�ok zg�oszeniowych" +.SH ZOBACZ TAK�E +.BR chfn (1), +.BR passwd (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Istnieje wiele program�w i skrypt�w do zarz�dzania kontami +u�ytkownik�w czy grup. Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij +si�, �e korzystasz z w�a�ciwej dokumentacji. diff --git a/man/pl/d_passwd.5 b/man/pl/d_passwd.5 new file mode 100644 index 00000000..0b3989b2 --- /dev/null +++ b/man/pl/d_passwd.5 @@ -0,0 +1,30 @@ +.\" +.\" {PTM/WK/1999-09-22} +.\" +.TH D_PASSWD 5 +.SH NAZWA +d_passwd - plik hase� telefonicznych +.SH OPIS +Z dost�pem do systemu przez lini� telefoniczn� zwi�zane s� dwa pliki +konfiguracyjne: \fI/etc/d_passwd\fR, zawieraj�cy has�a i \fI/etc/dialups\fR, +zawieraj�cy linie. +Ka�dorazowo, zanim u�ytkownik ��cz�cy si� za po�rednictwem modemu otrzyma +dost�p do systemu, musi poda� has�o telefoniczne. Has�a te s� niezale�ne +od hase� u�ytkownik�w i przypisane nie do u�ytkownika, ani linii terminalowej, +lecz do pow�oki zg�oszeniowej u�ytkownika. +Do rozpocz�cia sesji wymagane jest zar�wno has�o u�ytkownika jak +i telefoniczne. Zauwa� jednak, �e has�a telefoniczne nie posiadaj� kontroli +terminu wa�no�ci. Nale�y, po uzgodnieniu, okresowo zmienia� je r�cznie. +W pliku \fId_passwd\fR kolejne wiersze definiuj� has�a dla rozmaitych pow�ok: +.br +.sp 1 + pow�oka:zakodowane_has�o: +.br +.sp 1 +Zauwa�, �e po polu has�a wyst�puje dwukropek. Pow�oka powinna by� +okre�lona przez bezwzgl�dn� nazw� �cie�kow� pliku interpretatora polece�. +Do zarz�dzania has�ami telefonicznymi s�u�y polecenie \fBdpasswd\fR (1). +.SH ZOBACZ TAK�E +.BR dpasswd (1), +.BR login (1), +.BR dialups (5). diff --git a/man/pl/dialups.5 b/man/pl/dialups.5 new file mode 100644 index 00000000..3edb8a2c --- /dev/null +++ b/man/pl/dialups.5 @@ -0,0 +1,24 @@ +.\" +.\" {PTM/WK/1999-09-22} +.\" +.TH DIALUPS +.SH NAZWA +dialups - plik terminalowych linii telefonicznych +.SH OPIS +Z dost�pem do systemu przez lini� telefoniczn� zwi�zane s� dwa pliki +konfiguracyjne: \fI/etc/d_passwd\fR, zawieraj�cy has�a i \fI/etc/dialups\fR, +zawieraj�cy linie. W ka�dym wierszu pliku \fIdialups\fR zawarta jest nazwa +pliku specjalnego linii terminalowej, do kt�rej pod��czony jest modem: +.br +.sp 1 + /dev/tty12 + /dev/tty13 +.br +.sp 1 +Warto jest uj�� w nim \fBwszystkie\fR linie z dost�pem modemowym. +Po��czenie z linii pomini�tej nie b�dzie dodatkowo weryfikowane - u�ytkownicy +��cz�cy si� ni� nie b�d� musieli podawa� has�a telefonicznego. +.SH ZOBACZ TAK�E +.BR dpasswd (1), +.BR login (1), +.BR d_passwd (5). diff --git a/old/pwunconv-old.8 b/man/pl/dpasswd.8 similarity index 62% rename from old/pwunconv-old.8 rename to man/pl/dpasswd.8 index 381dc808..b5cf5624 100644 --- a/old/pwunconv-old.8 +++ b/man/pl/dpasswd.8 @@ -1,4 +1,5 @@ -.\" Copyright 1989 - 1993 Julianne Frances Haugh +.\" {PTM/WK/1999-09-17} +.\" Copyright 1991, Julianne Frances Haugh .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,33 +26,31 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwunconv-old.8,v 1.1 1997/09/29 22:01:31 marekm Exp $ -.\" -.TH PWUNCONV 8 -.SH NAME -pwunconv \- restore old password file from shadow password file -.SH SYNOPSIS -.B pwunconv -.SH DESCRIPTION -\fBPwunconv\fR copies the password file information from the shadow -password file, -merging entries from an optional existing shadow file. -The new password file is left in \fInpasswd\fR. -This file is created with modes which allow read access for -the owner only. -There is no new shadow file. -Password aging information is translated where possible. -There is some loss of resolution in the password aging information. -.SH FILES -/etc/passwd \- old encrypted passwords and password aging +.TH DPASSWD 8 +.SH NAZWA +\fBdpasswd\fR - zmie� has�o telefoniczne +.SH SK�ADNIA +.B dpasswd +.RB [ - ( a | d )] +.I pow�oka +.SH OPIS +\fBdpasswd\fR dodaje, usuwa i aktualizuje has�a telefoniczne (dialup +passwords) dla pow�ok logowania u�ytkownik�w. +Ka�dorazowo, gdy u�ytkownik loguje si� przez lini� telefoniczn�, +��dane jest od niego has�o telefoniczne (po poprawnym uwierzytelnieniu +jego w�asnego has�a). +.PP +\fBdpasswd\fR b�dzie prosi� o podanie nowego has�a dwukrotnie, by upewni� +si�, �e zosta�o ono poprawnie wprowadzone. +.PP +Argument \fIpow�oka\fR musi by� pe�n�, �cie�kow� nazw� programu zg�oszenia +(logowania). +.SH PLIKI .br -/etc/shadow \- previously converted shadow password file +.I /etc/d_passwd .br -./npasswd \- new password file -.SH SEE ALSO -.BR passwd (1), -.BR passwd (5), -.BR shadow (5), -.BR pwconv (8) -.SH AUTHOR -Julianne Frances Haugh (jfh@tab.com) +.I /etc/dialups +.SH ZOBACZ TAK�E +.BR login (1) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/old/pwconv.8 b/man/pl/faillog.5 similarity index 58% rename from old/pwconv.8 rename to man/pl/faillog.5 index c13bdba4..6fc16cdf 100644 --- a/old/pwconv.8 +++ b/man/pl/faillog.5 @@ -1,4 +1,4 @@ -.\" Copyright 1989 - 1993, Julianne Frances Haugh +.\" Copyright 1989 - 1994, Julianne Frances Haugh .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,35 +25,35 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwconv.8,v 1.1 1997/12/07 23:27:13 marekm Exp $ +.\" Translation (c) 1998 "Gwidon S. Naskrent" <naskrent@hoth.amu.edu.pl> +.\" $Id: faillog.5,v 1.3 1999/09/20 20:56:42 wojtek2 Exp $ .\" -.TH PWCONV 8 -.SH NAME -pwconv \- convert and update shadow password files -.SH SYNOPSIS -.B pwconv -.SH DESCRIPTION -\fBPwconv\fR copies the password file information from \fI/etc/passwd\fR -to the shadow password file, \fI/etc/shadow\fR. -If the \fI/etc/shadow\fR file does not exist, it is created with -modes which only permit read access to the owner. -Shadow entries in the System V Release 3.2 format will be silently -converted to the new System V Release 4 format. -Any entries which are missing fields will have those fields -filled in with default values where appropriate. -New entries are created with passwords which expire in 10000 days, -with a last changed date of today, -unless password aging information was already present. -Shadow entries without corresponding entries in \fI/etc/passwd\fR -are removed. -.SH FILES -/etc/passwd -.br -/etc/shadow -.SH SEE ALSO -.BR passwd (1), -.BR passwd (5), -.BR shadow (5), -.BR pwunconv (8) -.SH AUTHOR -Julianne Frances Haugh (jfh@tab.com) +.TH faillog 5 +.SH NAZWA +faillog \- plik rejestruj�cy nieudane zalogowania +.SH OPIS +.I faillog +prowadzi licznik nieudanych zalogowa� i limity dla ka�dego konta. +Plik ten sk�ada si� z rekord�w o sta�ej d�ugo�ci, indeksowanych +liczbowym UID. Ka�dy rekord zawiera licznik nieudanych zalogowa� +od ostatniego pomy�lnego logowania, maksymaln� liczb� pomy�ek +przed zablokowaniem konta, konsol� na kt�rej nast�pi�o ostatnie +nieudane logowanie, oraz dat� tego�. +.PP +Struktura tego pliku to +.DS + + struct faillog { + short fail_cnt; + short fail_max; + char fail_line[12]; + time_t fail_time; + }; + +.DE +.SH PLIKI +.IR /var/log/faillog " - rejestr nieudanych zalogowa�" +.SH ZOBACZ TAK�E +.BR faillog (8) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/faillog.8 b/man/pl/faillog.8 new file mode 100644 index 00000000..a180cc4b --- /dev/null +++ b/man/pl/faillog.8 @@ -0,0 +1,95 @@ +.\" {PTM/WK/1999-09-18} +.\" Copyright 1989 - 1994, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH FAILLOG 8 +.SH NAZWA +faillog \- sprawd� faillog i ustaw limity b��dnych logowa� +.SH SK�ADNIA +.TP 8 +.B faillog +.RB [ -u +.IR nazwa ] +.RB [ -a ] +.RB [ -t +.IR dni ] +.RB [ -m +.IR max ] +.RB [ -pr ] +.SH OPIS +\fBfaillog\fR formatuje zawarto�� rejestru nieudanych pr�b rozpocz�cia sesji, +\fI/var/log/faillog\fR, oraz obs�uguje ograniczenia i liczniki b��dnych pr�b. +Kolejno�� argument�w \fBfaillog\fR jest znacz�ca. Ka�dy z argument�w jest +natychmiast przetwarzany w zadanej kolejno�ci. +.PP +Flaga \fB-p\fR powoduje, �e zapisy o nieudanych logowaniach wy�wietlane b�d� +w kolejno�ci rosn�cych identyfikator�w u�ytkownik�w (UID). +Pos�u�enie si� flag� \fB-u \fInazwa\fR spowoduje, �e zostanie wy�wietlony +wy��cznie zapis dotycz�cy u�ytkownika o tej \fInazwie\fR. +U�ycie \fB-t \fIdni\fR powoduje wy�wietlanie wy��cznie nieudanych pr�b +logowania �wie�szych ni� sprzed zadanej liczby \fIdni\fR. +Flaga \fB-t\fR uniewa�nia u�ycie \fB-u\fR. +Flaga \fB-a\fR powoduje wybranie wszystkich u�ytkownik�w. +W po��czeniu z flag� \fB-p\fR flag, opcja ta wybiera wszystkich u�ytkownik�w, +dla kt�rych kiedykolwiek odnotowano niepomy�ln� pr�b� logowania. +Opcja ta nie ma znaczenia w po��czeniu z flag� \fB-r\fR. +.PP +\fB-r\fR s�u�y do zerowania licznika b��dnych logowa�. Do poprawnego dzia�ania +tej opcji wymagane jest prawo zapisu do \fI/var/log/faillog\fR. +W po��czeniu z \fB-u \fInazwa\fR s�u�y do zerowania licznika b��d�w u�ytkownika +o podanej \fInazwie\fR. +.PP +Flaga \fB-m\fR ustawia maksymaln� liczb� b��d�w logowania, po kt�rej konto +zostanie wy��czone. Dla tej opcji wymagane jest prawo zapisu do +\fI/var/log/faillog\fR. +Argumenty \fB-m \fImax\fR powoduj�, �e wszystkie konta b�d� wy��czane po +\fImax\fR nieudanych pr�bach logowania. +U�ycie dodatkowo \fB-u \fInazwa\fR, ogranicza dzia�anie tej funkcji do +u�ytkownika o podanej \fInazwie\fR. +Pos�u�enie si� zerow� warto�ci� \fImax\fR powoduje, �e liczba nieudanych pr�b +rozpocz�cia sesji jest nieograniczona. +Dla u�ytkownika \fBroot\fR maksymalna liczba niepowodze� powinna by� zawsze +ustawiona na 0, by zapobiec atakom typu denial of service (odmowa obs�ugi). +.PP +Opcje mog� by� ��czone w praktycznie dowolny spos�b. Ka�da z opcji \fB-p\fR, +\fB-r\fR i \fB-m\fR powoduje natychmiastowe wykonanie przy u�yciu modyfikatora +\fB-u\fR lub \fB-t\fR. +.SH PRZESTROGI +\fBfaillog\fR wy�wietla wy��cznie u�ytkownik�w, kt�rzy od ostatniej nieudanej +pr�by nie mieli poprawnych logowa�. +Chc�c wy�wietli� u�ytkownika, kt�ry po ostatniej pora�ce logowa� si� ju� +pomy�lnie, musisz jawnie za��da� o nim informacji przy pomocy flagi \fB-u\fR. +Mo�esz tak�e wy�wietli� wszystkich u�ytkownik�w pos�uguj�c si� flag� \fB-a\fR. +.PP +W niekt�rych systemach zamiast /var/log wyst�puje /var/adm lub /usr/adm. +.SH PLIKI +.IR /var/log/faillog " - plik rejestracji b��d�w logowania" +.SH ZOBACZ TAK�E +.BR login (1), +.BR faillog (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/gpasswd.1 b/man/pl/gpasswd.1 new file mode 100644 index 00000000..17f5e4ba --- /dev/null +++ b/man/pl/gpasswd.1 @@ -0,0 +1,65 @@ +.\" {PTM/WK/1999-09-16} +.\" Copyright 1996, Rafal Maszkowski, rzm@pdi.net +.\" All rights reserved. You can redistribute this man page and/or +.\" modify it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2 of the +.\" License, or (at your option) any later version. +.\" +.TH GPASSWD 1 +.SH NAZWA +gpasswd \- administracja plikiem /etc/group +.br +.SH SK�ADNIA +.B gpasswd \fIgrupa\fR +.br +.B gpasswd -a +.I u�ytkownik grupa +.br +.B gpasswd -d +.I u�ytkownik grupa +.br +.B gpasswd -R +.I grupa +.br +.B gpasswd -r +.I grupa +.br +.B gpasswd +.RB [ -A +.IR u�ytkownik ,...] +.RB [ -M +.IR u�ytkownik ,...] +.I grupa +.SH OPIS +.B gpasswd +s�u�y do administrowania plikiem \fI/etc/group\fR (oraz \fI/etc/gshadow\fR +je�li zosta�a wykonana kompilacja ze zdefiniowanym SHADOWGRP). Ka�da z grup +mo�e posiada� administrator�w, cz�onk�w i has�o. Administrator systemu mo�e +pos�u�y� si� opcj� \fB-A\fR do zdefiniowania administratora(�w) grupy oraz +opcj� \fB-M\fR do zdefiniowania jej cz�onk�w. Posiada on wszystkie prawa +administrator�w i cz�onk�w grup. +.PP +Administrator grupy mo�e dodawa� i usuwa� u�ytkownik�w przy pomocy, +odpowiednio, opcji \fB-a\fR i \fB-d\fR. Administratorzy mog� te� u�ywa� opcji +\fB-r\fR w celu usuni�cia has�a grupy. Je�eli grupa nie posiada has�a, +to polecenia +.BR newgrp (1) +do przy��czenia si� do grupy mog� u�ywa� tylko jej cz�onkowie. +Opcja \fB-R\fR wy��cza dost�p do grupy za pomoc� polecenia +.BR newgrp (1). +.PP +.B gpasswd +wywo�ane przez administratora grupy tylko z nazw� grupy pyta o jej has�o. +Je�eli has�o jest ustawione, to cz�onkowie grupy mog� nadal wykonywa� +.BR newgrp (1) +bez has�a, inni musz� natomiast poda� has�o. +.SH PLIKI +.IR /etc/group " - informacja o grupach" +.br +.IR /etc/gshadow " - chroniona informacja o grupach" +.SH ZOBACZ TAK�E +.BR newgrp (1), +.BR groupadd (8), +.BR groupdel (8), +.BR groupmod (8), +.BR grpck (8) diff --git a/man/pl/groupadd.8 b/man/pl/groupadd.8 new file mode 100644 index 00000000..e80b4bd0 --- /dev/null +++ b/man/pl/groupadd.8 @@ -0,0 +1,72 @@ +.\" {PTM/WK/0.1/VIII-1999} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: groupadd.8,v 1.1 2000/08/26 18:27:17 marekm Exp $ +.\" +.TH GROUPADD 8 +.SH NAZWA +groupadd - tw�rz now� grup� +.SH SK�ADNIA +.B groupadd +.RB [ -g +.I gid +.RB [ -o ]] +.I grupa +.SH OPIS +Polecenie \fBgroupadd\fR tworzy nowe konto grupy pos�uguj�c si� +warto�ciami podanymi w wierszu polece� i domy�lnymi warto�ciami z systemu. +W razie potrzeby zostanie wprowadzona do systemu nowa grupa. +Polecenie \fBgroupadd\fR posiada opcje: +.TP +.BI -g " gid" +Numeryczna warto�� identyfikatora grupy. Warto�� ta musi by� niepowtarzalna, +chyba �e u�yto opcji \fB-o\fR. Warto�� ID grupy nie mo�e by� ujemna. Domy�lnie +u�ywana jest najmniejsza warto�� identyfikatora wi�ksza ni� 99 a wi�ksza ni� +jakiejkolwiek innej grupy. +Warto�ci mi�dzy 0 a 99 s� zwykle zarezerwowane dla kont systemowych. +.SH PLIKI +.IR /etc/group " - informacja o kontach grup" +.br +.IR /etc/gshadow " - bezpieczna informacja o kontach grup" +.SH ZOBACZ TAK�E +.BR chfn (1), +.BR chsh (1), +.BR useradd (8), +.BR userdel (8), +.BR usermod (8), +.BR passwd (1), +.BR groupdel (8), +.BR groupmod (8). +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Istnieje wiele program�w i skrypt�w do zarz�dzania kontami +u�ytkownik�w czy grup. Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij +si�, �e korzystasz z w�a�ciwej dokumentacji. diff --git a/old/pwconv-old.8 b/man/pl/groupdel.8 similarity index 53% rename from old/pwconv-old.8 rename to man/pl/groupdel.8 index a8ad7bbb..24cd254e 100644 --- a/old/pwconv-old.8 +++ b/man/pl/groupdel.8 @@ -1,4 +1,5 @@ -.\" Copyright 1989 - 1993, Julianne Frances Haugh +.\" {PTM/WK/0.1/VIII-1999} +.\" Copyright 1991 - 1993, Julianne Frances Haugh .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,42 +26,43 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwconv-old.8,v 1.1 1997/09/29 22:01:31 marekm Exp $ +.\" $Id: groupdel.8,v 1.1 2000/08/26 18:27:17 marekm Exp $ .\" -.TH PWCONV 8 -.SH NAME -pwconv \- convert and update shadow password files -.SH SYNOPSIS -.B pwconv -.SH DESCRIPTION -\fBPwconv\fR copies the old password file information to a new shadow -password file, -merging entries from an optional existing shadow file. -The new password file is left in \fInpasswd\fR, -the new shadow file is left in \fInshadow\fR. -Both of these are files are created with modes which only permit -read access to the owner. -Existing shadow entries are copied as is. -Shadow entries in the System V Release 3.2 format will be silently -converted to the new System V Release 4 format on output. -Any entries which are missing fields will have those fields -filled in with default values where appropriate. -New entries are created with passwords which expire in 10000 days, -with a last changed date of today, -unless password aging information was already present. -Entries with blank passwords are not copied to the shadow file at all. -.SH FILES -/etc/passwd \- old encrypted passwords and password aging +.TH GROUPDEL 8 +.SH NAZWA +groupdel - usu� grup� +.SH SK�ADNIA +.B groupdel +.I grupa +.SH OPIS +Polecenie \fBgroupdel\fR zmienia systemowe pliki kont, usuwaj�c +wszystkie zapisy odnosz�ce si� do \fIgrupy\fR. +Wymieniona grupa musi istnie�. +.PP +Musisz r�cznie sprawdzi� wszystkie systemy plik�w, by upewni� si�, �e +nie pozosta�y �adne pliki, dla kt�rych wymieniona grupa jest grup� w�a�cicieli. +.SH PRZESTROGI +Nie mo�esz usun�� podstawowej grupy �adnego z istniej�cych u�ytkownik�w. +Musisz usun�� u�ytkownika przed usuni�ciem takiej grupy. +.SH PLIKI +.IR /etc/group " - informacja o grupach" .br -/etc/shadow \- previously converted shadow password file -.br -./npasswd \- new password file -.br -./nshadow \- new shadow password file -.SH SEE ALSO +.IR /etc/gshadow " - bezpieczna informacja o grupach" +.\" secure group information +.SH ZOBACZ TAK�E +.BR chfn (1), +.BR chsh (1), +.BR useradd (8), +.BR userdel (8), +.BR usermod (8), .BR passwd (1), -.BR passwd (5), -.BR shadow (5), -.BR pwunconv (8) -.SH AUTHOR -Julianne Frances Haugh (jfh@tab.com) +.BR groupadd (8), +.BR groupmod (8). +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Istnieje wiele program�w i skrypt�w do zarz�dzania kontami +u�ytkownik�w czy grup. Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij +si�, �e korzystasz z w�a�ciwej dokumentacji. diff --git a/man/pl/groupmod.8 b/man/pl/groupmod.8 new file mode 100644 index 00000000..bead76d1 --- /dev/null +++ b/man/pl/groupmod.8 @@ -0,0 +1,77 @@ +.\" {PTM/WK/0.1/VIII-1999} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: groupmod.8,v 1.1 2000/08/26 18:27:17 marekm Exp $ +.\" +.TH GROUPMOD 8 +.SH NAZWA +groupmod - zmie� dane grupy +.SH SK�ADNIA +.B groupmod +.RB [ -g +.I gid +.RB [ -o ]] +.RB [ -n +.IR nazwa_grupy ] +.I grupa +.SH OPIS +Polecenie \fBgroupmod\fR modyfikuje systemowe pliki kont tak, by +odzwierciedli� w nich zmiany grup podane w wierszu polece�. Obs�uguje ono +nast�puj�ce opcje: +.TP +.BI -g " gid" +Numeryczna warto�� identyfikatora grupy (group ID). +Warto�� ta musi by� niepowtarzalna, chyba �e u�yto opcji \fB-o\fR. +Nie mo�e by� ujemna. Warto�ci pomi�dzy 0 a 99 s� zwykle zarezerwowane +dla grup systemowych. +Pliki, dla kt�rych stary identyfikator jest identyfikatorem +grupy pliku, wymagaj� r�cznej zmiany ID grupy. +.TP +.BI -n " nazwa_grupy" +Nazwa grupy zostanie zmieniona z \fIgrupa\fR na \fInazwa_grupy\fR. +.SH PLIKI +.IR /etc/group " - informacja o grupach" +.br +.IR /etc/gshadow " - bezpieczna informacja o grupach" +.SH ZOBACZ TAK�E +.BR chfn (1), +.BR chsh (1), +.BR useradd (8), +.BR userdel (8), +.BR usermod (8), +.BR passwd (1), +.BR groupadd (8), +.BR groupdel (8). +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Istnieje wiele program�w i skrypt�w do zarz�dzania kontami +u�ytkownik�w czy grup. Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij +si�, �e korzystasz z w�a�ciwej dokumentacji. diff --git a/man/pl/groups.1 b/man/pl/groups.1 new file mode 100644 index 00000000..6903d6cd --- /dev/null +++ b/man/pl/groups.1 @@ -0,0 +1,61 @@ +.\" {PRM/WK/1999-09-25} +.\" Copyright 1991 - 1994, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH GROUPS 1 +.SH NAZWA +groups \- wy�wietl nazwy bie��cych grup +.SH SK�ADNIA +.B groups +.RI [ u�ytkownik ] +.SH OPIS +.B groups +wy�wietla nazwy lub warto�ci bie��cych identyfikator�w grup. +Je�eli warto�� nie posiada odpowiedniego wpisu w \fI/etc/group\fR, to zostanie +wy�wietlona jako numeryczny identyfikator grupy. +Opcjonalny parametr \fIu�ytkownik\fR powoduje wy�wietlenie grup dla danego +\fIu�ytkownika\fR. +.SH UWAGA +Systemy nie obs�uguj�ce r�wnoczesnych grup (tj.takie, w kt�rych u�ytkownik mo�e +w danej by� cz�onkiem tylko jednej grupy, grupy aktywnej) b�d� wy�wietla� +informacj� z \fI/etc/group\fR. +Do zmiany bie��cego rzeczywistego i efektywnego identyfikatora grupy u�ytkownik +musi u�y� polecenia \fBnewgrp\fR lub \fBsg\fR. +.SH PLIKI +.IR /etc/group " - informacja o grupach" +.SH ZOBACZ TAK�E +.BR newgrp (1), +.BR getuid (2), +.BR getgid (2), +.BR getgroups (2) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/grpck.8 b/man/pl/grpck.8 new file mode 100644 index 00000000..55234e49 --- /dev/null +++ b/man/pl/grpck.8 @@ -0,0 +1,103 @@ +.\" {PTM/WK/1999-09-17} +.\" Copyright 1992 - 1993, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH GRPCK 1 +.SH NAZWA +grpck \- weryfikacja sp�jno�ci plik�w grup +.SH SK�ADNIA +.B grpck +.RB [ -r ] +.RI [ group +.IR shadow ] +.SH OPIS +\fBgrpck\fR weryfikuje integralno�� informacji autentykacji systemowej. +Sprawdzane s� wszystkie pozycje w plikach \fI/etc/group\fR +i \fI/etc/gshadow\fR, by upewni� si�, �e ka�da z nich posiada w�a�ciwy format +i poprawne dane w ka�dym z p�l. U�ytkownik monitowany jest o usuni�cie +pozycji, kt�re s� sformatowane niepoprawnie lub posiadaj� inne nie daj�ce +si� skorygowa� b��dy. +.P +Kontrolowane jest czy ka�da pozycja posiada +.sp +.in +.5i +- w�a�ciw� liczb� p�l +.br +- unikaln� nazw� grupy +.br +- poprawn� list� cz�onk�w i administrator�w +.in -.5i +.sp +.P +Kontrola w�a�ciwej liczby p�l i niepowtarzalnej nazwy grupy jest +decyduj�ca. Je�eli pozycja posiada b��dn� liczb� p�l, to u�ytkownik jest +proszony o usuni�cie ca�ej pozycji (wiersza). +Je�eli u�ytkownik nie potwierdzi decyzji o usuni�ciu, to pomijane s� wszelkie +dalsze sprawdzenia. +Pozycja z powt�rzon� nazw� grupy powoduje monit o usuni�cie, ale nadal +b�d� wykonywane pozosta�e sprawdzenia. +Wszystkie inne b��dy daj� ostrze�enia a u�ytkownik jest zach�cany +do uruchomienia polecenia \fBgroupmod\fR, by je poprawi�. +.P +Polecenia dzia�aj�ce na pliku \fI/etc/group\fR nie potrafi� zmienia� +uszkodzonych lub powielonych pozycji. W takich okoliczno�ciach powinien by� +u�ywany \fBgrpck\fR, by usun�� nieprawid�ow� pozycj�. +.SH OPCJE +Domy�lnie \fBgrpck\fR dzia�a na plikach \fI/etc/group\fR oraz \fI/etc/gshadow\fR. +Przy pomocy parametr�w \fIgroup\fR i \fIshadow\fR u�ytkownik mo�e wybra� inne +pliki. +Dodatkowo, u�ytkownik mo�e wykona� polecenie w trybie tylko-do-odczytu, poprzez +podanie flagi \fB-r\fR. +Powoduje to, �e na wszystkie pytania dotycz�ce zmian zostanie, bez ingerencji +u�ytkownika, u�yta odpowied� \fBnie\fR. +.SH PLIKI +.IR /etc/group " - informacja o kontach grup" +.br +.IR /etc/gshadow " - zakodowana informacja o has�ach i administratorach grup" +.br +.IR /etc/passwd " -informacja o u�ytkownikach" +.SH ZOBACZ TAK�E +.BR groupmod (8), +.BR group (5), +.BR passwd (5), +.BR shadow (5) +.SH DIAGNOSTYKA +Polecenie \fBgrpck\fR ko�czy prac� z nast�puj�cymi warto�ciami kod�w: +.IP 0 5 +Powodzenie +.IP 1 5 +B��d sk�adni +.IP 2 5 +Jedna lub wi�cej z�ych pozycji pliku grup +.IP 3 5 +Niemo�liwe otwarcie plik�w grup +.IP 4 5 +Niemo�liwa blokada plik�w grup +.IP 5 5 +Niemo�liwa aktualizacja plik�w grup +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/id.1 b/man/pl/id.1 new file mode 100644 index 00000000..71392b94 --- /dev/null +++ b/man/pl/id.1 @@ -0,0 +1,57 @@ +.\" {PTM/WK/1999-09-25} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH ID 1 +.SH NAZWA +id - wy�wietl nazwy bie��cych ID u�ytkownika i grupy +.SH SK�ADNIA +.B id +.RB [ -a ] +.SH OPIS +.B id +wy�wietla bie��ce nazwy (lub warto�ci) rzeczywistych i efektywnych +identyfikator�w u�ytkownika i grupy. +Je�eli dana warto�� nie posiada odpowiedniego wpisu w \fI/etc/passwd\fR +lub \fI/etc/group\fR, to zostanie wy�wietlona bez odpowiedniej nazwy. +Opcjonalna flaga \fB-a\fR wy�wietla zestaw grup w systemach, kt�re obs�uguj� +r�wnoczesne cz�onkostwo w wielu grupach. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/group " - informacja o grupach" +.SH ZOBACZ TAK�E +.BR getuid (2), +.BR getgid (2), +.BR getgroups (2) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/lastlog.8 b/man/pl/lastlog.8 new file mode 100644 index 00000000..63d5e270 --- /dev/null +++ b/man/pl/lastlog.8 @@ -0,0 +1,64 @@ +.\" {PTM/WK/1999-09-18} +.\" Copyright 1992, Phillip Street and Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" @(#)lastlog.8 3.3 08:24:58 29 Sep 1993 (National Guard Release) +.\" +.TH LASTLOG 8 +.SH NAZWA +lastlog \- sprawd� plik ostatnich logowa� (lastlog) +.SH SK�ADNIA +.B lastlog +.RB [ -u +.IR uid ] +.RB [ -t +.IR dni +.SH OPIS +\fBlastlog\fR formatuje i wy�wietla zawarto�� dziennika ostatnich logowa�, +\fI/var/log/lastlog\fR. Wy�wietlone zostan� \fBnazwa u�ytkownika\fR, +\fBport\fR i \fBczas ostatniego logowania\fR. +Domy�lnie (bez flag) pozycje pliku wy�wietlane s� w kolejno�ci identyfikator�w +u�ytkownik�w (UID). +Wprowadzenie opcji \fB-u \fInazwa_u�ytkownika\fR spowoduje wy�wietlenie +pozycji opisuj�cej ostatnie rozpocz�cie sesji tylko dla tego u�ytkownika. +U�ycie \fB-t \fIdni\fR powoduje, �e b�d� wy�wietlone ostatnie logowania +u�ytkownik�w nowsze ni� sprzed zadanej liczby \fIdni\fR. +Opcja \fB-t\fR przes�ania u�ycie opcji \fB-u\fR. +.PP +Je�eli u�ytkownik nigdy si� nie logowa� to zamiast portu i czasu logowania +zostanie wy�wietlony komunikat \fB"**Never logged in**"\fR (nigdy si� nie +logowa�). +.SH PLIKI +.IR /var/log/lastlog " - dziennik ostatnich logowa�" +.SH PRZESTROGI +Du�e luki w numeracji UID powoduj�, �e program b�dzie pracowa� d�u�ej, nie +wy�wietlaj�c wynik�w (np. je�li mmdf=800, za� ostatni uid=170, to program +b�dzie sprawia� wra�enie zawieszonego w trakcie przetwarzania uid 171-799). +.SH AUTORZY +Julianne Frances Haugh (jfh@austin.ibm.com) +.br +Phillip Street diff --git a/man/pl/limits.5 b/man/pl/limits.5 new file mode 100644 index 00000000..9ffa0f59 --- /dev/null +++ b/man/pl/limits.5 @@ -0,0 +1,79 @@ +.\" {PTM/WK/1999-09-18} +.TH LIMITS 5 +.SH NAZWA +limits \- definicja ogranicze� zasob�w +.SH OPIS +Plik +.I limits +(domy�lnie /etc/limits lub LIMITS_FILE zdefiniowane w config.h) +opisuje ograniczenia zasob�w, jakie chcia�by� narzuci� u�ytkownikom. +W�a�cicielem tego pliku powinien by� u�ytkownik root i wy��cznie dla niego +plik ten powinien by� dost�pny do odczytu. +.PP +Domy�lnie u�ytkownikowi 'root' nie s� narzucane �adne ograniczenia. +W rzeczywisto�ci, przy u�yciu tego sposobu nie jest mo�liwe narzucenie limit�w +dla kont r�wnowa�nych root (kont z UID r�wnym 0). +.PP +Ka�dy wiersz definiuje ograniczenie dla u�ytkownika w postaci: +.sp +.I u�ytkownik �A�CUCH_OGRANICZE� +.PP +\fB�A�CUCH OGRANICZE�\fP sk�ada si� z po��czonych definicji ogranicze� zasob�w. +Ka�de ograniczenie opisywane jest liter� z nast�puj�c� po niej warto�ci� +numeryczn� limitu. +.PP +Dozwolone s� nast�puj�ce identyfikatory: +.sp +A: max. przestrze� adresowa (KB) +.br +C: max. rozmiar pliku core (KB) +.br +D: max. rozmiar danych (KB) +.br +F: maksymalny rozmiar pliku (KB) +.br +M: max. locked-in-memory address space (KB) +.br +N: max. liczba otwartych plik�w +.br +R: max. resident set size (KB) +.br +S: max. rozmiar stosu (KB) +.br +T: max. czas procesora (CPU) (MIN) +.br +U: max. liczba proces�w +.br +L: max. liczba sesji pracy dla tego u�ytkownika +.br +P: priorytet procesu, ustawiany przez \fBsetpriority\fR(2). +.PP +Na przyk�ad, \fIL2D2048N5\fP jest poprawnym \fB�A�CUCHEM OGRANICZE�\fP. +Z uwagi na lepsz� czytelno�ci przyj�to, �e poni�sze zapisy s� r�wnowa�ne: +.sp +nazwa_u�ytkownika L2D2048N5 +.br +nazwa_u�ytkownika L2 D2048 N5 +.PP +Nale�y podkre�li�, �e reszta wiersza po \fInazwie_u�ytkownika\fP traktowana +jest jako �a�cuch ogranicze�, zatem komentarze nie s� dozwolone. Nieprawid�owy +�a�cuch ogranicze� zostanie odrzucony (nie b�dzie brany pod uwag�) przez +program login. +.PP +Nazwa u�ytkownika r�wna "\fB*\fP" oznacza wpis domy�lny. +Je�eli w pliku \fBLIMITS_FILE\fP posiadasz wiele takich wpis�w, to jako +domy�lny zostanie u�yty ostatni z nich. +.PP +Pojedyncza kreska "\fB-\fP" ca�kowicie wy��cza ograniczenia dla u�ytkownika. +.PP +Zauwa� te�, prosz�, �e wszystkie te ograniczenia definiowane s� w odniesieniu +do pojedynczej sesji (per login). Nie s� one globalne ani sta�e. By� mo�e b�d� +kiedy� ograniczenia globalne, ale na razie tyle musi wystarczy� ;) +.SH PLIKI +.I /etc/limits +.SH ZOBACZ TAK�E +.BR login (1), +.BR setpriority (2), +.BR setrlimit (2) +.SH AUTOR +Cristian Gafton (gafton@sorosis.ro) diff --git a/man/pl/login.1 b/man/pl/login.1 new file mode 100644 index 00000000..ecedc24c --- /dev/null +++ b/man/pl/login.1 @@ -0,0 +1,134 @@ +.\" {PTM/WK/1999-09-25} +.\" Copyright 1989 - 1994, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH LOGIN 1 +.SH NAZWA +login \- rozpocznij sesj� pracy w systemie +.SH SK�ADNIA +.B login +.RI [ u�ytkownik " [" zmienne_�rodowiska ]] +.\" XXX - udokumentowa� opcje -f -h -p -r +.SH OPIS +.B login +s�u�y do utworzenia nowej sesji pracy z systemem. Zwykle wywo�ywane jest +automatycznie w odpowiedzi na zach�t� +.I login: +na terminalu u�ytkownika. +.B login +mo�e by� specyficzne dla pow�oki i mo�e zosta� wywo�ane jako podproces. +Najcz�ciej, +.B login +traktowane jest przez pow�ok� jako \fBexec login\fR, co powoduje opuszczenie +przez u�ytkownika bie��cej pow�oki. +Pr�ba wykonania \fBlogin\fR z pow�oki innej ni� zg�oszeniowa powoduje komunikat +o b��dzie. +.PP +Przy wywo�aniu polecenia z zach�ty \fIlogin:\fR, u�ytkownik mo�e po swojej +nazwie wprowadzi� zmienne �rodowiska. Zmienne te wprowadzane s� w postaci: +\fBNAZWA=WARTO��\fR. Nie wszystkie zmienne mog� jednak by� ustawione w ten +spos�b, szczeg�lnie \fBPATH\fR, \fBHOME\fR i \fBSHELL\fR. +Dodatkowo, zakazane mo�e by� \fBIFS\fR (input field separator: separator p�l +wej�ciowych), je�eli pow�ok� zg�oszeniow� u�ytkownika \fB/bin/sh\fR. +.PP +U�ytkownik pytany jest o has�o, je�li takowe istnieje. +Dla zapobie�enia ujawnieniu has�a wy�wietlanie wprowadzanych znak�w jest +wy��czone. Dozwolona jest jedynie niewielka liczba nieudanych pr�b podania +has�a. Po wyczerpaniu limitu pr�b \fBlogin\fR ko�czy prac� za� po��czenie +komunikacyjne jest zrywane. +.PP +Je�eli dla twego konta w��czona jest kontrola wa�no�ci has�a, mo�esz by� +proszony o podanie nowego has�a przed kontynuacj�. B�dziesz w�wczas musia� +poda� stare i nowe has�o. Wi�cej informacji na ten temat znajdziesz +w \fBpasswd \fR(1). +.PP +Po poprawnym rozpocz�ciu sesji (zalogowaniu si�), zostanie wy�wietlona +wiadomo�� dnia (je�li jest) i informacja o stanie skrzynki pocztowej. +Mo�esz wy��czy� wy�wietlanie zawarto�ci pliku wiadomo�ci dnia, +\fI/etc/motd\fR, tworz�c zerowej wielko�ci plik \fI.hushlogin\fR +w swoim katalogu domowym. +Informacja o stanie skrzynki pocztowej jest jedn� z: +"\fBYou have new mail.\fR" (masz now� poczt�), +"\fBYou have mail.\fR" (masz poczt�), lub "\fBNo Mail.\fR" (brak poczty) - +stosownie do stanu skrzynki. +.PP +Identyfikator u�ytkownika i grupy (UID i GID) zostan� ustawione wed�ug warto�ci +w pliku \fI/etc/passwd\fR. +Warto�ci \fB$HOME\fR, \fB$SHELL\fR, \fB$PATH\fR, \fB$LOGNAME\fR +i \fB$MAIL\fR ustawiane s� stosownie do odpowiednich p�l danego wpisu pliku +hase�. +Mog� by� ustalane r�wnie� warto�ci ulimit, umask oraz nice wed�ug wpis�w w polu +GECOS. +.PP +W niekt�rych systemach zostanie ustawiona zmienna �rodowiskowa \fB$TERM\fR, +wskazuj�ca na typ terminala na linii tty, jak podano w \fI/etc/ttytype\fR. +.PP +Mo�e tak�e zosta� wykonany skrypt startowy (inicjacyjny) twojego interpretatora +polece�. +Przegl�dnij, prosz�, odpowiedni� sekcj� dokumentacji opisuj�c� bardziej +szczeg�owo t� funkcj�. +.SH PRZESTROGI +Niniejsza wersja \fBlogin\fR posiada wiele opcji kompilacji, z kt�rych tylko +cz�� b�dzie mie� zastosowanie w danej instalacji. +.PP +Po�o�enie plik�w mo�e by� r�ne w zale�no�ci od konfiguracji systemu. +.SH PLIKI +.IR /etc/utmp " - lista bie��cych sesji pracy" +.br +.IR /etc/wtmp " - lista poprzednich sesji pracy" +.br +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowane has�a i informacja o ich wa�no�ci" +.br +.IR /etc/motd " - plik 'wiadomo�ci dnia'" +.br +.IR /etc/nologin " - zapobiega logowaniu innych ni� root" +.br +.IR /etc/ttytype " - lista typ�w terminali" +.br +.IR $HOME/.profile " - skrypt startowy domy�lnej pow�oki" +.br +.IR $HOME/.hushlogin " - zapobiega m.in. wy�wietlaniu wiadomo�ci dnia" +.br +.SH ZOBACZ TAK�E +.BR getty (8), +.BR mail (1), +.BR passwd (1), +.BR sh (1), +.BR su (1), +.BR login.defs (5), +.\" .BR d_passwd (5), +.BR passwd (5), +.BR nologin (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/login.access.5 b/man/pl/login.access.5 new file mode 100644 index 00000000..cfcad56c --- /dev/null +++ b/man/pl/login.access.5 @@ -0,0 +1,54 @@ +.\" {PTM/WK/1999-09-17} +.TH LOGIN.ACCESS 5 +.\" .Dt SKEY.ACCESS 5 +.\" .Os FreeBSD 1.2 +.SH NAZWA +login.access \- tabela kontroli dost�pu logowania +.SH OPIS +Plik +.I login.access +okre�la kombinacje (u�ytkownik, host) i/lub (u�ytkownik, tty) +dla kt�rych logowanie b�dzie albo przyj�te albo odrzucone. +.PP +Gdy kto� si� loguje, plik +.I login.access +przeszukiwany jest do znalezienia pierwszej pozycji pasuj�cej do danej +kombinacji (u�ytkownik, host), lub, w przypadku logowa� nie-sieciowych +kombinacji (u�ytkownik, tty). Pole zezwolenia w tej tablicy pozycji okre�la +czy logowanie b�dzie przyj�te czy odrzucone. +.PP +Ka�dy wiersz tabeli kontroli dost�pu logowania posiada trzy, oddzielone +znakiem dwukropka, pola: +.sp 1 +.IR zezwolenie : u�ytkownicy : pochodzenie +.sp 1 +Pierwsze pole powinno zawiera� znak "\fB+\fR" (dost�p zapewniony) lub "\fB-\fR" +(zakaz dost�pu). Drugie z p�l powinno zawiera� list� jednego lub wi�cej nazw +u�ytkownik�w, grup lub s�owo +.B ALL +(zawsze pasuje do wszystkich). Trzecie pole powinno by� list� jednej lub wi�cej +nazw tty (dla logowa� nie-sieciowych), nazw host�w, domen (rozpoczynaj�cych si� +od kropki), adres�w host�w, internetowych numer�w sieci (ko�cz�cych si� +kropk�), s�owem +.B ALL +(wszystkie - zawsze pasuje) lub +.B LOCAL +(dopasowuje dowolny �a�cuch nie zawieraj�cy kropki). +Je�eli uruchomisz NIS mo�esz u�y� @nazwagrupysieciowej we wzorcu hosta +lub u�ytkownika. +.\" @netgroupname +.PP +Operator +.B EXCEPT +(opr�cz) umo�liwia pisanie z�o�onych regu�. +.PP +Plik grup przeszukiwany jest wy��cznie wtedy, gdy nazwa nie pasuje do +loguj�cego si� u�ytkownika. Dopasowywane s� tylko te grupy, w kt�rych +u�ytkownik jest jawnie wymieniony: program nie sprawdza warto�ci +identyfikatora grupy g��wnej u�ytkownika. +.SH PLIKI +.I /etc/login.access +.SH ZOBACZ TAK�E +.BR login (1) +.SH AUTOR +Guido van Rooij diff --git a/man/pl/login.defs.5 b/man/pl/login.defs.5 new file mode 100644 index 00000000..79c907de --- /dev/null +++ b/man/pl/login.defs.5 @@ -0,0 +1,557 @@ +.\" {PTM/WK/1999-09-18} +.\" Copyright 1991 - 1993, Julianne Frances Haugh and Chip Rosenthal +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH LOGIN 5 +.SH NAZWA +/etc/login.defs \- konfiguracja logowania +.SH OPIS +Plik +.I /etc/login.defs +definiuje specyficzn� dla naszej maszyny konfiguracj� pakietu shadow login. +Plik ten jest wymagany. Jego nieobecno�� nie wstrzyma dzia�ania systemu, +ale prawdopodobnie spowoduje nieprzewidywalne dzia�anie. +.PP +Plik ten jest czytelnym plikiem tekstowym. Ka�dy z jego wierszy opisuje jeden +parametr konfiguracji. Wiersze sk�adaj� si� z nazwy parametru i jego warto�ci, +oddzielonych bia�ym znakiem. Ignorowane s� puste wiersze i wiersze komentarzy. +Komentarze rozpoczynaj� si� od znaku '#', kt�ry musi by� pierwszym znakiem +wiersza (pomijaj�c bia�e znaki). +.PP +Istniej� cztery typy warto�ci parametr�w: napisy, logiczne (boolean), +liczby i d�ugie liczby (long numbers). Napis jest z�o�ony +z dowolnych znak�w drukowalnych. Parametr logiczny mo�e mie� albo warto�� +"yes" albo "no". Niezdefiniowanemu parametrowi logicznemu lub parametrowi, +kt�remu przypisano warto�� inn� od powy�szych przypisane zostanie "no". +Liczby (zar�wno zwyk�e jak i d�ugie) mog� by� warto�ciami dziesi�tnymi, +�semkowymi (poprzed� warto�� cyfr� "0") albo szesnastkowymi (poprzed� warto�� +sekwencj� "0x"). Maksymalne warto�ci zwyk�ych i d�ugich parametr�w +numerycznych zale�� od maszyny. +.PP +Obs�ugiwane s� nast�puj�ce opcje konfiguracyjne: +.\" +.IP "CHFN_AUTH (logiczna)" +Je�eli ma warto�� +.IR yes , +to programy +.B chfn +i +.B chsh +b�d� pyta� o has�o przed dokonaniem zmian, chyba �e uruchamiane s� przez +superu�ytkownika. +.\" +.IP "CHFN_RESTRICT (napis)" +Ten parametr okre�la, jakie warto�ci w polu +.I gecos +pliku +.I passwd +mog� by� zmieniane przez zwyk�ych u�ytkownik�w za pomoc� programu +.B chfn +Mo�e on by� dowoln� kombinacj� liter +.IR f , +.IR r , +.IR w , +.IR h , +oznaczaj�cych odpowiednio: Full name (pe�na nazwa), Room number (numer pokoju), +Work phone (telefon s�u�bowy) i Home phone (telefon domowy). +Je�li parametr nie jest podany, to zmian mo�e dokonywa� wy��cznie +superu�ytkownik. +.\" +.IP "CONSOLE (napis)" +Je�li podana, definicja ta okre�la ograniczony zestaw linii, na kt�rych +dozwolone jest rozpoczynanie sesji u�ytkownika root. Pr�by logowania +u�ytkownika root niespe�niaj�ce ustalonych tu kryteri�w zostan� odrzucone. +Warto�� tego pola mo�e wyst�pi� w jednej z dwu postaci: albo pe�nej nazwy +�cie�kowej pliku, jak na przyk�ad +.sp +.ft I + CONSOLE /etc/consoles +.ft R +.sp +albo listy linii terminalowych rozdzielonych dwukropkami, jak poni�ej: +.sp +.ft I + CONSOLE console:tty01:tty02:tty03:tty04 +.ft R +.sp +(Zauwa�, �e wymienione tu nazwy nie zawieraj� �cie�ki /dev/). +Je�eli podano �cie�kow� nazw� pliku, to ka�dy jego wiersz powinien okre�la� +jedn� lini� terminalow�. Je�li parametr ten nie jest zdefiniowany albo podany +plik nie istnieje, to u�ytkownik root b�dzie m�g� si� logowa� z dowolnej linii +terminalowej. Poniewa� usuni�cie lub obci�cie pliku definiuj�cego +dozwolone linie mo�e spowodowa� nieautoryzowane logowania roota, plik ten musi +by� chroniony. Tam, gdzie bezpiecze�stwo jest spraw� kluczow�, powinna by� +u�ywana posta� listy separowanej dwukropkami, co chroni przed potencjaln� +pr�b� ataku w opisany spos�b. +.\" +.IP "CONSOLE_GROUPS (napis)" +XXX powinno zosta� udokumentowane. +.\" +.IP "CRACKLIB_DICTPATH (napis)" +XXX powinno zosta� udokumentowane. +.\" +.IP "DEFAULT_HOME (logiczna)" +XXX powinno zosta� udokumentowane. +.\" +.IP "DIALUPS_CHECK_ENAB (logiczna)" +Je�eli ma warto�� +.I yes +a plik +.I /etc/dialups +istnieje, to na liniach telefonicznych wyszczeg�lnionych w tym pliku s� +w��czane wt�rne has�a (has�a telefoniczne). Plik ten powinien zawiera� list� +linii telefonicznych (dialups), po jednej w wierszu, na przyk�ad: +.nf +.sp +.ft I + ttyfm01 + ttyfm02 + \0\0. + \0\0. + \0\0. +.ft R +.sp +.fi +.\" +.IP "ENVIRON_FILE (napis)" +XXX powinno zosta� udokumentowane. +.\" +.IP "ENV_HZ (napis)" +Parametr ten okre�la warto�� parametru �rodowiska HZ. Przyk�ad u�ycia: +.sp + \fIENV_HZ HZ=50\fR +.sp +Je�eli jest on zdefiniowany, to nie zostanie ustanowiona �adna warto�� HZ. +.\" +.IP "ENV_PATH (napis)" +Parametr ten musi by� zdefiniowany jako �cie�ka przeszukiwania dla zwyk�ych +u�ytkownik�w. Przy logowaniu z UID innym ni� zero, zmienna �rodowiskowa PATH +jest inicjowana t� w�a�nie warto�ci�. Jest to parametr wymagany; je�eli nie +zostanie zdefiniowany, to zostanie nadana, by� mo�e niepoprawna, warto�� +domy�lna. +.\" +.IP "ENV_SUPATH (napis)" +Parametr ten musi by� zdefiniowany jako �cie�ka przeszukiwania dla +superu�ytkownika. Przy rozpoczynaniu sesji z UID r�wnym zero, zmienna +�rodowiskowa PATH jest inicjowana t� w�a�nie warto�ci�. Jest to parametr +wymagany; je�eli nie zostanie zdefiniowany, to zostanie nadana, by� mo�e +niepoprawna, warto�� domy�lna. +.\" +.IP "ENV_TZ (napis)" +Parametr ten zawiera informacj� s�u��c� do utworzenia zmiennej �rodowiskowej TZ. +Jego warto�� musi by� albo wprost wymagan� zawarto�ci� TZ, albo +pe�n� nazw� �cie�kow� pliku zawieraj�cego t� informacj�. Przyk�ad u�ycia: +.sp + \fIENV_TZ\0\0\0\0TZ=CST6CDT\fP +.sp +lub +.sp + \fIENV_TZ\0\0\0\0/etc/tzname\fP +.sp +Je�eli podano nieistniej�cy plik, to TZ zostanie zainicjowane pewn� warto�ci� +domy�ln�. Je�eli nie zdefiniowano tego parametru to nie b�dzie ustawiona +�adna warto�� TZ. +.\" +.IP "ERASECHAR (liczba)" +T� warto�ci� jest inicjowany terminalowy znak +.I erase +(kasowania). Jest to obs�ugiwane tylko w systemach z interfejsem +.IR termio, +np. System V. Je�eli nie podano parametru, to znak kasowania zostanie +zainicjowany na backspace. Informacj� powi�zan� znajdziesz w opisie KILLCHAR. +.\" +.IP "FAILLOG_ENAB (logiczna)" +Je�eli ustawiona na +.I yes +to nieudane logowania b�d� odnotowywane w pliku +.I /var/log/faillog +w formacie +.BR faillog (8). +.\" +.IP "FAIL_DELAY (liczba)" +Czas op�nienia, wyra�ony w sekundach, po ka�dej nieudanej pr�bie logowania. +.\" +.IP "FAKE_SHELL (napis)" +Zamiast rzeczywistej pow�oki u�ytkownika zostanie uruchomiony program okre�lony +warto�ci� tego parametru. Nazwa widoczna (argv[0]) programu b�dzie jednak +nazw� pow�oki. Program przed uruchomieniem faktycznej pow�oki mo�e wykonywa� +dowoln� akcj� (logowanie, dodatkowe uwierzytelnianie, banner itp.). +.\" +.IP "FTMP_FILE (napis)" +Okre�la pe�n� �cie�kow� nazw� pliku, w kt�rym rejestrowane s� nieudane pr�by +rozpoczynania sesji pracy. W przypadku nieudanej pr�by logowania do pliku +dopisywana jest pozycja o formacie +.IR utmp . +Zauwa�, �e r�ni si� to od rejestracji niepomy�lnych logowa� do +.IR /var/log/faillog , +gdy� opisywana funkcja odnotowuje wszystkie nieudane pr�by, podczas gdy +"faillog" kumuluje informacj� o pora�kach danego u�ytkownika. Je�li nie +podano tego parametru, to rejestracja b�dzie wy��czona. Powi�zane informacje +znajdziesz w opisie FAILLOG_ENAB i LOG_UNKFAIL_ENAB. +.\" +.IP "GID_MAX (liczba)" +.IP "GID_MIN (liczba)" +Zakres identyfikator�w grup, w obr�bie kt�rego mo�e wybiera� program +.BR groupadd . +.\" +.IP "HUSHLOGIN_FILE (nazwa)" +Parametr u�ywany do ustalenia okoliczno�ci cichego logowania ("hushlogin"). +Okoliczno�ci te mog� by� ustalone na dwa sposoby. Po pierwsze, je�eli warto�ci� +parametru jest nazwa pliku, a plik ten istnieje w katalogu domowym u�ytkownika, +to wprowadzane s� warunki cichego logowania. Zawarto�� pliku jest ignorowana; +sama jego obecno�� powoduje ciche logowanie. Po drugie, je�eli warto�ci� +parametru jest pe�na nazwa �cie�kowa pliku a w pliku tym znaleziona zostanie +nazwa u�ytkownika lub nazwa jego pow�oki, to wprowadzone zostan� warunki +cichego logowania. W tym przypadku, plik powinien mie� format podobny do: +.nf +.sp +.ft I + demo + /usr/lib/uucp/uucico + \0\0. + \0\0. + \0\0. +.ft R +.sp +.fi +Je�eli nie zdefiniowano tego parametru, to warunki cichego logowania nigdy +nie wyst�pi�. W trakcie cichego logowanie wstrzymane jest wy�wietlanie +wiadomo�ci dnia (message of the day), ostatniego udanego i nieudanego +rozpocz�cia sesji pracy, wy�wietlanie stanu skrzynki pocztowej i sprawdzenie +wieku has�a. Zauwa�, �e zezwolenie na pliki cichego logowania w katalogach +domowych u�ytkownik�w pozwala im na wstrzymanie kontroli wa�no�ci +has�a. Informacje zwi�zane z tym tematem znajdziesz w opisach MOTD_FILE, +FILELOG_ENAB, LASTLOG_ENAB i MAIL_CHECK_ENAB. +.\" +.IP "ISSUE_FILE (napis)" +Pe�na �cie�kowa nazwa pliku wy�wietlanego przed ka�d� zach�t� do logowania. +.\" +.IP "KILLCHAR (liczba)" +T� warto�ci� inicjowany jest terminalowy znak +.IR kill . +Jest to obs�ugiwane tylko w systemach z interfejsem +.IR termio, +np. System V. Je�eli nie podano parametru, to znak kasowania zostanie +zainicjowany na \s-2CTRL/U\s0. Informacj� powi�zan� znajdziesz w opisie +ERASECHAR. +.\" +.IP "LASTLOG_ENAB (logiczna)" +Je�li ma warto�� +.IR yes , +i istnieje plik +.IR /var/log/lastlog , +to w tym pliku b�dzie rejestrowane poprawne rozpocz�cie sesji pracy u�ytkownika +(zalogowanie si�). Ponadto, je�li opcja ta jest w��czona, to podczas logowania +si� u�ytkownika b�dzie wy�wietlana informacja o liczbie ostatnich udanych +i nieudanych logowa�. Zako�czone niepowodzeniem logowania nie b�d� wy�wietlane +je�li nie w��czono FAILLOG_ENAB. W warunkach cichego logowanie nie +b�d� wy�wietlane informacje ani o pomy�lnych ani o niepomy�lnych logowaniach. +.\" +.IP "LOGIN_RETRIES (liczba)" +Dozwolona liczba pr�b logowania przed zako�czeniem pracy programu +.BR login . +.\" +.IP "LOGIN_STRING (napis)" +XXX powinno zosta� udokumentowane. +.IP "LOGIN_TIMEOUT (liczba)" +XXX powinno zosta� udokumentowane. +.IP "LOG_OK_LOGINS (logiczna)" +XXX powinno zosta� udokumentowane. +.IP "LOG_UNKFAIL_ENAB (logiczna)" +Je�li posiada warto�� +.I yes +to nieznane nazwy u�ytkownik�w b�d� r�wnie� odnotowywane je�li w��czone jest +rejestrowanie nieudanych pr�b rozpocz�cia sesji. Zauwa�, �e niesie to ze sob� +potencjalne zagro�enie bezpiecze�stwa: powszechn� przyczyn� nieudanego +logowania jest zamiana nazwy u�ytkownika i has�a, tryb ten zatem spowoduje, +�e cz�sto w rejestrach nieudanych logowa� b�d� si� odk�ada� jawne has�a. +Je�eli opcja ta jest wy��czona, to nieznane nazwy u�ytkownik�w b�d� pomijane +w komunikatach o nieudanych pr�bach logowania. +.\" +.IP "MAIL_CHECK_ENAB (logiczna)" +Je�eli ma warto�� +.IR yes , +to u�ytkownik po rozpocz�ciu sesji pracy b�dzie powiadamiany o stanie swojej +skrzynki pocztowej. Informacj� zwi�zan� z tym tematem znajdziesz w opisie +MAIL_DIR. +.\" +.IP "MAIL_DIR (napis)" +Okre�la pe�n� nazw� �cie�kow� do katalogu zawieraj�cego pliki skrzynki +pocztowej u�ytkownika. Do powy�szej �cie�ki doklejana jest nazwa u�ytkownika, +tworz�c w ten spos�b zmienn� �rodowiskow� MAIL - �cie�k� do skrzynki +u�ytkownika. Musi by� zdefiniowany albo niniejszy parametr albo parametr +MAIL_FILE; je�li nie zostan� zdefiniowane, to zostanie nadana, by� mo�e +niepoprawna, warto�� domy�lna. Zobacz tak�e opis MAIL_CHECK_ENAB. +.\" +.IP "MAIL_FILE (napis)" +Okre�la nazw� pliku skrzynki pocztowej u�ytkownika. Nazwa ta doklejana jest +na koniec nazwy katalogu domowego u�ytkownika tworz�c zmienn� �rodowiskow� +MAIL - �cie�k� do skrzynki u�ytkownika. Musi by� zdefiniowany albo niniejszy +parametr albo parametr MAIL_DIR; je�li nie zostan� zdefiniowane, to zostanie +nadana, by� mo�e niepoprawna, warto�� domy�lna. Zobacz tak�e opis +MAIL_CHECK_ENAB. +.\" +.IP "MD5_CRYPT_ENAB (logiczna)" +Je�eli ma warto�� +.IR yes , +to program +.B passwd +b�dzie kodowa� nowo zmieniane has�a przy pomocy nowego algorytmu +.BR crypt (3), +opartego o MD-5. Algorytm ten pierwotnie pojawi� si� we FreeBSD i jest te� +obs�ugiwany przez libc-5.4.38 oraz glibc-2.0 (lub wy�sz�) w Linuksie. +Pozwala on na u�ywanie hase� d�u�szych ni� 8 znak�w (ograniczone przez +.BR getpass (3) +do 127 znak�w), ale nie jest zgodny z tradycyjnymi implementacjami polecenia +.BR crypt (3). +.\" +.IP "MOTD_FILE (napis)" +Okre�la list� rozdzielonych dwukropkami �cie�ek do plik�w "wiadomo�ci dnia" +(message of the day, MOTD). Je�li podany plik istnieje, to jego zawarto�� jest +wy�wietlana u�ytkownikowi podczas rozpoczynania przez niego sesji pracy. +Je�eli parametr ten jest niezdefiniowany lub wykonywane jest ciche logowanie, +to informacja ta b�dzie pomijana. +.\" +.IP "NOLOGINS_FILE (napis)" +Okre�la pe�n� nazw� �cie�kow� pliku zabraniaj�cego logowa� dla u�ytkownik�w +innych ni� root. Je�eli plik ten istnieje a u�ytkownik inny ni� root usi�uje +si� zalogowa�, to wy�wietlana zostanie zawarto�� pliku a u�ytkownik b�dzie +roz��czony. Je�eli nie podano tego parametru, to opisana funkcja b�dzie +wy��czona. +.\" +.IP "NOLOGIN_STR (napis)" +XXX powinno zosta� udokumentowane. +.\" +.IP "OBSCURE_CHECKS_ENAB (logiczna)" +Je�eli ma warto�� +.IR yes , +to program +.B passwd +przed akceptacj� zmiany has�a b�dzie wykonywa� dodatkowe sprawdzenia. +Kontrole te s� do�� proste, a ich u�ycie jest zalecane. +Te sprawdzenia nieoczywisto�ci s� pomijane, je�eli +.B passwd +uruchamiane jest przez u�ytkownika +.IR root . +Zobacz tak�e opis PASS_MIN_LEN. +.\" +.IP "PASS_ALWAYS_WARN (logiczna)" +XXX powinno zosta� udokumentowane. +.\" +.IP "PASS_CHANGE_TRIES (liczba)" +XXX powinno zosta� udokumentowane. +.\" +.IP "PASS_MIN_DAYS (liczba)" +Minimalna liczba dni mi�dzy dozwolonymi zmianami has�a. Jakiekolwiek pr�by +zmiany has�a podejmowane wcze�niej zostan� odrzucone. Je�eli nie podano tego +parametru, to przyj�ta zostanie warto�� zerowa. +.\" +.IP "PASS_MIN_LEN (liczba)" +Minimalna liczba znak�w w akceptowalnym ha�le. Pr�ba przypisania has�a o +mniejszej liczbie znak�w zostanie odrzucona. Warto�� zero wy��cza t� +kontrol�. Je�li nie podano parametru, to przyj�ta zostanie warto�� zerowa. +.\" +.IP "PASS_MAX_DAYS (liczba)" +Maksymalna liczba dni, przez jak� mo�e by� u�ywane has�o. Je�li has�o jest +stanie si� starsze, to rachunek zostanie zablokowany. Je�li nie podano, to +zostanie przyj�ta bardzo du�a warto��. +.\" +.IP "PASS_MAX_LEN (liczba)" +XXX powinno zosta� udokumentowane. +.\" +.IP "PASS_WARN_AGE (liczba)" +Liczba dni ostrzegania przed wyga�ni�ciem has�a. Warto�� zerowa oznacza, +�e ostrze�enie wyst�pi wy��cznie w dniu utraty wa�no�ci has�a. Warto�� +ujemna oznacza brak ostrze�e�. Brak parametru oznacza, �e ostrze�enia nie +b�d� wy�wietlane. +.\" +.IP "PORTTIME_CHECKS_ENAB (logiczna)" +Je�li ma warto�� +.IR yes , +za� plik +.I /etc/porttime +istnieje, to b�dzie on przegl�dany, by upewni� si� czy u�ytkownik mo�e si� +w danej chwili zalogowa� na danej linii. Patrz tak�e podr�cznik +.BR porttime (5) +.\" +.IP "QMAIL_DIR (napis)" +Dla u�ytkownik�w Qmail, parametr ten okre�la katalog, w kt�rym przechowywana +jest hierarchia Maildir. +Zobacz te� MAIL_CHECK_ENAB. +.\" +.IP "QUOTAS_ENAB (logiczna)" +Je�li ma warto�� +.I yes , +w�wczas dla danego u�ytkownika "ulimit," "umask" i "niceness" b�d� +zainicjowane warto�ciami podanymi (o ile s� podane) w polu +.I gecos +pliku +.IR passwd . +Patrz tak�e podr�cznik +.BR passwd (5). +.\" +.IP "SU_NAME (napis)" +Przypisuje nazw� polecenia do uruchomionego "su -". Na przyk�ad, je�li +parametr ten jest zdefiniowany jako "su", to polecenie +.BR ps (1) +poka�e uruchomione polecenie jako "-su". Je�li parametr ten jest +niezdefiniowany, to +.BR ps (1) +poka�e nazw� faktycznie wykonywanej pow�oki, np. co� w rodzaju "-sh". +.\" +.IP "SULOG_FILE (napis)" +Pokazuje pe�n� nazw� �cie�kow� pliku, w kt�rym rejestrowane jest wykorzystanie +.BR su . +Je�li parametr ten nie jest okre�lony, to rejestrowanie nie jest wykonywane. +Poniewa� polecenie +.B su +mo�e by� u�ywane podczas pr�b uwierzytelnienia has�a, do odnotowywania +u�ycia +.B su +powinny by� u�ywane albo niniejsza opcja +albo +.IR syslog . +Zobacz te� opis SYSLOG_SU_ENAB. +.\" +.IP "SU_WHEEL_ONLY (logiczna)" +XXX powinno zosta� udokumentowane. +.\" +.IP "SYSLOG_SG_ENAB (logiczna)" +XXX powinno zosta� udokumentowane. +.\" +.IP "SYSLOG_SU_ENAB (logiczna)" +Je�eli ma warto�� +.IR yes , +za� program +.B login +zosta� skompilowany z obs�ug� +.IR syslog , +to wszelkie dzia�ania +.B su +b�d� rejestrowane za pomoc� +.IR syslog . +Zobacz te� opis SULOG_FILE. +.\" +.IP "TTYGROUP (napis lub liczba)" +Grupa (w�a�cicielska) terminala inicjowana jest na nazw� b�d� numer tej grupy. +Jeden z dobrze znanych atak�w polega na wymuszeniu sekwencji kontrolnych +terminala na linii terminalowej innego u�ytkownika. Problemu tego mo�na +unikn�� wy��czaj�c prawa zezwalaj�ce innym u�ytkownikom na dost�p do linii +terminalowej, ale niestety zapobiega to r�wnie� dzia�aniu program�w takich +jak +.BR write . +Innym rozwi�zaniem jest pos�u�enie si� tak� wersj� programu +.BR write , +kt�ra odfiltrowuje potencjalnie niebezpieczne sekwencje znak�w. Nast�pnie +programowi nale�y przyzna� rozszerzone prawa dost�pu (SGID) dla specjalnej +grupy, ustawi� grup� w�a�cicieli terminala na t� grup� i nada� prawa dost�pu +\fI0620\fR do linii. Definicja TTYGROUP powsta�a do obs�ugi tej w�a�nie +sytuacji. +Je�li pozycja ta nie jest zdefiniowana, to grupa terminala inicjowana jest +na numer grupy u�ytkownika. +Zobacz tak�e TTYPERM. +.\" +.IP "TTYPERM (liczba)" +T� warto�ci� inicjowane s� prawa terminala logowania. Typowymi warto�ciami s� +\fI0622\fR zezwalaj�ce innym na pisanie do linii lub \fI0600\fR zabezpieczaj�ce +lini� przed innymi u�ytkownikami. Je�eli nie podano tego parametru, to prawa +dost�pu do terminala zostan� zainicjowane warto�ci� \fI0622\fR. Zobacz te� +TTYGROUP. +.\" +.IP "TTYTYPE_FILE (napis)" +Okre�la pe�n� nazw� �cie�kow� pliku przypisuj�cego typy terminali do linii +terminalowych. Ka�dy z wierszy tego pliku zawiera rozdzielone bia�ym znakiem +typ i lini� terminala. Na przyk�ad: +.nf +.sp +.ft I + vt100\0 tty01 + wyse60 tty02 + \0\0.\0\0\0 \0\0. + \0\0.\0\0\0 \0\0. + \0\0.\0\0\0 \0\0. +.ft R +.sp +.fi +Informacja ta s�u�y do inicjowania zmiennej �rodowiska TERM. Wiersz +rozpoczynaj�cy si� znakiem # b�dzie traktowany jak komentarz. Je�eli nie +podano tego parametru lub plik nie istnieje albo nie znaleziono w nim +linii terminala, to zmienna TERM nie zostanie ustawiona. +.\" +.IP "UID_MAX (liczba)" +XXX powinno zosta� udokumentowane. +.IP "UID_MIN (liczba)" +XXX powinno zosta� udokumentowane. +.\" +.IP "ULIMIT (d�uga liczba)" +Warto�ci� t� inicjowany jest limit wielko�ci pliku. Cecha ta obs�ugiwana +jest wy��cznie w systemach posiadaj�cych +.IR ulimit , +np. System V. Je�li nie podano, to limit wielko�ci pliku zostanie ustalony +na pewn� wielk� warto��. +.\" +.IP "UMASK (liczba)" +T� warto�ci� inicjowana jest maska praw dost�pu. Nie podana, ustawia mask� +praw na zero. +.\" +.IP "USERDEL_CMD (napis)" +XXX powinno zosta� udokumentowane. +.\" +.SH POWI�ZANIA +Poni�sze zestawienie pokazuje, kt�re z program�w wchodz�cych w sk�ad pakietu +shadow wykorzystuj� jakie parametry. +.na +.IP login 12 +CONSOLE DIALUPS_CHECK_ENAB ENV_HZ ENV_SUPATH ENV_TZ ERASECHAR FAILLOG_ENAB +FTMP_FILE HUSHLOGIN_FILE KILLCHAR LASTLOG_ENAB LOG_UNKFAIL_ENAB +MAIL_CHECK_ENAB MAIL_DIR MOTD_FILE NOLOGINS_FILE PORTTIME_CHECKS_ENAB +QUOTAS_ENAB TTYPERM TTYTYPE_FILE ULIMIT UMASK +.IP newusers 12 +PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE UMASK +.IP passwd 12 +OBSCURE_CHECKS_ENAB PASS_MIN_LEN +.IP pwconv 12 +PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE +.IP su 12 +ENV_HZ ENV_SUPATH ENV_TZ HUSHLOGIN_FILE MAIL_CHECK_ENAB MAIL_DIR +MOTD_FILE NOLOGIN_STR QUOTAS_ENAB SULOG_FILE SYSLOG_SU_ENAB +.IP sulogin 12 +ENV_HZ ENV_SUPATH ENV_TZ MAIL_DIR QUOTAS_ENAB TTYPERM +.ad +.SH B��DY +Niekt�re z obs�ugiwanych parametr�w konfiguracyjnych pozosta�y +nieopisane w niniejszym podr�czniku. +.SH ZOBACZ TAK�E +.BR login (1), +.BR passwd (5), +.BR faillog (5), +.BR porttime (5), +.BR faillog (8) +.SH AUTORZY +Julianne Frances Haugh (jfh@austin.ibm.com) +.br +Chip Rosenthal (chip@unicom.com) diff --git a/old/pwunconv.8 b/man/pl/logoutd.8 similarity index 67% rename from old/pwunconv.8 rename to man/pl/logoutd.8 index 7f6520db..d9f8f28a 100644 --- a/old/pwunconv.8 +++ b/man/pl/logoutd.8 @@ -1,4 +1,5 @@ -.\" Copyright 1989 - 1993 Julianne Frances Haugh +.\" {PTM/WK/1999-09-17} +.\" Copyright 1991, Julianne Frances Haugh .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,27 +26,25 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwunconv.8,v 1.1 1997/12/14 20:07:22 marekm Exp $ -.\" -.TH PWUNCONV 8 -.SH NAME -pwunconv \- restore old password file from shadow password file -.SH SYNOPSIS -.B pwunconv -.SH DESCRIPTION -\fBPwunconv\fR copies the password file information from the shadow -password file \fI/etc/shadow\fR, to the password file \fI/etc/passwd\fR. -The \fI/etc/shadow\fR file is then removed. -Password aging information is translated where possible. -There is some loss of resolution in the password aging information. -.SH FILES -/etc/passwd +.TH LOGOUTD 8 +.SH NAZWA +logoutd \- wymuszenie ogranicze� czasu logowania +.SH SK�ADNIA +.B logoutd +.SH OPIS +.B logoutd +wymusza ograniczenia port�w i czas�w logowania podane w +.IR /etc/porttime . +.B logoutd +powinno by� uruchamiane z \fI/etc/rc\fR. +Okresowo przegl�dany jest plik \fI/etc/utmp\fR. Sprawdzana jest ka�da nazwa +u�ytkownika, by m�c stwierdzi� czy posiada on zezwolenie na prac� w bie��cym +czasie na danym porcie. +Ka�da sesja pracy (logowania) naruszaj�ca ograniczenia zawarte +w \fI/etc/porttime\fR jest ko�czona. +.SH PLIKI +.IR /etc/porttime " - zezwolenia dla logowania na portach" .br -/etc/shadow -.SH SEE ALSO -.BR passwd (1), -.BR passwd (5), -.BR shadow (5), -.BR pwconv (8) -.SH AUTHOR -Julianne Frances Haugh (jfh@tab.com) +.IR /etc/utmp " - bie��ce sesje pracy" +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/mkpasswd.8 b/man/pl/mkpasswd.8 new file mode 100644 index 00000000..815ea6ac --- /dev/null +++ b/man/pl/mkpasswd.8 @@ -0,0 +1,80 @@ +.\" {PTM/WK/1999-09-16} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: mkpasswd.8,v 1.1 1999/09/16 07:11:24 wojtek2 Exp $ +.\" +.TH MKPASSWD 1 +.SH NAZWA +mkpasswd \- aktualizuj pliki baz passwd i group +.SH SK�ADNIA +\fBmkpasswd\fR [\fB-fvgps\fR] \fIplik\fR +.SH OPIS +.B mkpasswd +czyta plik w formacie okre�lonym przez flagi i konwertuje go postaci +odpowiedniego pliku bazy danych. +Wymienione pliki baz danych u�ywane s� do poprawienia wydajno�ci dost�pu +w systemach o du�ej liczbie u�ytkownik�w. +Pliki wynikowe otrzymaj� nazwy \fIplik\fR.dir i \fIplik\fR.pag. +.PP +Opcja \fB-f\fR powoduje, �e \fBmkpasswd\fR ignoruje istnienie plik�w +wynikowych i nadpisuje je. +Normalnie \fBmkpasswd\fR skar�y si� na istnienie plik�w wynikowych +i ko�czy prac�. +.PP +Opcja \fB-v\fR powoduje wy�wietlanie informacji o ka�dym konwertowanym +rekordzie oraz komunikatu ko�cowego. +.PP +Opcja \fB-g\fR traktuje plik �r�d�owy tak, jak gdyby by� on w formacie +pliku \fI/etc/group\fR. +Przy po��czeniu z opcj� \fB-s\fR u�ywany jest format pliku \fI/etc/gshadow\fR. +.PP +Opcja \fB-p\fR traktuje plik �r�d�owy tak, jak gdyby by� on w formacie +pliku \fI/etc/passwd\fR. +Jest to opcja domy�lna. +Przy po��czeniu z opcj� \fB-s\fR u�ywany jest format pliku \fI/etc/shadow\fR. +.SH PRZESTROGI +U�ycie wi�cej ni� jednego pliku bazy ogranicza si� do system�w posiadaj�cych +bibliotek� baz danych NDBM. Mo�e zatem nie by� dost�pne w ka�dym systemie. +.SH UWAGA +Poniewa� wi�kszo�� polece� jest w stanie aktualizowa� pliki bazy danych +podczas dokonywania zmian, \fBmkpasswd\fR potrzebne jest jedynie +do ponownego utworzenia usuni�tego lub zepsutego pliku bazy. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - chroniona informacja o u�ytkownikach" +.br +.IR /etc/group " - informacja o grupach" +.br +.IR /etc/gshadow " - chroniona informacja o grupach" +.SH ZOBACZ TAK�E +.BR passwd (5), +.BR group (5), +.BR shadow (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/newgrp.1 b/man/pl/newgrp.1 new file mode 100644 index 00000000..eaf3b18e --- /dev/null +++ b/man/pl/newgrp.1 @@ -0,0 +1,87 @@ +.\" {PTM/WK/1999-09-15} +.\" Copyright 1991, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: newgrp.1,v 1.2 1999/09/25 20:07:46 wojtek2 Exp $ +.\" +.TH NEWGRP 1 +.SH NAZWA +newgrp \- zmie� identyfikator grupy +.br +sg \- wykonaj polecenie przy innym ID grupy +.SH SK�ADNIA +.BR newgrp " [" - ] +.RI [ grupa ] +.br +.BR sg " [" - ] +.RI [ grupa +.RB [ -c +.IR polecenie ]] +.SH OPIS +.B newgrp +s�u�y do zmiany bie��cego identyfikatora grupy (GID) podczas sesji logowania. +Je�eli podano opcjonaln� flag� \fB\-\fR, to �rodowisko u�ytkownika zostanie +ponownie zainicjowane, tak jak w�wczas, gdy u�ytkownik si� loguje. Je�eli nie +u�yto flagi \fB\-\fR, to bie��ce �rodowisko, ��cznie z bie��cym katalogiem +roboczym, pozostaje bez zmian. +.PP +.B newgrp +zmienia bie��cy faktyczny identyfikator grupy na identyfikator danej grupy +lub, je�li nie podano nazwy grupy, na identyfikator grupy domy�lnej, podanej +w \fI/etc/passwd\fR. +Je�eli grupa posiada has�o, za� u�ytkownik nie ma has�a b�d� nie jest jej +cz�onkiem, to zostanie poproszony o podanie has�a. +Je�eli has�o grupy jest puste za� u�ytkownik nie jest jej cz�onkiem, to +efektem b�dzie odmowa dost�pu. +.PP +Polecenie +.B sg +dzia�a podobnie do \fBnewgrp\fR, lecz nie zast�puje pow�oki u�ytkownika, +wi�c po zako�czeniu \fBsg\fR powracasz do swego poprzedniego identyfikatora +grupy. +.B sg +przyjmuje tak�e pojedyncze polecenie. Podane polecenie zostanie wykonane +w pow�oce Bourne'a i musi by� umieszczone w cudzys�owach. +.\" enclosed in quotes. +.SH PRZESTROGI +Niniejsza wersja \fBnewgrp\fR posiada wiele opcji kompilacji, +z kt�rych tylko cz�� mo�e by� u�yteczna w konkretnej instalacji. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/group " - informacja o grupach" +.SH ZOBACZ TAK�E +.BR login (1), +.BR id (1), +.BR su (1) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/newusers.8 b/man/pl/newusers.8 new file mode 100644 index 00000000..077da942 --- /dev/null +++ b/man/pl/newusers.8 @@ -0,0 +1,69 @@ +.\" {PTM/WK/1999-09-15} +.\" Copyright 1991 - 1994, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: newusers.8,v 1.3 1999/09/25 20:07:47 wojtek2 Exp $ +.\" +.TH NEWUSERS 8 +.SH NAZWA +newusers - wsadowa aktualizacja i tworzenie nowych u�ytkownik�w +.SH SK�ADNIA +.B newusers +.RI [ nowi_u�ytkownicy ] +.SH OPIS +\fBnewusers\fR odczytuje plik zawieraj�cy pary: nazwa u�ytkownika i podane +jawnym tekstem has�o. Odczytan� informacj� wykorzystuje do aktualizacji grupy +istniej�cych u�ytkownik�w lub utworzenia nowych. +Ka�dy wiersz pliku posiada taki sam format jak standardowy plik hase� (patrz +\fBpasswd\fR(5)), z nast�puj�cymi wyj�tkami: +.IP "\fIpw_passwd\fR" 10 +To pole zostanie zakodowane i u�yte jako nowa warto�� zakodowanego has�a. +.IP "\fIpw_age\fR" +Dla chronionych hase� (shadow) pole zostanie zignorowane je�li u�ytkownik ju� +istnieje. +.IP "\fIpw_gid\fR" +Pole to mo�e zawiera� nazw� istniej�cej grupy. Dany u�ytkownik zostanie +w�wczas dodany do jej cz�onk�w. Je�eli podano numeryczny identyfikator +nieistniej�cej grupy, to zostanie za�o�ona nowa grupa o tym identyfikatorze. +.IP "\fIpw_dir\fR" +Zostanie wykonane sprawdzenie czy istnieje katalog o tej nazwie. Je�eli nie, +to b�dzie on utworzony. W�a�cicielem zostanie ustanowiony tworzony +(lub aktualizowany) u�ytkownik. Grupa katalogu zostanie ustawiona na grup� +u�ytkownika. +.PP +Polecenie to przeznaczone jest do u�ytku w du�ych systemach, gdzie aktualizuje +si� wiele kont naraz. +.SH PRZESTROGI +.\" Po u�yciu \fBnewusers\fR musi zosta� wykonane polecenie \fImkpasswd\fR, +.\" aktualizuj�ce pliki DBM hase� (DBM password files). +Plik �r�d�owy, zawieraj�cy niezakodowane has�a, musi by� chroniony. +.SH ZOBACZ TAK�E +.\" mkpasswd(8), passwd(1), useradd(1) +.BR passwd (1), +.BR useradd (8) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/passwd.1 b/man/pl/passwd.1 new file mode 100644 index 00000000..6e69c963 --- /dev/null +++ b/man/pl/passwd.1 @@ -0,0 +1,201 @@ +.\" {PTM/WK/1999-09-20} +.\" Copyright 1989 - 1994, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH PASSWD 1 +.SH NAZWA +passwd \- zmie� has�o u�ytkownika +.SH SK�ADNIA +.B passwd +.RB [ -f | -s ] +.RI [ nazwa ] +.br +.B passwd +.RB [ -g ] +.RB [ -r | R ] +.I grupa +.br +.B passwd +.RB [ -x +.IR max ] +.RB [ -n +.IR min ] +.RB [ -w +.IR ostrze� ] +.RB [ -i +.IR nieakt ] +.I nazwa +.br +.B passwd +.RB { -l | -u | -d | -S } +.I nazwa +.SH OPIS +\fBpasswd\fR zmienia has�a kont u�ytkownik�w i grup. +Zwyk�y u�ytkownik mo�e zmieni� wy��cznie has�o w�asnego konta, superu�ytkownik +mo�e zmienia� has�a dowolnych kont. +Administrator grupy mo�e zmieni� has�o tej grupy. +\fBpasswd\fR zmienia tak�e informacje o koncie, takie jak pe�na nazwa +u�ytkownika, jego pow�oka zg�oszeniowa (logowania) czy daty i interwa�y dotycz�ce +wa�no�ci has�a. +.SS Zmiany has�a +Na pocz�tku u�ytkownik pytany jest o stare, dotychczasowe has�o, je�li takie +istnieje. Has�o to jest kodowane i por�wnywane z przechowywanym has�em. +U�ytkownik ma tylko jedn� pr�b� na wprowadzenie poprawnego has�a. +Superu�ytkownikowi zezwala si� na pomini�cie tego kroku, zatem mog� by� +zmienione has�a, kt�rych zapomniano. +.PP +Po wprowadzeniu has�a, sprawdzana jest informacja o jego wieku, by stwierdzi� +czy u�ytkownikowi wolno w danym czasie zmieni� has�o. +Je�eli nie, to \fBpasswd\fR odmawia zmiany has�a i ko�czy prac�. +.PP +Nast�pnie u�ytkownik proszony jest o nowe, zast�puj�ce dotychczasowe, has�o +Has�o podlega sprawdzeniu jego zawi�o�ci. Jako og�ln� wskaz�wk� mo�na poda�, +�e has�a powinny sk�ada� si� z 6 do 8 znak�w, zawieraj�c po jednym lub wi�cej +znak�w z ka�dej z poni�szych kategorii: +.IP "" .5i +ma�e litery alfabetu +.IP "" .5i +du�e litery alfabetu +.IP "" .5i +cyfry od 0 do 9 +.IP "" .5i +znaki interpunkcyjne +.PP +Nale�y uwa�a�, by nie u�y� domy�lnych systemowych znak�w akcji erase lub kill. +\fBpasswd\fR odrzuci ka�de niedostatecznie skomplikowane has�o. +.PP +Je�li has�o zostanie przyj�te, to \fBpasswd\fR prosi o jego powt�rzenie +i por�wnuje drugi wpis z pierwszym. +Oba wpisy musz� by� takie same by has�o zosta�o zmienione. +.SS Has�a grup +Je�eli pos�u�ono si� opcj� \fB-g\fR, to zmieniane jest has�o podanej grupy. +U�ytkownik powinien by� albo superu�ytkownikiem albo administratorem tej grupy. +Nie wyst�puje pytanie o bie��ce has�o grupy. +Do usuwania bie��cego has�a danej grupy s�u�y opcja \fB-g\fR w po��czeniu +z \fB-r\fR. Pozwala to na dost�p do grupy tylko jej cz�onkom. +Opcja \fB-R\fR w po��czeniu z \fR-g\fR ogranicza dost�p do grupy wszystkim +u�ytkownikom. +.SS Informacja o wa�no�ci konta +Superu�ytkownik mo�e zmienia� informacj� o wieku konta pos�uguj�c si� opcjami +\fB-x\fR, \fB-n\fR, \fB-w\fR oraz \fB-i\fR. +Opcja \fB-x\fR s�u�y do ustawiania maksymalnej liczby dni, przez jakie has�o +pozostaje wa�ne. +Po up�ywie \fImax\fR dni, has�o musi by� zmienione. +Opcja \fB-n\fR ustawia minimaln� liczb� dni, jakie musz� up�yn�� zanim has�o +b�dzie mog�o by� zmienione. +U�ytkownik nie otrzyma zezwolenia na zmian� has�a przed up�ywem \fImin\fR dni. +Opcja \fB-w\fR s�u�y do ustawienia liczby dni przed up�ywem terminu wa�no�ci +has�a, przez kt�re u�ytkownik b�dzie otrzymywa� ostrze�enie m�wi�ce mu, ile dni +pozosta�o do tej daty. Ostrze�enia zaczn� pojawia� si� \fIostrze�\fR dni przed +up�ywem wa�no�ci has�a. +Opcja \fB-i\fR (nieaktywno��) s�u�y do wy��czania konta po up�ywie zadanej +liczby dni po wyga�ni�ciu has�a. +Po up�ywie \fInieakt\fR dni od przeterminowania has�a u�ytkownik nie mo�e ju� +korzysta� z konta. +.SS Utrzymywanie i konserwacja konta +Konta u�ytkownik�w mog� by� blokowane i odblokowywane przy pomocy flag \fB-l\fR +i \fB-u\fR. +Opcja \fB-l\fR wy��cza konto zmieniaj�c jego has�o na warto�� nieodpowiadaj�c� +�adnemu mo�liwemu zakodowanemu has�u. +Opcja \fB-u\fR ponownie udost�pnia konto przywracaj�c uprzedni� warto�� has�a. +.PP +Stan konta mo�na uzyska� przy pomocy opcji \fB-S\fR. +Informacja o stanie sk�ada si� z 6 cz�ci. +Pierwsza wskazuje, czy konto u�ytkownika jest zablokowane (L) (locked), +nie posiada has�a (NP) (no password) lub ma funkcjonalne has�o (P) (password). +Druga cz�� podaje dat� ostatniej zmiany has�a. +nast�pne cztery to minimalny wiek, maksymalny wiek, okres ostrzegania i okres +nieaktywno�ci has�a. +.SS Podpowiedzi dotycz�ce hase� u�ytkownika +Bezpiecze�stwo has�a zale�y od si�y algorytmu koduj�cego oraz rozmiaru +klucza. +Metoda kodowania u�ywana w Systemie \fB\s-2UNIX\s+2\fR oparta jest o algorytm +NBS DES i jest bardzo bezpieczna. +Rozmiar klucza zale�y od losowo�ci wybranego has�a. +.PP +Naruszenia bezpiecze�stwa hase� wynikaj� zwykle z beztroski przy wyborze lub +przechowywaniu has�a. +Z tego powodu powiniene� wybra� has�o nie wyst�puj�ce w s�owniku. Has�o nie +powinno te� by� poprawn� nazw�, imieniem, nazwiskiem, numerem prawa jazdy, +dat� urodzenia czy elementem adresu. +Wszystkie z powy�szych mog� by� u�yte do odgadni�cia has�a i naruszenia +bezpiecze�stwa systemu. +.PP +Has�o musi by� �atwe do zapami�tania, tak by nie by� zmuszonym do jego +zapisywania na kartce. Mo�na to osi�gn�� sklejaj�c ze sob� dwa kr�tkie s�owa, +ze wstawionym pomi�dzy nie znakiem specjalnym lub cyfr�. +Na przyk�ad, Pass%word, Lew7konia. +.PP +Inna metoda konstrukcji has�a polega na wyborze �atwego do zapami�tania zdania +(np. z literatury) i wyborze pierwszej b�d� ostatniej litery ka�dego wyrazu. +Przyk�adem tego jest +.IP "" .5i +Ask not for whom the bell tolls. +.PP +co daje +.IP "" .5i +An4wtbt, +.PP +albo te� +.IP "" .5i +A czy znasz Ty, bracie m�ody +.PP +co daje +.IP "" .5i +A3zTbm. +.PP +W zasadzie mo�esz by� pewien, �e niewielu cracker�w b�dzie mie� takie has�o +w swoim s�owniku. Powiniene� jednak wybra� w�asn� metod� konstrukcji hase� +a nie polega� wy��cznie na opisanych tutaj. +.SS Uwagi o has�ach grup +Has�a grup s� nieod��cznym problemem bezpiecze�stwa, gdy� do ich znajomo�ci +uprawniona jest wi�cej ni� jedna osoba. +Grupy s� jednak u�ytecznym narz�dziem pozwalaj�cym na wsp�prac� mi�dzy +r�nymi u�ytkownikami. +.SH PRZESTROGI +Mog� nie by� obs�ugiwane wszystkie opcje. +Sprawdzanie z�o�ono�ci has�a mo�e r�ni� si� w r�nych instalacjach. Zach�ca +si� u�ytkownika do wyboru tak skomplikowanego has�a, z jakim b�dzie mu +wygodnie. +U�ytkownicy mog� nie m�c zmieni� has�a w systemie przy w��czonym NIS, je�li +nie s� zalogowani do serwera NIS. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowane has�a u�ytkownik�w" +.SH ZOBACZ TAK�E +.BR passwd (3), +.BR shadow (3), +.BR group (5), +.BR passwd (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/passwd.5 b/man/pl/passwd.5 new file mode 100644 index 00000000..e4bcad8e --- /dev/null +++ b/man/pl/passwd.5 @@ -0,0 +1,88 @@ +.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de), Fri Apr 2 11:32:09 MET DST 1993 +.\" +.\" This is free documentation; you can redistribute it and/or +.\" modify it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2 of +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with this manual; if not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, +.\" USA. +.\" +.\" Modified Sun Jul 25 10:46:28 1993 by Rik Faith (faith@cs.unc.edu) +.\" Modified Sun Aug 21 18:12:27 1994 by Rik Faith (faith@cs.unc.edu) +.\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl) +.\" +.\" Polish translation nov.1996 piotr.pogorzelski@ippt.gov.pl +.\" +.TH PASSWD 5 "24 Czerwiec 1993" "Linux" "Podr�cznik programisty linuxowego" +.SH NAZWA +passwd \- plik passwd definiuj�cy u�ytkownik�w systemu +.SH OPIS +Plik +.B passwd +jest plikiem tekstowym ASCII, kt�ry zawiera list� u�ytkownik�w systemu +oraz has�a jakich musz� u�ywa� aby otrzyma� dost�p do systemu. +Ka�dy powinien m�c odczyta� informacje z pliku passwd (poniewa� has�a +w tym pliku s� zakodowane jest to poprawne) lecz prawo do modyfikacji +pliku powinien mie� tylko administrator. +Dodaj�c nowego u�ytkownika nale�y pole przeznaczone na has�o pozostawi� puste +i u�y� programu \fBpasswd\fP(1). Gwiazdka lub inny pojedynczy znak w polu +has�a oznacza, ze u�ytkownik nie mo�e dosta� si� do systemu przez \fBlogin\fP(1). +Je�li g��wny system plik�w jest na ram dysku (/dev/ram) nale�y +plik passwd skopiowa� na dyskietk� przechowuj�c� g��wny system plik�w +przed zamkni�ciem systemu. Trzeba r�wnie� sprawdzi� prawa dost�pu do. +Je�li trzeba utworzy� grup� u�ytkownik�w, ich identyfikatory grupy +GID musz� by� r�wne oraz musi istnie� odpowiednia pozycja w pliku +\fI/etc/group\fP, lub grupa nie b�dzie istnia�a. +.PP +Ka�da pozycja zajmuje jeden wiersz w formacie: +.sp +login_name:has�o:UID:GID:imie_nazwisko:katalog:pow�oka +.RS +.RE +.sp +Kr�tki opis poszczeg�lnych p�l: +.sp +.RS +.TP 1.0in +.I login_name +nazwa u�ytkownika w systemie (radz� u�ywa� ma�ych liter). +.TP +.I has�o +zakodowane has�o u�ytkownika. +.TP +.I UID +identyfikator u�ytkownika (liczbowo). +.TP +.I GID +identyfikator grupy (liczbowo). +.TP +.I imi�_nazwisko +Opisowa nazwa u�ytkownika, zwykle imi� i nazwisko (wykorzystywane +przez programy pocztowe). +.TP +.I katalog +katalog macierzysty ($HOME) u�ytkownika. +.TP +.I pow�oka +program jaki uruchomi� po wej�ciu u�ytkownika do systemu. +(je�li pusty u�yj /bin/sh, je�li istnieje /etc/shells i +dana pow�oka nie jest tam wymieniona, u�ytkownik nie b�dzie m�g� +dosta� si� do systemu wykorzystuj�c protok� ftp). +.RE +.SH PLIKI +.I /etc/passwd +.SH "ZOBACZ TAK�E" +.BR passwd "(1), " login "(1), " group (5) diff --git a/man/pl/porttime.5 b/man/pl/porttime.5 new file mode 100644 index 00000000..83f0af6a --- /dev/null +++ b/man/pl/porttime.5 @@ -0,0 +1,81 @@ +.\" {PTM/WK/1999-09-17} +.\" Copyright 1989 - 1990, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH PORTTIME 5 +.SH NAZWA +porttime \- plik czas�w dost�pu do port�w +.SH OPIS +.I porttime +zawiera list� urz�dze� tty, nazw u�ytkownik�w i dozwolonych czas�w logowania. +.PP +Ka�da pozycja sk�ada si� z trzech, rozdzielonych dwukropkiem, p�l. +Pierwsze pole zawiera list� oddzielonych przecinkami urz�dze� tty lub +gwiazdk�, wskazuj�c�, �e pozycja ta pasuje do wszystkich urz�dze� tty. +Drugie pole zawiera list� oddzielonych przecinkami nazw u�ytkownik�w lub +gwiazdk�, wskazuj�c�, �e pozycja dotyczy wszystkich u�ytkownik�w. +Trzecie pole jest list� oddzielonych przecinkami dozwolonych czas�w dost�pu. +.PP +Ka�da pozycja czasu dost�pu sk�ada si� z zera lub wi�cej dni tygodnia, +skr�conych do \fBSu\fR, \fBMo\fR, \fBTu\fR, \fBWe\fR, \fBTh\fR, \fBFr\fR +i \fBSa\fR, po kt�rych nast�puje para rozdzielonych my�lnikiem czas�w. +Do okre�lenia dni roboczych (od poniedzia�ku do pi�tku) mo�e by� u�yty +skr�t \fBWk\fR. Skr�t \fBAl\fR oznacza ka�dy dzie�. Je�eli nie podano dni +tygodnia przyjmowane jest \fBAl\fR. +.SH PRZYK�ADY +Poni�szy wpis zezwala u�ytkownikowi \fBjfh\fR na dost�p do ka�dego portu +w dni robocze od godziny 9-tej do 17-tej. +.br +.sp 1 + *:jfh:Wk0900-1700 +.br +.sp 1 +Poni�sze pozycje pozwalaj� na dost�p do konsoli (/dev/console) wy��cznie +u�ytkownikom \fBroot\fR i \fBoper\fR - w dowolnym czasie. +Przyk�ad ten pokazuje, �e plik \fI/etc/porttime\fR stanowi uporz�dkowan� +list� czas�w dost�pu. Ka�dy inny u�ytkownik b�dzie pasowa� do drugiej pozycji +listy, nie zezwalaj�cej na dost�p w �adnym czasie. +.br +.sp 1 + console:root,oper:Al0000-2400 +.br + console:*: +.br +.sp 1 +Poni�szy wpis zezwala na dost�p do dowolnego portu u�ytkownikowi \fBgames\fR +poza godzinami pracy. +.br +.sp 1 + *:games:Wk1700-0900,SaSu0000-2400 +.br +.sp 1 +.SH PLIKI +.IR /etc/porttime " - plik zawieraj�cy czasy dost�pu do port�w" +.SH ZOBACZ TAK�E +.BR login (1) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/pw_auth.3 b/man/pl/pw_auth.3 new file mode 100644 index 00000000..ddebc0c1 --- /dev/null +++ b/man/pl/pw_auth.3 @@ -0,0 +1,152 @@ +.\" {PTM/WK/1999-09-15} +.\" Copyright 1992 - 1993, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: pw_auth.3,v 1.1 1999/09/16 07:11:23 wojtek2 Exp $ +.\" +.TH PWAUTH 3 +.SH NAZWA +pwauth \- procedury uwierzytelniania hase� zdefiniowane przez administratora +.SH SK�ADNIA +.B #include <pwauth.h> +.PP +.B int pw_auth (char +.I *command, +.B char +.I *user, +.B int +.I reason, +.B char +.IB *input) ; +.SH OPIS +.B pw_auth +wywo�uje funkcje zdefiniowane przez administratora dla danego u�ytkownika. +.PP +\fIcommand\fR jest nazw� programu uwierzytelniania (autentykacji). +Jest ona otrzymywana z informacji zawartej pliku hase� u�ytkownik�w. +Odpowiedni �a�cuch (z pola has�a) zawiera jedn� lub wi�cej, rozdzielonych +�rednikami, nazw plik�w wykonywalnych. +Programy zostan� wykonane w zadanej kolejno�ci. +Dla ka�dej z przyczyn (reason) podanych ni�ej podane s� argumenty wiersza +polece�. +.PP +\fIuser\fR jest nazw� sprawdzanego u�ytkownika, w postaci podanej w pliku +\fI/etc/passwd\fR. +Pozycje opisuj�ce u�ytkownik�w indeksowane s� nazw� u�ytkownika. +Pozwala to na istnienie powtarzaj�cych si� identyfikator�w (UID). Ka�da +z r�nych nazw u�ytkownika o tym samym identyfikatorze mo�e +posiada� inny program i informacj� autentykuj�c�. +.PP +Ka�da z dopuszczalnych przyczyn autentykacji obs�ugiwana jest w potencjalnie +r�ny spos�b. +Do komunikacji z u�ytkownikiem dost�pne s� standardowe deskryptory plik�w +0, 1 i 2, chyba �e wspomniano inaczej. +Do ustalenia to�samo�ci u�ytkownika wykonuj�cego ��danie uwierzytelnienia +mo�e zosta� u�yty rzeczywisty identyfikator. +Przyczyna (\fIreason\fR) jest jedn� z +.IP \fBPW_SU\fR 1i +Wykonaj uwierzytelnienie dla bie��cego rzeczywistego identyfikatora u�ytkownika +pr�buj�c prze��czy� rzeczywisty ID na podanego u�ytkownika. +Program uwierzytelniaj�cy zostanie wywo�any z opcj� \fB-s\fR poprzedzaj�c� +nazw� u�ytkownika. +.IP \fBPW_LOGIN\fR 1i +Wykonaj uwierzytelnienie dla danego u�ytkownika tworz�c now� sesj� pracy +(loginow�). Program uwierzytelniaj�cy zostanie wywo�any z opcj� \fB-l\fR, +po kt�rej wyst�pi nazwa u�ytkownika. +.IP \fBPW_ADD\fR 1i +Utw�rz nowy wpis dla danego u�ytkownika. +Pozwala to programowi uwierzytelniania na zainicjowanie miejsca dla nowego +u�ytkownika. +Program zostanie wywo�any z opcj� \fB-a\fR, po kt�rej wyst�pi nazwa u�ytkownika. +.IP \fBPW_CHANGE\fR 1i +Zmie� istniej�cy wpis dla danego u�ytkownika. +Pozwala to na programowi uwierzytelniaj�cemu na zmian� informacji autentykuj�cej +dla istniej�cego u�ytkownika. +Program zostanie wywo�any z opcj� \fB-c\fR poprzedzaj�c� nazw� u�ytkownika. +.IP \fBPW_DELETE\fR 1i +Usu� informacj� autentykuj�c� dla danego u�ytkownika. +Pozwala programowi uwierzytelniania na odzyskanie miejsca po u�ytkowniku, kt�ry +nie b�dzie ju� identyfikowany przy u�yciu tego programu. +Program uwierzytelniania zostanie wywo�any z opcj� \fB-d\fR, +po kt�rej wyst�pi nazwa u�ytkownika. +.IP \fBPW_TELNET\fR 1i +Wykonaj uwierzytelnianie u�ytkownika pod��czaj�cego si� do systemu przy pomocy +polecenia \fBtelnet\fR. +Program zostanie wywo�any z opcj� \fB-t\fR, po kt�rej wyst�pi nazwa u�ytkownika. +.IP \fBPW_RLOGIN\fR 1i +Wykonaj uwierzytelnienie u�ytkownika pod��czaj�cego si� do systemu przy pomocy +polecenia \fBrlogin\fR. +Program zostanie wywo�any z opcj� \fB-r\fR, po kt�rej wyst�pi nazwa u�ytkownika. +.IP \fBPW_FTP\fR 1i +Wykonaj uwierzytelnienie u�ytkownika pod��czaj�cego si� do systemu przy pomocy +polecenia \fBftp\fR. +Program uwierzytelniania zostanie wywo�any z opcj� \fB-f\fR, +po kt�rej wyst�pi nazwa u�ytkownika. +Do komunikacji z u�ytkownikiem NIE s� dost�pne standardowe deskryptory plik�w. +Deskryptor standardowego wej�cia zostanie pod��czony do procesu macierzystego, +za� pozosta�e dwa deskryptory plik�w dostan� pod��czone do \fI/dev/null\fR. +Funkcja \fBpw_auth\fR b�dzie potokowa� pojedynczy wiersz danych do programu +uwierzytelniania pos�uguj�c si� deskryptorem 0. +.IP \fBPW_REXEC\fR 1i +Wykonaj uwierzytelnienie u�ytkownika pod��czaj�cego si� do systemu przy pomocy +polecenia \fIrexec\fR. +Program zostanie wywo�any z opcj� \fB-x\fR, po kt�rej wyst�pi nazwa u�ytkownika. +Do komunikacji ze zdalnym u�ytkownikiem NIE s� dost�pne standardowe +deskryptory plik�w. +Deskryptor standardowego wej�cia zostanie pod��czony do procesu macierzystego, +za� pozosta�e dwa deskryptory plik�w dostan� pod��czone do \fI/dev/null\fR. +Funkcja \fBpw_auth\fR b�dzie potokowa� pojedynczy wiersz danych do programu +uwierzytelniania pos�uguj�c si� deskryptorem 0. +.PP +Ostatni argument stanowi dane autentykacji, u�ywane przez +.B PW_FTP +oraz +.B PW_REXEC +Jest on traktowany jak pojedynczy wiersz tekstu potokowany do programu +uwierzytelniaj�cego. +Dla +.B PW_CHANGE +warto�� \fIinput\fR jest warto�ci� poprzedniej nazwy u�ytkownika, +je�li zmieniana jest nazwa. +.SH PRZESTROGI +Funkcja ta nie tworzy faktycznej sesji. +Wskazuje jedynie, czy u�ytkownik powinien otrzyma� zezwolenie na jej +utworzenie. +.PP +Obecnie opcje sieciowe nie s� jeszcze przetestowane. +.SH DIAGNOSTYKA +Funkcja \fBpw_auth\fR zwraca 0 je�li program uwierzytelniania zako�czy� +dzia�anie z zerowym kodem powrotu, w przeciwnym wypadku warto�� niezerow�. +.SH ZOBACZ TAK�E +.BR login (1), +.BR passwd (1), +.BR su (1), +.BR useradd (8), +.BR userdel (8), +.BR usermod (8) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/pwauth.8 b/man/pl/pwauth.8 new file mode 100644 index 00000000..e87926c5 --- /dev/null +++ b/man/pl/pwauth.8 @@ -0,0 +1,65 @@ +.\" {PTM/WK/1999-09-15} +.\" Copyright 1992, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: pwauth.8,v 1.2 1999/09/25 20:07:47 wojtek2 Exp $ +.\" +.TH PWAUTH 8 +.SH NAZWA +pwauth \- definiowane przez administratora uwierzytelnianie hase� +.SH OPIS +Administrator systemu mo�e zdefiniowa� list� program�w, jakie s� u�ywane +do potwierdzenia to�samo�ci u�ytkownika. +Programy te podawane s� zamiast informacji o zakodowanym ha�le obecnej +w pliku \fI/etc/passwd\fR albo \fI/etc/shadow\fR. +Narz�dzia administruj�ce kontami u�ytkownik�w sprawdzaj� pole zakodowanego +has�a i stwierdzaj� czy u�ytkownik posiada zdefiniowany przez administratora +program uwierzytelniaj�cy (autentykuj�cy). +Funkcja \fBpw_auth\fR zostanie wywo�ana ka�dorazowo, gdy jeden z tych +program�w administracyjnych stwierdzi, �e zmieniany u�ytkownik posiada +zdefiniowane programy uwierzytelniania. +.PP +Pocz�tkowy wpis tworzony jest przez polecenie \fBuseradd\fR. +Zmiany, takie jak zmiana informacji autentykuj�cej lub usuni�cie konta +u�ytkownika, spowoduj� wywo�anie funkcji \fBpw_auth\fR. Pozwala to +na utrzymanie aktualno�ci informacji dla ka�dego konta. +.PP +Programy uwierzytelniaj�ce nie tworz� sesji pracy (loginowych) ani +sesji sieciowych. Kod zako�czenia programu uwierzytelniaj�cego jest +wskazaniem czy akcja b�dzie dozwolona. +Proces wo�aj�cy musi posiada� odpowiednie uprawnienia do samodzielnego +utworzenia sesji pracy lub sesji sieciowej. +.SH ZOBACZ TAK�E +.BR login (1), +.BR passwd (1), +.BR su (1), +.BR useradd (8), +.BR userdel (8), +.BR usermod (8), +.BR pw_auth (3) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/pwck.8 b/man/pl/pwck.8 new file mode 100644 index 00000000..2b71c610 --- /dev/null +++ b/man/pl/pwck.8 @@ -0,0 +1,109 @@ +.\" {PTM/WK/1999-09-14} +.\" Copyright 1992, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: pwck.8,v 1.3 1999/09/25 20:07:47 wojtek2 Exp $ +.\" +.TH PWCK 1 +.SH NAZWA +pwck - weryfikacja sp�jno�ci plik�w hase� +.SH OPIS +\fBpwck\fR [\fB-r\fR] [\fIpasswd\fR \fIshadow\fR] +.SH OPIS +\fBpwck\fR weryfikuje integralno�� informacji autentykacji systemowej. +W plikach \fI/etc/passwd\fR i \fI/etc/shadow\fR sprawdzane s� wszystkie +pozycje, by upewni� si�, �e ka�da z nich posiada w�a�ciwy format +i poprawne dane w ka�dym z p�l. U�ytkownik monitowany jest o usuni�cie +pozycji, kt�re s� sformatowane niepoprawnie lub posiadaj� inne nie daj�ce +si� skorygowa� b��dy. +.P +Kontrolowane jest czy ka�da pozycja posiada +.sp +.in +.5i +- w�a�ciw� liczb� p�l +.br +- unikaln� nazw� u�ytkownika +.br +- poprawny identyfikator u�ytkownika i grupy +.br +- poprawn� grup� g��wn� +.br +- poprawny katalog domowy +.br +- poprawn� pow�ok� zg�oszeniow� (startow�) +.in -.5i +.sp +.P +Kontrola w�a�ciwej liczby p�l i niepowtarzalnej nazwy u�ytkownika jest +decyduj�ca. Je�eli pozycja posiada b��dn� liczb� p�l, to u�ytkownik jest +proszony o usuni�cie ca�ej pozycji (wiersza). +Je�eli u�ytkownik nie potwierdzi decyzji o usuni�ciu, to pomijane s� wszelkie +dalsze sprawdzenia. +Pozycja z powt�rzon� nazw� u�ytkownika powoduje monit o usuni�cie, ale nadal +b�d� wykonywane pozosta�e sprawdzenia. +Wszystkie inne b��dy daj� ostrze�enia a u�ytkownik jest zach�cany +do uruchomienia polecenia \fBusermod\fR, by je poprawi�. +.P +Polecenia dzia�aj�ce na pliku \fI/etc/passwd\fR nie potrafi� zmienia� +uszkodzonych lub powielonych pozycji. W takich okoliczno�ciach powinien by� +u�ywany \fBpwck\fR, by usun�� nieprawid�ow� pozycj�. +.SH OPCJE +Domy�lnie \fBpwck\fR dzia�a na plikach \fI/etc/passwd\fR oraz \fI/etc/shadow\fR. +Przy pomocy parametr�w \fIpasswd\fR i \fIshadow\fR u�ytkownik mo�e wybra� inne +pliki. +Dodatkowo, u�ytkownik mo�e wykona� polecenie w trybie tylko-do-odczytu, poprzez +podanie flagi \fB-r\fR. +Powoduje to, �e na wszystkie pytania dotycz�ce zmian zostanie, bez ingerencji +u�ytkownika, u�yta odpowied� \fBnie\fR. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowana informacja o has�ach" +.br +.IR /etc/group " - informacja o grupach" +.SH ZOBACZ TAK�E +.BR usermod (8), +.BR group (5), +.BR passwd (5), +.BR shadow (5) +.SH DIAGNOSTYKA +Polecenie \fBpwck\fR ko�czy prac� z nast�puj�cymi warto�ciami kod�w +zako�czenia: +.IP 0 5 +Powodzenie +.IP 1 5 +B��d sk�adni +.IP 2 5 +Jedna lub wi�cej z�ych pozycji pliku hase� +.IP 3 5 +Niemo�liwe otwarcie plik�w hase� +.IP 4 5 +Niemo�liwa blokada plik�w hase� +.IP 5 5 +Niemo�liwa aktualizacja plik�w hase� +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/pwconv.8 b/man/pl/pwconv.8 new file mode 100644 index 00000000..0916ca28 --- /dev/null +++ b/man/pl/pwconv.8 @@ -0,0 +1,66 @@ +.\" {PTM/WK/1999-09-14} +.\" $Id: pwconv.8,v 1.1 1999/09/14 18:41:35 wojtek2 Exp $ +.TH PWCONV 8 "26 wrze�nia 1997" +.SH NAZWA +pwconv, pwunconv, grpconv, grpunconv - konwersja dot. chronionych plik�w hase� i grup +.SH SK�ADNIA +.B pwconv +.br +.B pwunconv +.br +.B grpconv +.br +.B grpunconv +.SH OPIS +Wszystkie te cztery programy dzia�aj� na zwyk�ych i dodatkowych (shadow) +plikach hase� i grup: +.IR /etc/passwd ", " /etc/group ", " /etc/shadow " i " /etc/gshadow . + +.B pwconv +.RI "tworzy " shadow " z " passwd " i opcjonalnie istniej�cego " shadow . +.B pwunconv +.RI "tworzy " passwd " z " passwd " i " shadow " a nast�pnie usuwa " shadow . +.B grpconv +.RI "tworzy " gshadow " z " group " i opcjonalnie istniej�cego " gshadow . +.B grpunconv +.RI "tworzy " group " z " group " i " gshadow " a nast�pnie usuwa " gshadow . + +Ka�dy z program�w zdobywa niezb�dne blokady przed konwersj�. + +.BR pwconv " i " grpconv +s� podobne. Po pierwsze, z pliku dodatkowego usuwane s� pozycje, kt�re +nie istniej� w pliku g��wnym. Nast�pnie, w pliku dodatkowym aktualizowane s� +pozycje nie posiadaj�ce 'x' jako has�a w pliku g��wnym. Dodawane s� pozycje +brakuj�ce w stosunku do pliku g��wnego. Na koniec, has�a w pliku g��wnym +zast�powane s� przez 'x'. Programy te mog� s�u�y� zar�wno do pocz�tkowej +konwersji jak i do aktualizacji dodatkowego pliku hase� je�li plik g��wny +zmieniany by� r�cznie. + +Przy dodawaniu nowych wpis�w do +.IR /etc/shadow +.B pwconv +u�yje warto�ci +.BR PASS_MIN_DAYS ", " PASS_MAX_DAYS " i " PASS_WARN_AGE +z pliku +.IR /etc/login.defs . + +.RB "Podobnie, " pwunconv " oraz " grpunconv +s� zbli�one. Has�a w pliku g��wnym aktualizowane s� na podstawie pliku +dodatkowego (shadow). Wpisy istniej�ce w pliku g��wnym, a nie posiadaj�ce +odpowiednik�w w dodatkowym s� pozostawiane bez zmian. Na koniec usuwany +jest plik dodatkowy. + +Cz�� informacji o wa�no�ci hase� jest tracona przez +.BR pwunconv . +Przeprowadza on konwersj� tego, co potrafi. +.SH B��DY +B��dy w plikach hase� czy grup (takie jak nieprawid�owe czy powt�rzone +pozycje) mog� spowodowa� zap�tlenie si� omawianych program�w lub r�nego +rodzaju inne b��dne zachowanie. Przed konwersj� na lub z dodatkowych plik�w +hase� lub grup prosz� uruchomi� \fBpwck\fR i \fBgrpck\fR, by poprawi� tego +rodzaju b��dy. +.SH ZOBACZ TAK�E +.BR login.defs (5), +.BR pwck (8), +.BR grpck (8), +.BR shadowconfig (8) diff --git a/man/pl/shadow.3 b/man/pl/shadow.3 new file mode 100644 index 00000000..5ad19a23 --- /dev/null +++ b/man/pl/shadow.3 @@ -0,0 +1,148 @@ +.\" {PTM/WK/1999-09-16} +.\" Copyright 1989 - 1993, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: shadow.3,v 1.2 1999/09/25 20:07:47 wojtek2 Exp $ +.\" +.TH SHADOW 3 +.SH NAZWA +shadow \- procedury zakodowanego pliku hase� +.SH SK�ADNIA +.B #include <shadow.h> +.PP +.B struct spwd *getspent(); +.PP +.B struct spwd *getspnam(char +.IB *name ); +.PP +.B void setspent(); +.PP +.B void endspent(); +.PP +.B struct spwd *fgetspent(FILE +.IB *fp ); +.PP +.B struct spwd *sgetspent(char +.IB *cp ); +.PP +.B int putspent(struct spwd +.I *p, +.B FILE +.IB *fp ); +.PP +.B int lckpwdf(); +.PP +.B int ulckpwdf(); +.SH OPIS +.I shadow +operuje na zawarto�ci dodatkowego pliku hase� (shadow) \fI/etc/shadow\fR. +Plik \fI#include\fR opisuje struktur� +.sp +struct spwd { +.in +.4i +.br +char *sp_namp; /* nazwa u�ytkownika (login) */ +.br +char *sp_pwdp; /* zakodowane has�o */ +.br +long sp_lstchg; /* ostatnia zmiana has�a */ +.br +int sp_min; /* dni do dozwolonej zmiany */ +.br +int sp_max; /* dni przed wymagan� zmian� */ +.br +int sp_warn; /* dni ostrze�enia o wyga�ni�ciu */ +.br +int sp_inact; /* dni przed wy��czeniem konta */ +.br +int sp_expire; /* data wa�no�ci konta */ +.br +int sp_flag; /* zarezerwowane do przysz�ego u�ytku */ +.br +.in -.5i +} +.PP +Znaczenie poszczeg�lnych p�l: +.sp +sp_namp \- wska�nik do zako�czonej przez nul nazwy u�ytkownika. +.br +sp_pwdp \- wska�nik do zako�czonego nul has�a. +.br +sp_lstchg \- dni od 1 stycznia 1970; data ostatniej zmiany has�a. +.br +sp_min \- dni, przed up�ywem kt�rych has�o nie mo�e by� zmienione. +.br +sp_max \- dni, po kt�rych has�o musi by� zmienione. +.br +sp_warn \- dni przed dat� up�ywu wa�no�ci has�a, od kt�rych +u�ytkownik jest ostrzegany od nadchodz�cym terminie wa�no�ci. +.br +sp_inact \- dni po up�yni�ciu wa�no�ci konta, po kt�rych konto jest +uwa�ane za nieaktywne i wy��czane. +.br +sp_expire \- dni od 1 stycznia 1970, data gdy konto zostanie +wy��czone. +.br +sp_flag \- zarezerwowane do przysz�ego u�ytku. +.SH OPIS +\fBgetspent\fR, \fBgetspname\fR, \fBfgetspent\fR i \fBsgetspent\fR +zwracaj� wska�nik do \fBstruct spwd\fR. +\fBgetspent\fR zwraca nast�pn� pozycj� w pliku, za� \fBfgetspent\fR +nast�pn� pozycj� z podanego strumienia. Zak�ada si�, �e strumie� +ten jest plikiem o poprawnym formacie. +\fBsgetspent\fR zwraca wska�nik do \fBstruct spwd\fR u�ywaj�c jako +wej�cia dostarczonego �a�cucha. +\fBgetspnam\fR wyszukuje od bie��cej pozycji w pliku pozycji pasuj�cej +do \fBname\fR. +.PP +\fBsetspent\fR i \fBendspent\fR mog� zosta� u�yte do odpowiednio, +rozpocz�cia i zako�czenia dost�pu do chronionego pliku hase� (shadow). +.PP +Do zapewnienia wy��cznego dost�pu do pliku \fI/etc/shadow\fR powinny +by� u�ywane procedury \fBlckpwdf\fR i \fBulckpwdf\fR. +\fBlckpwdf\fR przez 15 sekund usi�uje uzyska� blokad� przy pomocy +\fBpw_lock\fR. +Kontynuuje pr�b� uzyskania drugiej blokady przy pomocy \fBspw_lock\fR +przez czas pozosta�y z pocz�tkowych 15 sekund. +Je�eli po up�ywie 15 sekund kt�rakolwiek z tych pr�b zawiedzie, +to \fBlckpwdf\fR zwraca -1. +Je�eli uzyskano obie blokady, to zwracane jest 0. +.SH DIAGNOSTYKA +Je�eli nie ma dalszych pozycji lub podczas przetwarzania pojawi si� b��d, +to procedury zwracaj� NULL. +Procedury zwracaj�ce warto�� typu \fBint\fR zwracaj� 0 w przypadku powodzenia +a -1 dla pora�ki. +.SH PRZESTROGI +Procedury te mog� by� u�ywane wy��cznie przez superu�ytkownika, gdy� dost�p +do dodatkowego, chronionego pliku hase� jest ograniczony. +.SH PLIKI +.IR /etc/shadow " - zakodowane has�a u�ytkownik�w" +.SH ZOBACZ TAK�E +.BR getpwent (3), +.BR shadow (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pl/shadow.5 b/man/pl/shadow.5 new file mode 100644 index 00000000..8997bead --- /dev/null +++ b/man/pl/shadow.5 @@ -0,0 +1,92 @@ +.\" 1999 PTM Przemek Borys +.\" Copyright 1989 - 1990, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: shadow.5,v 1.3 1999/09/20 20:56:42 wojtek2 Exp $ +.\" +.TH SHADOW 5 +.SH NAZWA +shadow \- zakodowany plik z has�ami +.SH OPIS +.I shadow +zawiera zakodowane dane o has�ach dla kont u�ytkownik�w oraz opcjonalne +informacje o wieku (aging) has�a. +Zawarte s� w nim +.IP "" .5i +Nazwa u�ytkownika (nazwa logowania) +.IP "" .5i +Zakodowane has�o +.IP "" .5i +Dni, licz�c od 1 stycznia 1970, kiedy has�o by�o ostatni raz zmienione +.IP "" .5i +Dni przed kt�rych up�yni�ciem niemo�liwa jest zmiany has�a +.IP "" .5i +Dni, po kt�rych up�yni�ciu konieczna jest zmiana has�a +.IP "" .5i +Ilo�� dni, jaka musi dzieli� has�o od przedawnienia, by u�ytkownik by� +ostrzegany +.IP "" .5i +Ilo�� dni po przedawnieniu has�a, po kt�rych konto jest wy��czane +.IP "" .5i +Dni od 1 stycznia 1970, okre�laj�ce dat�, kiedy konto jest wy��czane +.IP "" .5i +Pole zarezerwowane +.PP +Pole has�a musi by� wype�nione. Zakodowane has�o sk�ada si� z 13-24 znak�w z +64 znakowego alfabetu a-z, A-Z, 0-9, \. i /. +Dla szczeg��w interpretacji tego napisu, odsy�amy do \fIcrypt(3)\fR. +.PP +Data ostatniej zmiany has�a jest podawana jako liczba dni od 1 stycznia +1970. Has�a nie mog� by� zmieniane przed up�ywem odpowiedniej ilo�ci dni, a +musz� by� zmieniane po up�ywie maksymalnej ilo�ci dni. +Je�li minimalna liczba dni jest wi�ksza od maksymalnej, has�o nie mo�e by� +przez u�ytkownika zmienione. +.PP +Je�li has�o pozostaje niezmienione po up�ywie jego wa�no�ci, to konto jest +uwa�ane za nieaktywne i zostanie wy��czone po ustalonej liczbie dni +nieaktywno�ci. Konto zostanie r�wnie� wy��czone w zadanym dniu wa�no�ci +konta bez wzgl�du na informacj� o terminie wa�no�ci has�a. +.PP +Informacja w pliku \fIshadow\fR zast�puje wszelkie has�a lub dane o ich +wieku znajduj�ce si� w \fI/etc/passwd\fR. +.PP +Je�li ma by� utrzymywane bezpiecze�stwo hase�, to plik ten nie mo�e by� +odczytywalny dla zwyk�ych u�ytkownik�w. +.SH Pliki +.IR /etc/passwd " - informacje o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowane has�a u�ytkownik�w" +.SH ZOBACZ TAK�E +chage(1), +login(1), +passwd(1), +su(1), +sulogin(1M), +shadow(3), +passwd(5), +pwconv(8), +pwunconv(8) diff --git a/man/pl/shadowconfig.8 b/man/pl/shadowconfig.8 new file mode 100644 index 00000000..2d37c1f2 --- /dev/null +++ b/man/pl/shadowconfig.8 @@ -0,0 +1,27 @@ +.\" {PTM/WK/1999-09-14} +.\" $Id: shadowconfig.8,v 1.1 1999/09/14 18:41:35 wojtek2 Exp $ +.TH SHADOWCONFIG 8 "19 kwietnia 1997" "Debian GNU/Linux" +.SH NAZWA +shadowconfig - prze��cza ochron� hase� i grup przez pliki shadow +.SH SK�ADNIA +.B "shadowconfig" +.IR on " | " off +.SH OPIS +.PP +.B shadowconfig on +w��cza ochron� hase� i grup przez dodatkowe, przes�aniane pliki (shadow); +.B shadowconfig off +wy��cza dodatkowe pliki hase� i grup. +.B shadowconfig +wy�wietla komunikat o b��dzie i ko�czy prac� z niezerowym kodem je�li +znajdzie co� nieprawid�owego. W takim wypadku powiniene� poprawi� b��d +.\" if it finds anything awry. +i uruchomi� program ponownie. + +W��czenie ochrony hase�, gdy jest ona ju� w��czona lub jej wy��czenie, +gdy jest wy��czona jest nieszkodliwe. + +Przeczytaj +.IR /usr/doc/passwd/README.debian.gz , +gdzie znajdziesz kr�tkie wprowadzenie do ochrony hase� z u�yciem dodatkowych +plik�w hase� przes�anianych (shadow passwords) i zwi�zanych temat�w. diff --git a/man/pl/su.1 b/man/pl/su.1 new file mode 100644 index 00000000..d561e67c --- /dev/null +++ b/man/pl/su.1 @@ -0,0 +1,87 @@ +.\" {PTM/WK/1999-09-25} +.\" Copyright 1989 - 1990, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.TH SU 1 +.SH NAZWA +su \- zmie� ID u�ytkownika lub sta� si� superu�ytkownikiem +.SH SK�ADNIA +.BR su " [" - ] +.RI [ nazwa_u�ytkownika " [" argumenty ]] +.SH OPIS +.B su +s�u�y do stawania si� innym u�ytkownikiem w trakcie w�asnej sesji pracy. +Wywo�anie bez parametru - nazwy u�ytkownika, domy�lnie oznacza dla \fBsu\fR +pr�b� stania si� superu�ytkownikiem. +Opcjonalnym argumentem \fB\-\fR mo�na pos�u�y� si� do zasymulowania +rzeczywistego rozpoczynania sesji pracy. Pozwala to na utworzenie �rodowiska +u�ytkownika. podobnego do tego, jakie wyst�puje przy bezpo�rednim zg�oszeniu +u�ytkownika w systemie. +.PP +Po nazwie u�ytkownika mog� wyst�pi� dodatkowe argumenty. Zostan� one +dostarczone pow�oce zg�oszeniowej u�ytkownika. W szczeg�lno�ci, argument +\fB-c\fR spowoduje, �e nast�pny argument zostanie potraktowany jak polecenie +przez wi�kszo�� interpretator�w polece�. +.\" Polecenie zostanie wykonane przez pow�ok� podan� w +.\" \fB$SHELL\fR, albo je�li jej nie zdefiniowano, przez podan� w +.\" \fI/etc/passwd\fR. +.\" XXX - powy�sze nie by�o ca�kiem poprawne. --marekm +Polecenie zostanie wykonane przez pow�ok� wymienion� w \fI/etc/passwd\fR dla +docelowego u�ytkownika. +.PP +U�ytkownik pytany jest o odpowiednie has�o, je�li takowe istnieje. +B��dne has�a powoduj� komunikat o b��dzie. Wszystkie pr�by, udane i nieudane, +s� rejestrowane do cel�w wykrywania nadu�y� systemu. +.PP +Do nowej pow�oki przekazywane jest bie��ce �rodowisko. +Warto�� \fB$PATH\fR dla zwyk�ych u�ytkownik�w ustawiana jest jest na +\fB/bin:/usr/bin\fR, za� dla superu�ytkownika +na \fB/sbin:/bin:/usr/sbin:/usr/bin\fR. +Mo�na to zmieni� przy pomocy definicji \fBENV_PATH\fR i \fBENV_SUPATH\fR +w \fI/etc/login.defs\fR. +.SH PRZESTROGI +.PP +Niniejsza wersja \fBsu\fR posiada wiele opcji kompilacji, z kt�rych tylko +cz�� b�dzie mie� zastosowanie w danej instalacji. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowane has�a i informacja o ich wa�no�ci" +.br +.IR $HOME/.profile " - plik startowy dla domy�lnej pow�oki" +.SH ZOBACZ TAK�E +.BR login (1), +.BR sh (1), +.BR suauth (5), +.BR login.defs (5) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) +.SH OD T�UMACZA +Niniejsza dokumentacja opisuje polecenie wchodz�ce w sk�ad pakietu +shadow-password. +Z uwagi na powtarzaj�ce si� nazwy polece�, upewnij si�, �e korzystasz +z w�a�ciwej dokumentacji. diff --git a/man/pl/suauth.5 b/man/pl/suauth.5 new file mode 100644 index 00000000..c3a54ac7 --- /dev/null +++ b/man/pl/suauth.5 @@ -0,0 +1,115 @@ +.\" {PTM/WK/1999-09-14} +.TH SUAUTH 5 "14 lutego 1996" +.UC 5 +.SH NAZWA +suauth - plik szczeg�owej kontroli su +.\" detailed su control file +.SH SK�ADNIA +.B /etc/suauth +.SH OPIS +Plik +.I /etc/suauth +przeszukiwany jest przy ka�dym wywo�aniu polecenia su. Mo�e on zmienia� +zachowanie si� polecenia su, w oparciu o +.PP +.RS +.nf +1) u�ytkownika, na kt�rego konto wykonywane jest su +.fi +2) u�ytkownika wykonuj�cego polecenie su (lub dowoln� z grup, kt�rej mo�e +on by� cz�onkiem) +.RE +.PP +Plik sformatowany jest jak poni�ej. Wiersze rozpoczynaj�ce si� od # s� +traktowane jak wiersze komentarza i ignorowane. +.PP +.RS +na-ID:z-ID:AKCJA +.RE +.PP +Gdzie na-ID jest albo s�owem +.B ALL +(wszyscy), albo list� nazw u�ytkownik�w rozdzielonych "," albo te� s�owami +.B ALL EXCEPT +(wszyscy opr�cz), po kt�rych nast�puje lista nazw u�ytkownik�w +rozdzielonych przecinkiem. +.PP +z-ID jest formatowane w taki sam spos�b jak na-ID, z wyj�tkiem tego, �e +rozpoznawane jest dodatkowe s�owo +.BR GROUP. +Zapis +.B ALL EXCEPT GROUP +(wszyscy za wyj�tkiem grupy) jest r�wnie� ca�kowicie poprawny. +Po s�owie +.B GROUP +powinna wyst�pi� jedna lub wi�cej rozdzielonych przecinkiem nazw grup. +Niewystarczaj�ce jest podanie g��wnego ID danej grupy - niezb�dny jest +wpis w +.BR /etc/group (5). +.PP +Akcja mo�e by� tylko jedn� z obecnie obs�ugiwanych opcji: +.TP 10 +.B DENY +(zakaz) Pr�ba wykonania su jest zatrzymywana jeszcze przed pytaniem o has�o. +.TP 10 +.B NOPASS +(bez has�a) Pr�ba wykonania su jest automatycznie pomy�lna; brak pytania +o has�o. +.TP 10 +.B OWNPASS +(w�asne has�o) U�ytkownik wywo�uj�cy su musi wprowadzi� w�asne has�o, by +polecenie zosta�o pomy�lnie wykonane. Jest on powiadamiany o konieczno�ci +podania w�asnego has�a. +.PP +Zauwa�, �e istniej� trzy odr�bne pola rozdzielone dwukropkiem. Bia�e znaki +wok� dwukropka nie s� dozwolone. Zauwa� te�, �e plik analizowany jest +sekwencyjnie, wiersz po wierszu, i stosowana jest pierwsza pasuj�ca regu�a +bez analizy reszty pliku. Umo�liwia to administratorowi systemu precyzyjn� +kontrol� wed�ug w�asnych upodoba�. +.SH PRZYK�AD +.PP +.nf +# przyk�adowy plik /etc/suauth +# +# para uprzywilejowanych u�ytkownik�w +# mo�e wykona� su na konto root +# przy pomocy w�asnych hase� +# +root:chris,birddog:OWNPASS +# +# Nikt inny nie mo�e wykona� su na konto root, +# chyba �e jest cz�onkiem grupy wheel. +# Tak to robi BSD. +# +root:ALL EXCEPT GROUP wheel:DENY +# +# By� mo�e terry i birddog s� kontami, +# kt�rych u�ywa ta sama osoba. +# Mo�na zrobi� wzajemny dost�p +# pomi�dzy nimi bez hase�. +# +terry:birddog:NOPASS +birddog:terry:NOPASS +# +.fi +.SH PLIKI +.I /etc/suauth +.SH B��DY +Mo�e by� sporo ukrytych. Analizator pliku jest szczeg�lnie wra�liwy +na b��dy sk�adniowe. Zak�ada on, �e nie b�dzie zb�dnych bia�ych znak�w +(za wyj�tkiem pocz�tk�w i ko�c�w wierszy), a r�ne elementy b�d� separowane +konkretnym znakiem ogranicznika. +.SH DIAGNOSTYKA +B��d analizy pliku zg�aszany jest przy u�yciu +.BR syslogd (8) +jako zagro�enie o poziomie ERR (b��d) w podsystemie AUTH (identyfikacji +u�ytkownika przy zg�oszeniu). +.\" as level ERR on facility AUTH. +.SH ZOBACZ TAK�E +.BR su (1) +.SH AUTOR +.nf +Chris Evans (lady0110@sable.ox.ac.uk) +Lady Margaret Hall +Oxford University +England diff --git a/man/pl/sulogin.8 b/man/pl/sulogin.8 new file mode 100644 index 00000000..e8aca99d --- /dev/null +++ b/man/pl/sulogin.8 @@ -0,0 +1,94 @@ +.\" {PTM/WK/1999-09-14} +.\" Copyright 1989 - 1992, Julianne Frances Haugh +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. +.\" +.\" $Id: sulogin.8,v 1.3 1999/09/25 20:07:47 wojtek2 Exp $ +.\" +.TH SULOGIN 8 +.SH NAZWA +sulogin - login w trybie jednou�ytkownikowym +.SH SK�ADNIA +\fBsulogin\fR [\fIurz�dzenie-tty\fR] +.SH OPIS +.B sulogin +wywo�ywane jest przez \fBinit\fR przed zezwoleniem u�ytkownikowi +na dost�p do systemu w trybie jednou�ytkownikowym (single user mode). +Funkcja ta mo�e by� dost�pna tylko w niekt�rych systemach, w kt�rych +odpowiednio zmieniono \fBinit\fR lub plik \fB/etc/inittab\fR posiada +pozycj� dla logowania si� w trybie jednou�ytkownikowym. +.PP +Wy�wietlany jest symbol zach�ty +.IP "" .5i +Type control-d to proceed with normal startup, +.br +(or give root password for system maintenance): +.br +Naci�nij control-d by kontynuowa� zwyk�y start, +.br +(lub podaj has�o u�ytkownika root do konserwacji systemu): +.PP +Wej�cie i wyj�cie b�d� obs�ugiwane przy u�yciu standardowych deskryptor�w +plik�w, chyba �e u�yto opcjonalnego argumentu - nazwy urz�dzenia. +.PP +Je�li u�ytkownik wprowadzi poprawne has�o superu�ytkownika root, +to rozpoczynana jest sesja pracy na koncie root. +Je�eli natomiast naci�ni�to \fBEOF\fR, to system przechodzi +do wielou�ytkownikowego trybu pracy. +.PP +Po opuszczeniu przez u�ytkownika pow�oki przypisanej do +jednou�ytkownikowego trybu pracy lub po naci�ni�ciu \fBEOF\fR, system +wykonuje proces inicjacji wymagany do przej�cia w tryb wielou�ytkownikowy. +.SH OSTRZE�ENIA +.PP +Polecenie to mo�e by� u�ywane wy��cznie wtedy, gdy \fBinit\fR zosta� zmieniony +tak, by wywo�ywa� \fBsulogin\fR zamiast \fB/bin/sh\fR, +albo gdy u�ytkownik skonfigurowa� plik \fIinittab\fR tak, by obs�ugiwa� +logowanie w trybie jednou�ytkownikowym. +Na przyk�ad, wiersz +.br +.sp 1 +co:s:respawn:/etc/sulogin /dev/console +.br +.sp 1 +powinien wykona� polecenie sulogin w trybie jednou�ytkownikowym. +.PP +Na ile jest to mo�liwe, tworzone jest pe�ne �rodowisko. +Jednak�e w efekcie mog� nie by� do��czone czy zainicjowane r�ne +urz�dzenia, za� wiele polece� u�ytkownika mo�e by� niedost�pnych lub +nie funkcjonowa�. +.SH PLIKI +.IR /etc/passwd " - informacja o kontach u�ytkownik�w" +.br +.IR /etc/shadow " - zakodowane has�a i informacja o ich wa�no�ci" +.br +.IR /.profile " - skrypt startowy dla pow�oki trybu jednou�ytkownikowego" +.SH ZOBACZ TAK�E +.BR login (1), +.BR init (8), +.BR sh (1) +.SH AUTOR +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/porttime.5 b/man/porttime.5 index 04497e90..82f0ebfd 100644 --- a/man/porttime.5 +++ b/man/porttime.5 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: porttime.5,v 1.4 1998/12/28 20:35:20 marekm Exp $ +.\" $Id: porttime.5,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PORTTIME 5 .SH NAME @@ -81,4 +81,4 @@ port during non-working hours. .SH SEE ALSO .BR login (1) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pw_auth.3 b/man/pw_auth.3 index 830529c4..b3e6d1c0 100644 --- a/man/pw_auth.3 +++ b/man/pw_auth.3 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pw_auth.3,v 1.4 1998/12/28 20:35:21 marekm Exp $ +.\" $Id: pw_auth.3,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PWAUTH 3 .SH NAME @@ -156,4 +156,4 @@ with a 0 exit code, and a non-zero value otherwise. .BR userdel (8), usermod(8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pwauth.8 b/man/pwauth.8 index 8f0da284..156ec533 100644 --- a/man/pwauth.8 +++ b/man/pwauth.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwauth.8,v 1.4 1998/12/28 20:35:22 marekm Exp $ +.\" $Id: pwauth.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PWAUTH 8 .SH NAME @@ -64,4 +64,4 @@ the login or network session itself. .BR usermod (8), .BR pw_auth (3) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/pwck.8 b/man/pwck.8 index d0d38ea5..6e500fcb 100644 --- a/man/pwck.8 +++ b/man/pwck.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: pwck.8,v 1.4 1998/12/28 20:35:23 marekm Exp $ +.\" $Id: pwck.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH PWCK 1 .SH NAME @@ -104,4 +104,4 @@ Cannot lock password files .IP 5 5 Cannot update password files .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/shadow.3 b/man/shadow.3 index 74d2b2c2..0a3b74a9 100644 --- a/man/shadow.3 +++ b/man/shadow.3 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: shadow.3,v 1.4 1998/12/28 20:35:24 marekm Exp $ +.\" $Id: shadow.3,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH SHADOW 3 .SH NAME @@ -145,4 +145,4 @@ the shadow password file is restricted. .BR getpwent (3), .BR shadow (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/shadow.5 b/man/shadow.5 index b39f2402..bd3b09a3 100644 --- a/man/shadow.5 +++ b/man/shadow.5 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: shadow.5,v 1.4 1998/12/28 20:35:25 marekm Exp $ +.\" $Id: shadow.5,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH SHADOW 5 .SH NAME @@ -96,4 +96,4 @@ security is to be maintained. .BR pwconv (8), .BR pwunconv (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/su.1 b/man/su.1 index 15dc64a2..69fe12c4 100644 --- a/man/su.1 +++ b/man/su.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: su.1,v 1.5 1998/12/28 20:35:26 marekm Exp $ +.\" $Id: su.1,v 1.6 2000/08/26 18:27:17 marekm Exp $ .\" .TH SU 1 .SH NAME @@ -64,6 +64,10 @@ The current environment is passed to the new shell. The value of \fB/sbin:/bin:/usr/sbin:/usr/bin\fR for the super user. This may be changed with the \fBENV_PATH\fR and \fBENV_SUPATH\fR definitions in \fI/etc/login.defs\fR. +.PP +A subsystem login is indicated by the presense of a "*" as the first +character of the login shell. The given home directory will be used as +the root of a new filesystem which the user is actually logged into. .SH CAVEATS .PP This version of \fBsu\fR has many compilation options, only some of which @@ -80,4 +84,4 @@ $HOME/.profile \- initialization script for default shell .BR suauth (5), .BR login.defs (5) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/sulogin.8 b/man/sulogin.8 index 2de82795..61d61cdb 100644 --- a/man/sulogin.8 +++ b/man/sulogin.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: sulogin.8,v 1.4 1998/12/28 20:35:27 marekm Exp $ +.\" $Id: sulogin.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH SULOGIN 8 .SH NAME @@ -85,4 +85,4 @@ of the user commands may be unavailable or nonfunctional as a result. .BR init (8), .BR sh (1) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/useradd.8 b/man/useradd.8 index 68f7a5bf..aa84b755 100644 --- a/man/useradd.8 +++ b/man/useradd.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: useradd.8,v 1.6 1999/03/07 19:14:47 marekm Exp $ +.\" $Id: useradd.8,v 1.7 2000/08/26 18:27:17 marekm Exp $ .\" .TH USERADD 8 .SH NAME @@ -194,4 +194,4 @@ This must be performed on the NIS server. .BR userdel (8), .BR usermod (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/userdel.8 b/man/userdel.8 index eb9e5b89..9a26713f 100644 --- a/man/userdel.8 +++ b/man/userdel.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: userdel.8,v 1.4 1998/12/28 20:35:29 marekm Exp $ +.\" $Id: userdel.8,v 1.5 2000/08/26 18:27:17 marekm Exp $ .\" .TH USERDEL 8 .SH NAME @@ -40,8 +40,8 @@ all entries that refer to \fIlogin\fR. The named user must exist. .IP \fB-r\fR Files in the user's home directory will be removed along with the -home directory itself. -Files located in other file system will have to be searched for +home directory itself and the user's mail spool. +Files located in other file systems will have to be searched for and deleted manually. .SH FILES /etc/passwd \- user account information @@ -66,4 +66,4 @@ This must be performed on the NIS server. .BR useradd (8), .BR usermod (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/man/usermod.8 b/man/usermod.8 index 8aecfd36..8e6bc0c1 100644 --- a/man/usermod.8 +++ b/man/usermod.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: usermod.8,v 1.6 1999/03/07 19:14:48 marekm Exp $ +.\" $Id: usermod.8,v 1.7 2000/08/26 18:27:17 marekm Exp $ .\" .TH USERMOD 8 .SH NAME @@ -150,4 +150,4 @@ You must make any changes involving NIS on the NIS server. .BR useradd (8), .BR userdel (8) .SH AUTHOR -Julianne Frances Haugh (jfh@bga.com) +Julianne Frances Haugh (jfh@austin.ibm.com) diff --git a/mkinstalldirs b/mkinstalldirs index 61cd1d95..4f58503e 100755 --- a/mkinstalldirs +++ b/mkinstalldirs @@ -4,7 +4,7 @@ # Created: 1993-05-16 # Public domain -# $Id: mkinstalldirs,v 1.3 1998/01/29 23:22:23 marekm Exp $ +# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 @@ -22,7 +22,7 @@ do esac if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" 1>&2 + echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? diff --git a/old/Makefile.am b/old/Makefile.am deleted file mode 100644 index 7c0fe142..00000000 --- a/old/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -# This is a dummy Makefile.am to get automake work flawlessly, -# and also cooperate to make a distribution for `make dist' - -EXTRA_DIST = Makefile.linux Makefile.sun4 Makefile.svr4 Makefile.xenix \ - config.h.linux config.h.sun4 config.h.svr4 config.h.xenix \ - orig-config.h pwconv.8 pwconv-old.8 pwconv-old.c pwd.h.m4 \ - pwunconv.8 pwunconv-old.8 pwunconv-old.c scologin.c vipw.8 diff --git a/old/Makefile.linux b/old/Makefile.linux deleted file mode 100644 index a2bbaf8d..00000000 --- a/old/Makefile.linux +++ /dev/null @@ -1,751 +0,0 @@ -# -# Copyright 1988 - 1994, Julianne Frances Haugh -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Julianne F. Haugh nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. -# -# %W% %U% - Shadow password system (Linux) -# -# $Id: Makefile.linux,v 1.2 1997/05/01 23:11:54 marekm Exp $ -# -SHELL = /bin/sh - -# -# Set this flag to decide what level of code "get" returns. -# The base USENET release was release 1. It is no longer supported. -# The version with the utilities added was release 2. It is now unsupported. -# The version with database-like file access is release 3. -RELEASE = 3 -VERSION = ver3.3.2 -GFLAGS = -n $(VERSION) -GET = get_file - -# Define the directory login is copied to. Linux uses /bin. -LOGINDIR = /bin - -# Define any special libraries required to access the directory routines. -# Linux does not use any special libraries. -NDIR = - -# Define some stuff for Cracklib. This assumes that libcracklib.a is -# in a system directory. -# Add -DPWC_HIST to check password history using TS&SzS cracklib -# CRACKDEF='-DUSE_CRACKLIB' -# CRACKLIB=-lcrack - -# Pick your favorite C compiler and tags command -CC = gcc -TAGS = ctags - -# OS. This is Linux. -OS = -DUSG -DLINUX - -# Do you have to do ranlib (probably SUN, BSD and XENIX)? -RANLIB = ranlib -# RANLIB = echo - -# Configuration Flags -# -# DEST_INCLUDE_DIR - local include files -# LIBS - system libraries -# -lsocket - needed for TCP/IP and possibly SYSLOG -# -ldbm or -lndbm - needed for DBM support -# -lcrypt - needed for SCO crypt() functions -# CFLAGS - C compiler flags -# -DLAI_TCP - needed for SCO Xenix Lachman TCP/IP - -prefix=/ -exec_prefix=$(prefix) -bindir=$(exec_prefix)/bin -sbindir=$(exec_prefix)/sbin -usrbindir=$(exec_prefix)/usr/bin -usrsbindir=$(exec_prefix)/usr/sbin -includedir=$(prefix)/usr/include -libdir=$(prefix)/usr/lib -mandir=$(prefix)/usr/man -man1dir=$(mandir)/man1 -man3dir=$(mandir)/man3 -man4dir=$(mandir)/man4 -man5dir=$(mandir)/man5 -man8dir=$(mandir)/man8 - -login_perms=-m755 -# If you need "exec login", comment out the above line and uncomment below -#login_perms=-m4755 - -#DEST_INCLUDE_DIR = /usr/local/include -DEST_INCLUDE_DIR = $(includedir) - -# Dirty hack to avoid name collisions (programs linked with libshadow -# could have their own xmalloc/xstrdup, these names are quite common). -# Don't look. --marekm -#HACK = -Dxmalloc=libshadow_xmalloc -Dxstrdup=libshadow_xstrdup -# Flags for Linux -CFLAGS = -O2 -fomit-frame-pointer -Wall $(CRACKDEF) $(OS) $(HACK) -LIBS = #-ldbm #-lskey -#LIBSHADOW = libshadow.a -LIBSHADOW = shlib/libshadow.so -STATIC = -static -LDFLAGS = -s -LTFLAGS = - -# Where the login.defs file will be copied. Must agree with config.h -DEST_LOGIN_DEFS = /etc/login.defs - -# Rules for .L (lint) files. -.SUFFIXES: .L -LINT = lint -LINTFLAGS = $(OS) -Dlint - -.c.L: - $(LINT) -pxu $(LINTFLAGS) $*.c > $*.L - -LOBJS = lmain.o login.o env.o valid.o setup.o shell.o age.o \ - utmp.o sub.o mail.o motd.o log.o ttytype.o failure.o \ - tz.o console.o hushed.o login_access.o setugid.o \ - chowntty.o ulimit.o - -LSRCS = lmain.c login.c env.c valid.c setup.c shell.c age.c \ - utmp.c sub.c mail.c motd.c log.c ttytype.c failure.c \ - tz.c console.c hushed.c login_access.c setugid.c \ - chowntty.c ulimit.c - -SOBJS = smain.o env.o entry.o setup.o shell.o \ - sub.o mail.o motd.o sulog.o age.o tz.o hushed.o setugid.o \ - suauth.o console.o ulimit.o - -SSRCS = smain.c env.c entry.c setup.c shell.c \ - pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ - tz.c hushed.c setugid.c suauth.c console.c ulimit.c - -POBJS = passwd.o obscure.o ulimit.o -PSRCS = passwd.c obscure.c ulimit.c - -GPSRCS = gpmain.c - -GPOBJS = gpmain.o - -PWOBJS = pwconv.o - -PWSRCS = pwconv.c pwent.c shadow.c pwpack.c rad64.c - -PWUNOBJS = pwunconv.o - -PWUNSRCS = pwunconv.c pwent.c shadow.c pwpack.c rad64.c - -SULOGOBJS = sulogin.o entry.o env.o age.o setup.o \ - valid.o shell.o tz.o setugid.o ulimit.o - -SULOGSRCS = sulogin.c entry.c env.c age.c pwent.c setup.c \ - shadow.c shell.c valid.c pwpack.c tz.c setugid.c ulimit.c - -MKPWDOBJS = mkpasswd.o - -MKPWDSRCS = mkpasswd.c - -NGSRCS = newgrp.c env.c shell.c - -NGOBJS = newgrp.o env.o shell.o - -CHFNSRCS = chfn.c fields.c ulimit.c -CHFNOBJS = chfn.o fields.o ulimit.o -CHSHSRCS = chsh.c fields.c ulimit.c -CHSHOBJS = chsh.o fields.o ulimit.o -CHAGEOBJS = chage.o fields.o -CHAGESRCS = chage.c fields.c -CHPASSOBJS = chpasswd.o -CHPASSSRCS = chpasswd.c -DPSRCS = dpmain.c -DPOBJS = dpmain.o - -ALLSRCS = age.c dialchk.c dialup.c entry.c env.c lmain.c log.c login.c mail.c \ - motd.c obscure.c passwd.c pwconv.c pwent.c pwunconv.c getpass.c \ - setup.c shadow.c shell.c smain.c sub.c sulog.c sulogin.c ttytype.c \ - utmp.c valid.c port.c newgrp.c gpmain.c grent.c mkpasswd.c pwpack.c \ - chfn.c chsh.c chage.c rad64.c encrypt.c chpasswd.c shadowio.c pwio.c \ - newusers.c groupio.c fields.c pwdbm.c grpack.c grdbm.c sppack.c \ - spdbm.c dpmain.c gshadow.c gsdbm.c gspack.c sgroupio.c useradd.c \ - userdel.c patchlevel.h usermod.c copydir.c mkrmdir.c groupadd.c \ - groupdel.c groupmod.c tz.c console.c hushed.c getdef.c scologin.c \ - logoutd.c groups.c pwauth.c lockpw.c chowndir.c rename.c - -FILES1 = LICENSE README patchlevel.h newgrp.c Makefile config.h pwunconv.c obscure.c \ - age.c id.c - -FILES2 = passwd.c port.c lmain.c sulogin.c pwpack.c dialup.c expiry.c \ - gshadow.h - -FILES3 = chfn.c chsh.c smain.c faillog.c pwconv.c shadow.c pwck.c utent.c - -FILES4 = gpmain.c chage.c pwent.c valid.c setup.c entry.c ttytype.c port.h - -FILES5 = pwio.c encrypt.c chpasswd.c newusers.c rad64.c dialchk.c faillog.h \ - pwdbm.c grdbm.c gshadow.c sppack.c grpck.c - -FILES6 = gspack.c spdbm.c lastlog.h shell.c login.c sub.c dpmain.c mail.c \ - env.c pwd.h.m4 grpack.c shadow.h log.c grent.c motd.c dialup.h \ - fields.c gsdbm.c utmp.c failure.c - -FILES7 = groupio.c shadowio.c sgroupio.c groups.c copydir.c mkrmdir.c \ - mkpasswd.c pwauth.c pwauth.h lastlog.c - -FILES8 = useradd.c usermod.c login.defs rename.c - -FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \ - scologin.c logoutd.c sulog.c getpass.c userdel.c lockpw.c chowndir.c - -FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4 -FILES_SVR4 = Makefile.svr4 config.h.svr4 -FILES_LINUX = Makefile.linux config.h.linux - -MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \ - useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \ - groups.1 pwck.1 grpck.1 -MAN_3 = shadow.3 pwauth.3 -MAN_4 = # faillog.4 passwd.4 porttime.4 shadow.4 -MAN_5 = login.5 faillog.5 passwd.5 porttime.5 shadow.5 -MAN_8 = chpasswd.8 dpasswd.8 faillog.8 newusers.8 pwconv.8 pwunconv.8 \ - sulogin.8 mkpasswd.8 logoutd.8 pwauth.8 lastlog.8 - -DOCS1 = $(MAN_1) $(MAN_3) $(MAN_4) -DOCS2 = $(MAN_5) $(MAN_8) -DOCS = $(DOCS1) $(DOCS2) - -BINS = su login login-static pwconv pwunconv passwd sulogin faillog newgrp \ - sg gpasswd mkpasswd chfn chsh chage chpasswd newusers dpasswd id \ - useradd userdel usermod groupadd groupdel groupmod $(SCOLOGIN) \ - logoutd groups pwck grpck lastlog expiry - -all: Linux $(BINS) $(DOCS) - -# -# Linux has its own /usr/include/shadow.h. Use it instead. -# -SHADOW = /usr/include/shadow.h -PWD = /usr/include/pwd.h -Linux: - -mv shadow.h oldshadow.h - touch Linux - -$(BINS): Linux - -.PRECIOUS: libshadow.a - -LIBOBJS = dialchk.o dialup.o encrypt.o salt.o md5crypt.o md5.o getdef.o \ - getpass.o commonio.o grdbm.o grent.o groupio.o grpack.o gshadow.o \ - gsdbm.o gspack.o sgroupio.o port.o pwdbm.o pwent.o pwio.o pwpack.o \ - pwauth.o rad64.o spdbm.o shadow.o shadowio.o sppack.o lockpw.o \ - rename.o utent.o list.o strtoday.o basename.o isexpired.o xmalloc.o - -libshadow.a: $(LIBOBJS) - $(AR) rc libshadow.a $^ - $(RANLIB) libshadow.a - -shlib/libshadow.so: $(LIBOBJS) - cd shlib && \ - $(MAKE) CC=$(CC) CFLAGS="$(CFLAGS)" LIBOBJS="$(LIBOBJS)" libshadow.so - -old-libshadow.a: \ - libshadow.a(dialchk.o) \ - libshadow.a(dialup.o) \ - libshadow.a(encrypt.o) \ - libshadow.a(salt.o) \ - libshadow.a(md5crypt.o) \ - libshadow.a(md5.o) \ - libshadow.a(getdef.o) \ - libshadow.a(getpass.o) \ - libshadow.a(commonio.o) \ - libshadow.a(grdbm.o) \ - libshadow.a(grent.o) \ - libshadow.a(groupio.o) \ - libshadow.a(grpack.o) \ - libshadow.a(gshadow.o) \ - libshadow.a(gsdbm.o) \ - libshadow.a(gspack.o) \ - libshadow.a(sgroupio.o) \ - libshadow.a(port.o) \ - libshadow.a(pwdbm.o) \ - libshadow.a(pwent.o) \ - libshadow.a(pwio.o) \ - libshadow.a(pwpack.o) \ - libshadow.a(pwauth.o) \ - libshadow.a(rad64.o) \ - libshadow.a(spdbm.o) \ - libshadow.a(shadow.o) \ - libshadow.a(shadowio.o) \ - libshadow.a(sppack.o) \ - libshadow.a(lockpw.o) \ - libshadow.a(rename.o) \ - libshadow.a(utent.o) \ - libshadow.a(list.o) \ - libshadow.a(strtoday.o) \ - libshadow.a(basename.o) \ - libshadow.a(isexpired.o) \ - libshadow.a(xmalloc.o) - $(RANLIB) libshadow.a - -# these two (from the original Makefile) don't work on Linux, see below -# -#save: -# [ ! -d save ] && mkdir save -# -cp $(LOGINDIR)/login save -# -cp /etc/mkpasswd /etc/pwconv /etc/pwunconv /etc/sulogin /etc/chpasswd \ -# /etc/newusers /etc/useradd /etc/userdel /etc/usermod \ -# /etc/groupadd /etc/groupdel /etc/groupmod /etc/logoutd \ -# /etc/login.defs /etc/pwck /etc/grpck /bin/expiry save -# -cp /bin/su /bin/passwd /bin/gpasswd /bin/dpasswd /bin/faillog \ -# /bin/newgrp /bin/chfn /bin/chsh /bin/chage /bin/id \ -# /bin/scologin save -# -cp $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/gshadow.h save -# -#restore: -# [ -d save ] -# -(cd save ; cp login $(LOGINDIR) ) -# -(cd save ; -cp mkpasswd pwconv pwunconv sulogin chpasswd \ -# newusers useradd userdel usermod groupadd groupdel groupmod \ -# logoutd login.defs pwck grpck /etc) -# -(cd save ; cp su passwd gpasswd dpasswd faillog newgrp chfn chsh \ -# chage id scologin expiry /bin) -# -(cd save ; cp gshadow.h dialup.h $(DEST_INCLUDE_DIR) ) - -# automatic pathnames detection, thanks to Rafal Maszkowski -# (not tested by me; it is best to have a good backup anyway... --marekm) - -save: - -( [ ! -d save ] && mkdir save ) - -( whereis -b id groups chfn chsh chage login login-static sulogin \ - newusers useradd userdel usermod groupadd groupdel \ - groupmod pwck grpck lastlog faillog dpasswd chpasswd \ - logoutd mkpasswd pwconv pwunconv su passwd gpasswd \ - newgrp expiry | awk '{if ($$2!="") print $$2}' > save/list ) - -( cat save/list | awk '{print "cp -p", $$1, "save"}' | sh ) - -cp -p /etc/login.defs save - -cp -p $(includedir)/dialup.h $(includedir)/gshadow.h save - -cp -p $(libdir)/libshadow.a save - -restore: - [ -d save ] - -( cd save ; cp -p login.defs /etc ; \ - cp -p dialup.h gshadow.h $(includedir) ; \ - cp -p libshadow.a $(libdir) ) - -( cat save/list | awk '{ last=split($$1,comp,"/"); print "cp -p", comp[last], $$1}' | sh) - - -install: all - test -f /etc/login.defs || cp login.defs.linux $(DEST_LOGIN_DEFS) - install -d $(man1dir) - install -d $(man3dir) -# install -d $(man4dir) - install -d $(man5dir) - install -d $(man8dir) - install -d $(usrbindir) - install -d $(usrsbindir) - install -d $(LOGINDIR) - install -d $(bindir) - install -d $(includedir) - install -d $(libdir) - install -m 644 $(MAN_1) $(man1dir)/ - install -m 644 $(MAN_3) $(man3dir)/ -# install -m 644 $(MAN_4) $(man4dir)/ - install -m 644 $(MAN_5) $(man5dir)/ - install -m 644 $(MAN_8) $(man8dir)/ -# install -m 755 id groups $(usrbindir)/ - install -m 4755 chfn chsh chage $(usrbindir)/ - install $(login_perms) login $(LOGINDIR)/login -# install $(login_perms) login-static $(LOGINDIR)/login-static - install -m 755 sulogin $(sbindir)/sulogin - install -m 755 newusers \ - useradd userdel usermod groupadd groupdel groupmod \ - pwck grpck lastlog faillog dpasswd \ - chpasswd logoutd mkpasswd pwconv pwunconv $(usrsbindir)/ - install -m 4755 su $(bindir)/ - install -m 4755 passwd gpasswd newgrp expiry $(usrbindir)/ - ln -sf $(usrbindir)/newgrp $(bindir)/sg - install -m 644 gshadow.h dialup.h $(includedir)/ - install -m 644 libshadow.a $(libdir)/ - $(RANLIB) $(libdir)/libshadow.a - -lint: su.lint login.lint pwconv.lint pwunconv.lint passwd.lint sulogin.lint \ - faillog.lint newgrp.lint gpasswd.lint mkpasswd.lint chfn.lint \ - chsh.lint chage.lint dpasswd.lint id.lint useradd.lint userdel.lint \ - usermod.lint groupadd.lint groupdel.lint groupmod.lint logoutd.lint \ - pwck.lint grpck.lint expiry.lint \ - $(ALLSRCS:.c=.L) - -tags: $(ALLSRCS) - $(TAGS) $(ALLSRCS) - -README: - [ -f s.README ] && $(GET) $(GFLAGS) s.README - -$(DOCS): - [ -f s.$@ ] && $(GET) $(GFLAGS) s.$@ - -login.defs: - [ -f s.login.defs ] && $(GET) $(GFLAGS) s.login.defs - -Makefile.sun4: - [ -f s.Makefile.sun4 ] && $(GET) $(GFLAGS) s.Makefile.sun4 - -Makefile.svr4: - [ -f s.Makefile.svr4 ] && $(GET) $(GFLAGS) s.Makefile.svr4 - -README.sun4: - [ -f s.README.sun4 ] && $(GET) $(GFLAGS) s.README.sun4 - -config.h.sun4: - [ -f s.config.h.sun4 ] && $(GET) $(GFLAGS) s.config.h.sun4 - -config.h.svr4: - [ -f s.config.h.svr4 ] && $(GET) $(GFLAGS) s.config.h.svr4 - -login: $(LOBJS) $(LIBSHADOW) - $(CC) -o login $(LDFLAGS) $(LOBJS) $(LIBSHADOW) $(LIBS) - -login-static: $(LOBJS) libshadow.a - $(CC) -o login-static $(STATIC) $(LDFLAGS) $(LOBJS) $(LIBSHADOW) $(LIBS) - -login.lint: $(LSRCS) - $(LINT) $(LINTFLAGS) $(LSRCS) > login.lint - -su: $(SOBJS) $(LIBSHADOW) - $(CC) -o su $(LDFLAGS) $(SOBJS) $(LIBSHADOW) $(LIBS) - -su.lint: $(SSRCS) - $(LINT) $(LINTFLAGS) -DSU $(SSRCS) > su.lint - -passwd: $(POBJS) $(LIBSHADOW) - $(CC) -o passwd $(LDFLAGS) $(POBJS) $(LIBSHADOW) $(LIBS) $(CRACKLIB) - -passwd.lint: $(PSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PSRCS) > passwd.lint - -gpasswd: $(GPOBJS) $(LIBSHADOW) - $(CC) -o gpasswd $(LDFLAGS) $(GPOBJS) $(LIBSHADOW) $(LIBS) - -gpasswd.lint: $(GPSRCS) - $(LINT) $(LINTFLAGS) $(GPSRCS) > gpasswd.lint - -dpasswd: $(DPOBJS) $(LIBSHADOW) - $(CC) -o dpasswd $(LDFLAGS) $(DPOBJS) $(LIBSHADOW) $(LIBS) - -dpasswd.lint: $(DPSRCS) - $(LINT) $(LINTFLAGS) $(DPSRCS) > dpasswd.lint - -pwconv: $(PWOBJS) $(LIBSHADOW) config.h - $(CC) -o pwconv $(LDFLAGS) $(PWOBJS) $(LIBSHADOW) $(LIBS) - -pwconv.lint: $(PWSRCS) config.h - $(LINT) $(LINTFLAGS) -DPASSWD $(PWSRCS) > pwconv.lint - -pwunconv: $(PWUNOBJS) $(LIBSHADOW) config.h - $(CC) -o pwunconv $(LDFLAGS) $(PWUNOBJS) $(LIBSHADOW) $(LIBS) - -pwunconv.lint: $(PWUNSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PWUNSRCS) > pwunconv.lint - -sulogin: $(SULOGOBJS) $(LIBSHADOW) - $(CC) -o sulogin $(LDFLAGS) $(SULOGOBJS) $(LIBSHADOW) $(LIBS) - -sulogin.lint: $(SULOGSRCS) - $(LINT) $(LINTFLAGS) $(SULOGSRCS) > sulogin.lint - -faillog: faillog.o - $(CC) -o faillog $(LDFLAGS) faillog.o $(LIBS) - -faillog.lint: faillog.c faillog.h config.h - $(LINT) $(LINTFLAGS) faillog.c > faillog.lint - -lastlog: lastlog.o - $(CC) -o lastlog $(LDFLAGS) lastlog.o $(LIBS) - -lastlog.lint: lastlog.c config.h lastlog.h - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > lastlog.lint - -mkpasswd: $(MKPWDOBJS) $(LIBSHADOW) - $(CC) -o mkpasswd $(LDFLAGS) $(MKPWDOBJS) $(LIBSHADOW) $(LIBS) - -mkpasswd.lint: $(MKPWDSRCS) - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > mkpasswd.lint - -newgrp: $(NGOBJS) $(LIBSHADOW) - $(CC) -o newgrp $(LDFLAGS) $(NGOBJS) $(LIBSHADOW) $(LIBS) - -newgrp.lint: $(NGSRCS) - $(LINT) $(LINTFLAGS) $(NGSRCS) > newgrp.lint - -sg: newgrp - rm -f sg - ln newgrp sg - -sg.lint: newgrp.lint - ln newgrp.lint sg.lint - -chfn: $(CHFNOBJS) $(LIBSHADOW) - $(CC) -o chfn $(LDFLAGS) $(CHFNOBJS) $(LIBSHADOW) $(LIBS) - -chfn.lint: $(CHFNSRCS) - $(LINT) $(LINTFLAGS) $(CHFNSRCS) > chfn.lint - -chsh: $(CHSHOBJS) $(LIBSHADOW) - $(CC) -o chsh $(LDFLAGS) $(CHSHOBJS) $(LIBSHADOW) $(LIBS) - -chsh.lint: $(CHSHSRCS) - $(LINT) $(LINTFLAGS) $(CHSHSRCS) > chsh.lint - -chage: $(CHAGEOBJS) $(LIBSHADOW) - $(CC) -o chage $(LDFLAGS) $(CHAGEOBJS) $(LIBSHADOW) $(LIBS) - -chage.lint: $(CHAGESRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(CHAGESRCS) > chage.lint - -chpasswd: $(CHPASSOBJS) $(LIBSHADOW) - $(CC) -o chpasswd $(LDFLAGS) $(CHPASSOBJS) $(LIBSHADOW) $(LIBS) - -chpasswd.lint: $(CHPASSSRCS) - $(LINT) $(LINTFLAGS) $(CHPASSSRCS) > chpasswd.lint - -newusers: newusers.o $(LIBSHADOW) - $(CC) -o newusers $(LDFLAGS) newusers.o $(LIBSHADOW) $(LIBS) - -newusers.lint: newusers.c - $(LINT) $(LINTFLAGS) newusers.c > newusers.lint - -id: id.o $(LIBSHADOW) - $(CC) -o id $(LDFLAGS) id.o $(LIBSHADOW) $(LIBS) - -id.lint: id.c - $(LINT) $(LINTFLAGS) id.c > id.lint - -groups: groups.o $(LIBSHADOW) - $(CC) -o groups $(LDFLAGS) groups.o $(LIBSHADOW) $(LIBS) - -groups.lint: groups.c - $(LINT) $(LINTFLAGS) groups.c > groups.lint - -useradd: useradd.o copydir.o mkrmdir.o $(LIBSHADOW) - $(CC) -o useradd $(LDFLAGS) useradd.o copydir.o mkrmdir.o \ - $(LIBSHADOW) $(LIBS) $(NDIR) - -useradd.lint: useradd.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) useradd.c copydir.c mkrmdir.c > useradd.lint - -userdel: userdel.o copydir.o mkrmdir.o $(LIBSHADOW) - $(CC) -o userdel $(LDFLAGS) userdel.o copydir.o mkrmdir.o \ - $(LIBSHADOW) $(LIBS) $(NDIR) - -userdel.lint: userdel.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) userdel.c copydir.c mkrmdir.c > userdel.lint - -usermod: usermod.o copydir.o mkrmdir.o chowndir.o $(LIBSHADOW) - $(CC) -o usermod $(LDFLAGS) usermod.o copydir.o mkrmdir.o \ - chowndir.o $(LIBSHADOW) $(LIBS) $(NDIR) - -usermod.lint: usermod.c copydir.c mkrmdir.c chowndir.c - $(LINT) $(LINTFLAGS) usermod.c copydir.c mkrmdir.c \ - chowndir.c > usermod.lint - -groupadd: groupadd.o chkgname.o $(LIBSHADOW) - $(CC) -o groupadd $(LDFLAGS) groupadd.o chkgname.o $(LIBSHADOW) $(LIBS) - -groupadd.lint: groupadd.c - $(LINT) $(LINTFLAGS) groupadd.c > groupadd.lint - -groupdel: groupdel.o $(LIBSHADOW) - $(CC) -o groupdel $(LDFLAGS) groupdel.o $(LIBSHADOW) $(LIBS) - -groupdel.lint: groupdel.c - $(LINT) $(LINTFLAGS) groupdel.c > groupdel.lint - -groupmod: groupmod.o chkgname.o $(LIBSHADOW) - $(CC) -o groupmod $(LDFLAGS) groupmod.o chkgname.o $(LIBSHADOW) $(LIBS) - -groupmod.lint: groupmod.c - $(LINT) $(LINTFLAGS) groupmod.c > groupmod.lint - -logoutd: logoutd.o $(LIBSHADOW) - $(CC) -o logoutd $(LDFLAGS) logoutd.o $(LIBSHADOW) - -logoutd.lint: logoutd.c - $(LINT) $(LINTFLAGS) logoutd.c > logoutd.lint - -pwck: pwck.o $(LIBSHADOW) - $(CC) -o pwck $(LDFLAGS) pwck.o $(LIBSHADOW) $(LIBS) - -pwck.lint: pwck.c - $(LINT) $(LINTFLAGS) pwck.c > pwck.lint - -grpck: grpck.o $(LIBSHADOW) - $(CC) -o grpck $(LDFLAGS) grpck.o $(LIBSHADOW) $(LIBS) - -grpck.lint: grpck.c - $(LINT) $(LINTFLAGS) grpck.c > grpck.lint - -expiry: expiry.o age.o setugid.o $(LIBSHADOW) - $(CC) -o expiry $(LDFLAGS) expiry.o age.o setugid.o $(LIBSHADOW) $(LIBS) - -expiry.lint: expiry.c - $(LINT) $(LINTFLAGS) expiry.c > expiry.lint - -sulog.o: config.h - -scologin: scologin.o - $(CC) -o scologin $(LDFLAGS) scologin.o -lsocket - -passwd.o: config.h $(SHADOW) $(PWD) pwauth.h -lmain.o: config.h lastlog.h faillog.h $(PWD) pwauth.h -smain.o: config.h lastlog.h $(PWD) $(SHADOW) pwauth.h -sub.o: $(PWD) -setup.o: config.h $(PWD) -mkrmdir.o: config.h -utmp.o: config.h -mail.o: config.h -motd.o: config.h -age.o: config.h gshadow.h $(PWD) -log.o: config.h lastlog.h $(PWD) -lastlog.o: lastlog.h -shell.o: config.h -entry.o: config.h $(SHADOW) $(PWD) -hushed.o: config.h $(PWD) -valid.o: config.h $(PWD) -failure.o: faillog.h config.h -faillog.o: faillog.h config.h $(PWD) -newgrp.o: config.h gshadow.h $(SHADOW) $(PWD) -mkpasswd.o: config.h gshadow.h $(SHADOW) $(PWD) -gpmain.o: config.h gshadow.h $(PWD) -chfn.o: config.h $(PWD) -chsh.o: config.h $(PWD) -chage.o: config.h $(SHADOW) $(PWD) -pwconv.o: config.h $(SHADOW) -pwunconv.o: config.h $(SHADOW) $(PWD) -chpasswd.o: config.h $(SHADOW) $(PWD) -id.o: $(PWD) -newusers.o: config.h $(SHADOW) $(PWD) -dpmain.o: config.h dialup.h -useradd.o: config.h gshadow.h $(SHADOW) $(PWD) pwauth.h -userdel.o: config.h gshadow.h $(SHADOW) $(PWD) pwauth.h -usermod.o: config.h gshadow.h $(SHADOW) $(PWD) pwauth.h -groupadd.o: config.h gshadow.h -groupdel.o: config.h gshadow.h -groupmod.o: config.h gshadow.h -logoutd.o: config.h -sulogin.o: config.h pwauth.h -copydir.o: config.h -chowndir.o: config.h -pwck.o: config.h $(SHADOW) $(PWD) -grpck.o: config.h gshadow.h $(PWD) - -$(LIBSHADOW)(shadow.o): $(SHADOW) config.h -$(LIBSHADOW)(shadowio.o): $(SHADOW) config.h -$(LIBSHADOW)(grent.o): config.h gshadow.h -$(LIBSHADOW)(groupio.o): config.h -$(LIBSHADOW)(sgroupio.o): config.h gshadow.h -$(LIBSHADOW)(dialup.o): dialup.h -$(LIBSHADOW)(dialchk.o): dialup.h config.h -$(LIBSHADOW)(getdef.o): config.h -$(LIBSHADOW)(pwdbm.o): config.h $(PWD) -$(LIBSHADOW)(spdbm.o): config.h $(SHADOW) -$(LIBSHADOW)(grdbm.o): config.h -$(LIBSHADOW)(gshadow.o): config.h -$(LIBSHADOW)(gsdbm.o): config.h gshadow.h -$(LIBSHADOW)(pwauth.o): config.h pwauth.h -$(LIBSHADOW)(pwpack.o): config.h $(PWD) -$(LIBSHADOW)(pwent.o): config.h $(PWD) -$(LIBSHADOW)(pwio.o): $(PWD) config.h -$(LIBSHADOW)(getpass.o): config.h -$(LIBSHADOW)(encrypt.o): config.h -$(LIBSHADOW)(salt.o): config.h -$(LIBSHADOW)(md5crypt.o): config.h -$(LIBSHADOW)(md5.o): config.h -$(LIBSHADOW)(port.o): port.h -$(LIBSHADOW)(rad64.o): config.h -$(LIBSHADOW)(lockpw.o): -$(LIBSHADOW)(rename.o): config.h -$(LIBSHADOW)(gspack.o): config.h gshadow.h -$(LIBSHADOW)(list.o): -$(LIBSHADOW)(strtoday.o): config.h -$(LIBSHADOW)(xmalloc.o): -$(LIBSHADOW)(basename.o): -$(LIBSHADOW)(isexpired.o): config.h $(SHADOW) -$(LIBSHADOW)(commonio.o): - -shadow.h: - -rm -f Linux - -mv oldshadow.h shadow.h - -clean: shadow.h - -rm -f *.o a.out core npasswd nshadow *.pag *.dir - -clobber: clean - -rm -f $(BINS) *.lint *.L libshadow.a - -nuke: clobber - -for file in * ; do \ - if [ -f s.$$file -a ! -f p.$$file ] ; then \ - rm -f $$file ;\ - fi ;\ - done - -# File lists for this are out of sync with reality... --marekm -# -#shar: login.sh.01 login.sh.02 login.sh.03 login.sh.04 login.sh.05 \ -# login.sh.06 login.sh.07 login.sh.08 login.sh.09 login.sh.10 \ -# login.sh.11 login.sh.12 -# -#login.sh.01: $(FILES1) Makefile -# shar -Dc $(FILES1) > login.sh.01 -# -#login.sh.02: $(FILES2) Makefile -# shar -Dc $(FILES2) > login.sh.02 -# -#login.sh.03: $(FILES3) Makefile -# shar -Dc $(FILES3) > login.sh.03 -# -#login.sh.04: $(FILES4) Makefile -# shar -Dc $(FILES4) > login.sh.04 -# -#login.sh.05: $(FILES5) Makefile -# shar -Dc $(FILES5) > login.sh.05 -# -#login.sh.06: $(FILES6) Makefile -# shar -Dc $(FILES6) > login.sh.06 -# -#login.sh.07: $(FILES7) Makefile -# shar -Dc $(FILES7) > login.sh.07 -# -#login.sh.08: $(FILES8) Makefile -# shar -Dc $(FILES8) > login.sh.08 -# -#login.sh.09: $(FILES9) Makefile -# shar -Dc $(FILES9) > login.sh.09 -# -#login.sh.10: $(DOCS1) Makefile -# shar -Dc $(DOCS1) > login.sh.10 -# -#login.sh.11: $(DOCS2) Makefile -# shar -Dc $(DOCS2) > login.sh.11 -# -#login.sh.12: $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) Makefile -# shar -Dc $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) > login.sh.12 diff --git a/old/Makefile.sun4 b/old/Makefile.sun4 deleted file mode 100644 index 0b9e94a6..00000000 --- a/old/Makefile.sun4 +++ /dev/null @@ -1,685 +0,0 @@ -# -# Copyright 1988 - 1994, Julianne Frances Haugh -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Julianne F. Haugh nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. -# -# %W% %U% - Shadow password system (SunOS 4.1.1 version) -# -# $Id: Makefile.sun4,v 1.2 1997/05/01 23:11:55 marekm Exp $ -# -SHELL = /bin/sh - -# -# Set this flag to decide what level of code "get" returns. -# The base USENET release was release 1. It is no longer supported. -# The version with the utilities added was release 2. -# The version with database-like file access is release 3. -RELEASE = 3 -GFLAGS = -t -r$(RELEASE) - -# SunOS 4.1.1 uses /usr/bin -LOGINDIR = /usr/bin - -# SunOS 4.1.1 requires no extra libraries -NDIR = - -# Define some stuff for Cracklib. This assumes that libcracklib.a is -# in a system directory. -# CRACKDEF='-DUSE_CRACKLIB' -# CRACKLIB=-lcrack - -# Pick your favorite C compiler and tags command -CC = /usr/bin/cc -TAGS = ctags - -# SunOS 4.1.1 is SUN4 -OS = -DSUN4 - -# SunOS 4.1.1 uses ranlib -RANLIB = ranlib - -# Configuration Flags -# -# DEST_INCLUDE_DIR - local include files -# LIBS - system libraries -# -lsocket - needed for TCP/IP and possibly SYSLOG -# -ldbm or -lndbm - needed for DBM support -# -lcrypt - needed for SCO crypt() functions -# CFLAGS - C compiler flags -# -DLAI_TCP - needed for SCO Xenix Lachman TCP/IP - -DEST_INCLUDE_DIR = /usr/5include - -# Flags for SunOS 4.1.1 -CFLAGS = -O2 $(OS) -I$(DEST_INCLUDE_DIR) $(CRACKDEF) -LIBS = -LDFLAGS = - -# Library for SunOS 4.1.1 -LIBSEC = libsec.a - -# Names for root user and group, and bin user and group. See your -# /etc/passwd and /etc/group files. This is for SunOS 4.1.1 -RUID = root -RGID = wheel -BUID = bin -BGID = bin - -# Where the login.defs file will be copied. Must agree with config.h -DEST_LOGIN_DEFS = /etc/login.defs - -# SunOS has its own pwd.h, use that one. -PWD = /usr/include/pwd.h - -# Rules for .L (lint) files. -.SUFFIXES: .L -LINT = lint -LINTFLAGS = $(OS) -Dlint - -.c.L: - $(LINT) -pxu $(LINTFLAGS) $*.c > $*.L - -LOBJS = lmain.o login.o env.o valid.o setup.o shell.o age.o \ - utmp.o sub.o mail.o motd.o log.o ttytype.o failure.o \ - tz.o console.o hushed.o - -LSRCS = lmain.c login.c env.c valid.c setup.c shell.c age.c \ - utmp.c sub.c mail.c motd.c log.c ttytype.c failure.c \ - tz.c console.c hushed.c - -SOBJS = smain.o env.o entry.o susetup.o shell.o \ - sub.o mail.o motd.o sulog.o age.o tz.o hushed.o - -SSRCS = smain.c env.c entry.c setup.c shell.c \ - pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ - tz.c hushed.c - -POBJS = passwd.o obscure.o -PSRCS = passwd.c obscure.c - -GPSRCS = gpmain.c - -GPOBJS = gpmain.o - -PWOBJS = pwconv.o - -PWSRCS = pwconv.c pwent.c shadow.c pwpack.c rad64.c - -PWUNOBJS = pwunconv.o - -PWUNSRCS = pwunconv.c pwent.c shadow.c pwpack.c rad64.c - -SULOGOBJS = sulogin.o entry.o env.o age.o setup.o \ - valid.o shell.o tz.o - -SULOGSRCS = sulogin.c entry.c env.c age.c pwent.c setup.c \ - shadow.c shell.c valid.c pwpack.c tz.c - -MKPWDOBJS = mkpasswd.o - -MKPWDSRCS = mkpasswd.c - -NGSRCS = newgrp.c env.c shell.c - -NGOBJS = newgrp.o env.o shell.o - -CHFNSRCS = chfn.c fields.c -CHFNOBJS = chfn.o fields.o -CHSHSRCS = chsh.c fields.c -CHSHOBJS = chsh.o fields.o -CHAGEOBJS = chage.o fields.o -CHAGESRCS = chage.c fields.c -CHPASSOBJS = chpasswd.o -CHPASSSRCS = chpasswd.c -DPSRCS = dpmain.c -DPOBJS = dpmain.o - -ALLSRCS = age.c dialchk.c dialup.c entry.c env.c lmain.c log.c login.c mail.c \ - motd.c obscure.c passwd.c pwconv.c pwent.c pwunconv.c getpass.c \ - setup.c shadow.c shell.c smain.c sub.c sulog.c sulogin.c ttytype.c \ - utmp.c valid.c port.c newgrp.c gpmain.c grent.c mkpasswd.c pwpack.c \ - chfn.c chsh.c chage.c rad64.c encrypt.c chpasswd.c shadowio.c pwio.c \ - newusers.c groupio.c fields.c pwdbm.c grpack.c grdbm.c sppack.c \ - spdbm.c dpmain.c gshadow.c gsdbm.c gspack.c sgroupio.c useradd.c \ - userdel.c patchlevel.h usermod.c copydir.c mkrmdir.c groupadd.c \ - groupdel.c groupmod.c tz.c console.c hushed.c getdef.c scologin.c \ - logoutd.c groups.c pwauth.c lockpw.c chowndir.c utent.c - -FILES1 = LICENSE README patchlevel.h newgrp.c Makefile config.h pwunconv.c obscure.c \ - age.c id.c - -FILES2 = passwd.c port.c lmain.c sulogin.c pwpack.c dialup.c expiry.c \ - gshadow.h - -FILES3 = chfn.c chsh.c smain.c faillog.c pwconv.c shadow.c pwck.c utent.c - -FILES4 = gpmain.c chage.c pwent.c valid.c setup.c entry.c ttytype.c port.h - -FILES5 = pwio.c encrypt.c chpasswd.c newusers.c rad64.c dialchk.c faillog.h \ - pwdbm.c grdbm.c gshadow.c sppack.c grpck.c - -FILES6 = gspack.c spdbm.c lastlog.h shell.c login.c sub.c dpmain.c mail.c \ - env.c pwd.h.m4 grpack.c shadow.h log.c grent.c motd.c dialup.h \ - fields.c gsdbm.c utmp.c failure.c - -FILES7 = groupio.c shadowio.c sgroupio.c groups.c copydir.c mkrmdir.c \ - mkpasswd.c pwauth.c pwauth.h lastlog.c - -FILES8 = useradd.c usermod.c login.defs - -FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \ - scologin.c logoutd.c sulog.c getpass.c userdel.c lockpw.c chowndir.c - -FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4 -FILES_SVR4 = Makefile.svr4 config.h.svr4 -FILES_LINUX = Makefile.linux config.h.linux - -MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \ - useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \ - groups.1 pwck.1 grpck.1 -MAN_3 = shadow.3 pwauth.3 -MAN_4 = faillog.4 passwd.4 porttime.4 shadow.4 -MAN_5 = login.5 -MAN_8 = chpasswd.8 dpasswd.8 faillog.8 newusers.8 pwconv.8 pwunconv.8 \ - sulogin.8 mkpasswd.8 logoutd.8 pwauth.8 lastlog.8 - -DOCS1 = $(MAN_1) $(MAN_3) $(MAN_4) -DOCS2 = $(MAN_5) $(MAN_8) -DOCS = $(DOCS1) $(DOCS2) - -BINS = su login pwconv pwunconv passwd sulogin faillog newgrp gpasswd \ - mkpasswd chfn chsh chage chpasswd newusers dpasswd id useradd \ - userdel usermod groupadd groupdel groupmod logoutd groups \ - pwck grpck lastlog expiry - -all: $(BINS) $(DOCS) - -.PRECIOUS: libshadow.a - -libshadow.a: \ - libshadow.a(dialchk.o) \ - libshadow.a(dialup.o) \ - libshadow.a(encrypt.o) \ - libshadow.a(getdef.o) \ - libshadow.a(getpass.o) \ - libshadow.a(grdbm.o) \ - libshadow.a(grent.o) \ - libshadow.a(groupio.o) \ - libshadow.a(grpack.o) \ - libshadow.a(gshadow.o) \ - libshadow.a(gsdbm.o) \ - libshadow.a(gspack.o) \ - libshadow.a(sgroupio.o) \ - libshadow.a(port.o) \ - libshadow.a(pwdbm.o) \ - libshadow.a(pwent.o) \ - libshadow.a(pwio.o) \ - libshadow.a(pwpack.o) \ - libshadow.a(pwauth.o) \ - libshadow.a(rad64.o) \ - libshadow.a(spdbm.o) \ - libshadow.a(shadow.o) \ - libshadow.a(shadowio.o) \ - libshadow.a(sppack.o) \ - libshadow.a(lockpw.o) \ - libshadow.a(utent.o) \ - libshadow.a(list.o) \ - libshadow.a(strtoday.o) \ - libshadow.a(basename.o) \ - libshadow.a(isexpired.o) \ - libshadow.a(xmalloc.o) - $(RANLIB) libshadow.a - -libsec: $(LIBSEC)(shadow.o) - $(RANLIB) $(LIBSEC) - -save: - [ ! -d save ] && mkdir save - -cp $(LOGINDIR)/login save - -cp /etc/mkpasswd /etc/pwconv /etc/pwunconv /etc/sulogin /etc/chpasswd \ - /etc/newusers /etc/useradd /etc/userdel /etc/usermod \ - /etc/groupadd /etc/groupdel /etc/groupmod /etc/logoutd \ - /etc/login.defs /etc/pwck /etc/grpck /bin/expiry save - -cp /bin/su /bin/passwd /bin/gpasswd /bin/dpasswd /bin/faillog \ - /bin/newgrp /bin/chfn /bin/chsh /bin/chage /bin/id \ - /bin/scologin save - -cp $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/shadow.h \ - save - -restore: - [ -d save ] - -(cd save ; cp login $(LOGINDIR) ) - -(cd save ; -cp mkpasswd pwconv pwunconv sulogin chpasswd \ - newusers useradd userdel usermod groupadd groupdel groupmod \ - logoutd login.defs pwck grpck /etc) - -(cd save ; cp su passwd gpasswd dpasswd faillog newgrp chfn chsh \ - chage id scologin expiry /bin) - -(cd save ; cp dialup.h shadow.h gshadow.h $(DEST_INCLUDE_DIR) ) - -install: all - strip $(BINS) - cp login $(LOGINDIR)/login - cp mkpasswd /etc - cp pwconv /etc - cp pwunconv /etc - cp sulogin /etc - cp chpasswd /etc - cp newusers /etc - cp useradd /etc - cp userdel /etc - cp usermod /etc - cp groupadd /etc - cp groupdel /etc - cp groupmod /etc - cp logoutd /etc - cp pwck /etc - cp grpck /etc - cp su /bin - cp passwd /bin - cp gpasswd /bin - cp dpasswd /bin - cp faillog /bin - cp newgrp /bin - cp chfn /bin - cp chsh /bin - cp chage /bin - cp id /bin - cp expiry /bin - cp dialup.h shadow.h gshadow.h $(DEST_INCLUDE_DIR) - chown $(RUID) $(LOGINDIR)/login /etc/pwconv /etc/pwunconv /etc/sulogin \ - /bin/su /bin/passwd /bin/gpasswd /bin/newgrp /etc/mkpasswd \ - /bin/dpasswd /bin/chsh /bin/chfn /bin/chage /etc/useradd \ - /etc/userdel /etc/usermod /etc/groupadd /etc/groupdel \ - /etc/groupmod /etc/logoutd /etc/pwck /etc/grpck /bin/expiry - chgrp $(RGID) $(LOGINDIR)/login /etc/pwconv /etc/pwunconv /etc/sulogin \ - /bin/su /bin/passwd /bin/gpasswd /bin/newgrp /etc/mkpasswd \ - /bin/dpasswd /bin/chsh /bin/chfn /bin/chage /etc/useradd \ - /etc/userdel /etc/usermod /etc/groupadd /etc/groupdel \ - /etc/groupmod /etc/logoutd /etc/pwck /etc/grpck /bin/expiry - chown $(BUID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \ - $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/gshadow.h - chgrp $(BGID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \ - $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/gshadow.h - chmod 700 /etc/pwconv /etc/pwunconv /etc/sulogin /etc/mkpasswd \ - /etc/chpasswd /etc/newusers /bin/dpasswd /bin/chage \ - /etc/useradd /etc/userdel /etc/usermod /etc/groupadd \ - /etc/groupdel /etc/groupmod /etc/logoutd /etc/pwck \ - /etc/grpck - chmod 4711 $(LOGINDIR)/login /bin/su /bin/passwd /bin/gpasswd \ - /bin/newgrp /bin/chfn /bin/chsh /bin/expiry - chmod 711 /bin/faillog /bin/id - chmod 444 $(DEST_INCLUDE_DIR)/shadow.h $(DEST_INCLUDE_DIR)/dialup.h \ - $(DEST_INCLUDE_DIR)/gshadow.h - [ -f $(DEST_LOGIN_DEFS) ] || (cp login.defs $(DEST_LOGIN_DEFS) ; \ - chown $(RUID) $(DEST_LOGIN_DEFS) ; \ - chgrp $(RGID) $(DEST_LOGIN_DEFS) ; \ - chmod 600 $(DEST_LOGIN_DEFS) ) - -lint: su.lint login.lint pwconv.lint pwunconv.lint passwd.lint sulogin.lint \ - faillog.lint newgrp.lint gpasswd.lint mkpasswd.lint chfn.lint \ - chsh.lint chage.lint dpasswd.lint id.lint useradd.lint userdel.lint \ - usermod.lint groupadd.lint groupdel.lint groupmod.lint logoutd.lint \ - pwck.lint grpck.lint expiry.lint \ - $(ALLSRCS:.c=.L) - -tags: $(ALLSRCS) - $(TAGS) $(ALLSRCS) - -README: - [ -f s.README ] && get -t -r$(RELEASE) s.README - -$(DOCS): - [ -f s.$@ ] && get -t -r$(RELEASE) s.$@ - -login.defs: - [ -f s.login.defs ] && get -t -r$(RELEASE) s.login.defs - -Makefile.sun4: - [ -f s.Makefile.sun4 ] && get -t -r$(RELEASE) s.Makefile.sun4 - -README.sun4: - [ -f s.README.sun4 ] && get -t -r$(RELEASE) s.README.sun4 - -config.h.sun4: - [ -f s.config.h.sun4 ] && get -t -r$(RELEASE) s.config.h.sun4 - -login: $(LOBJS) libshadow.a - $(CC) -o login $(LDFLAGS) $(LOBJS) libshadow.a $(LIBS) - -login.lint: $(LSRCS) - $(LINT) $(LINTFLAGS) $(LSRCS) > login.lint - -su: $(SOBJS) libshadow.a - $(CC) -o su $(LDFLAGS) $(SOBJS) libshadow.a $(LIBS) - -su.lint: $(SSRCS) - $(LINT) $(LINTFLAGS) -DSU $(SSRCS) > su.lint - -passwd: $(POBJS) libshadow.a - $(CC) -o passwd $(LDFLAGS) $(POBJS) libshadow.a $(LIBS) $(CRACKLIB) - -passwd.lint: $(PSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PSRCS) > passwd.lint - -gpasswd: $(GPOBJS) libshadow.a - $(CC) -o gpasswd $(LDFLAGS) $(GPOBJS) libshadow.a $(LIBS) - -gpasswd.lint: $(GPSRCS) - $(LINT) $(LINTFLAGS) $(GPSRCS) > gpasswd.lint - -dpasswd: $(DPOBJS) libshadow.a - $(CC) -o dpasswd $(LDFLAGS) $(DPOBJS) libshadow.a $(LIBS) - -dpasswd.lint: $(DPSRCS) - $(LINT) $(LINTFLAGS) $(DPSRCS) > dpasswd.lint - -pwconv: $(PWOBJS) libshadow.a config.h - $(CC) -o pwconv $(LDFLAGS) $(PWOBJS) libshadow.a $(LIBS) - -pwconv.lint: $(PWSRCS) config.h - $(LINT) $(LINTFLAGS) -DPASSWD $(PWSRCS) > pwconv.lint - -pwunconv: $(PWUNOBJS) libshadow.a config.h - $(CC) -o pwunconv $(LDFLAGS) $(PWUNOBJS) libshadow.a $(LIBS) - -pwunconv.lint: $(PWUNSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PWUNSRCS) > pwunconv.lint - -sulogin: $(SULOGOBJS) libshadow.a - $(CC) -o sulogin $(LDFLAGS) $(SULOGOBJS) libshadow.a $(LIBS) - -sulogin.lint: $(SULOGSRCS) - $(LINT) $(LINTFLAGS) $(SULOGSRCS) > sulogin.lint - -faillog: faillog.o - $(CC) -o faillog $(LDFLAGS) faillog.o $(LIBS) - -faillog.lint: faillog.c faillog.h config.h - $(LINT) $(LINTFLAGS) faillog.c > faillog.lint - -lastlog: lastlog.o - $(CC) -o lastlog $(LDFLAGS) lastlog.o $(LIBS) - -lastlog.lint: lastlog.c config.h lastlog.h - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > lastlog.lint - -mkpasswd: $(MKPWDOBJS) libshadow.a - $(CC) -o mkpasswd $(LDFLAGS) $(MKPWDOBJS) libshadow.a $(LIBS) - -mkpasswd.lint: $(MKPWDSRCS) - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > mkpasswd.lint - -newgrp: $(NGOBJS) libshadow.a - $(CC) -o newgrp $(LDFLAGS) $(NGOBJS) libshadow.a $(LIBS) - -newgrp.lint: $(NGSRCS) - $(LINT) $(LINTFLAGS) $(NGSRCS) > newgrp.lint - -sg: newgrp - rm -f sg - ln newgrp sg - -chfn: $(CHFNOBJS) libshadow.a - $(CC) -o chfn $(LDFLAGS) $(CHFNOBJS) libshadow.a $(LIBS) - -chfn.lint: $(CHFNSRCS) - $(LINT) $(LINTFLAGS) $(CHFNSRCS) > chfn.lint - -chsh: $(CHSHOBJS) libshadow.a - $(CC) -o chsh $(LDFLAGS) $(CHSHOBJS) libshadow.a $(LIBS) - -chsh.lint: $(CHSHSRCS) - $(LINT) $(LINTFLAGS) $(CHSHSRCS) > chsh.lint - -chage: $(CHAGEOBJS) libshadow.a - $(CC) -o chage $(LDFLAGS) $(CHAGEOBJS) libshadow.a $(LIBS) - -chage.lint: $(CHAGESRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(CHAGESRCS) > chage.lint - -chpasswd: $(CHPASSOBJS) libshadow.a - $(CC) -o chpasswd $(LDFLAGS) $(CHPASSOBJS) libshadow.a $(LIBS) - -chpasswd.lint: $(CHPASSSRCS) - $(LINT) $(LINTFLAGS) $(CHPASSSRCS) > chpasswd.lint - -newusers: newusers.o libshadow.a - $(CC) -o newusers $(LDFLAGS) newusers.o libshadow.a $(LIBS) - -newusers.lint: newusers.c - $(LINT) $(LINTFLAGS) newusers.c > newusers.lint - -id: id.o libshadow.a - $(CC) -o id $(LDFLAGS) id.o libshadow.a $(LIBS) - -id.lint: id.c - $(LINT) $(LINTFLAGS) id.c > id.lint - -groups: groups.o libshadow.a - $(CC) -o groups $(LDFLAGS) groups.o libshadow.a $(LIBS) - -groups.lint: groups.c - $(LINT) $(LINTFLAGS) groups.c > groups.lint - -useradd: useradd.o copydir.o mkrmdir.o libshadow.a - $(CC) -o useradd $(LDFLAGS) useradd.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -useradd.lint: useradd.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) useradd.c copydir.c mkrmdir.c > useradd.lint - -userdel: userdel.o copydir.o mkrmdir.o libshadow.a - $(CC) -o userdel $(LDFLAGS) userdel.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -userdel.lint: userdel.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) userdel.c copydir.c mkrmdir.c > userdel.lint - -usermod: usermod.o copydir.o mkrmdir.o chowndir.o libshadow.a - $(CC) -o usermod $(LDFLAGS) usermod.o copydir.o mkrmdir.o \ - chowndir.o libshadow.a $(LIBS) $(NDIR) - -usermod.lint: usermod.c copydir.c mkrmdir.c chowndir.c - $(LINT) $(LINTFLAGS) usermod.c copydir.c mkrmdir.c \ - chowndir.c > usermod.lint - -groupadd: groupadd.o libshadow.a - $(CC) -o groupadd $(LDFLAGS) groupadd.o libshadow.a $(LIBS) - -groupadd.lint: groupadd.c - $(LINT) $(LINTFLAGS) groupadd.c > groupadd.lint - -groupdel: groupdel.o libshadow.a - $(CC) -o groupdel $(LDFLAGS) groupdel.o libshadow.a $(LIBS) - -groupdel.lint: groupdel.c - $(LINT) $(LINTFLAGS) groupdel.c > groupdel.lint - -groupmod: groupmod.o libshadow.a - $(CC) -o groupmod $(LDFLAGS) groupmod.o libshadow.a $(LIBS) - -groupmod.lint: groupmod.c - $(LINT) $(LINTFLAGS) groupmod.c > groupmod.lint - -logoutd: logoutd.o libshadow.a - $(CC) -o logoutd $(LDFLAGS) logoutd.o libshadow.a - -logoutd.lint: logoutd.c - $(LINT) $(LINTFLAGS) logoutd.c > logoutd.lint - -pwck: pwck.o libshadow.a - $(CC) -o pwck $(LDFLAGS) pwck.o libshadow.a $(LIBS) - -pwck.lint: pwck.c - $(LINT) $(LINTFLAGS) pwck.c > pwck.lint - -grpck: grpck.o libshadow.a - $(CC) -o grpck $(LDFLAGS) grpck.o libshadow.a $(LIBS) - -grpck.lint: grpck.c - $(LINT) $(LINTFLAGS) grpck.c > grpck.lint - -expiry: expiry.o age.o libshadow.a - $(CC) -o expiry $(LDFLAGS) expiry.o age.o libshadow.a $(LIBS) - -expiry.lint: expiry.c - $(LINT) $(LINTFLAGS) expiry.c > expiry.lint - -sulog.o: config.h - -susetup.c: setup.c - cp setup.c susetup.c - -susetup.o: config.h susetup.c $(PWD) - $(CC) -c $(CFLAGS) -DSU susetup.c - -scologin: scologin.o - $(CC) -o scologin $(LDFLAGS) scologin.o -lsocket - -passwd.o: config.h shadow.h pwauth.h $(PWD) -lmain.o: config.h lastlog.h faillog.h pwauth.h $(PWD) -smain.o: config.h lastlog.h shadow.h pwauth.h $(PWD) -sub.o: $(PWD) -setup.o: config.h $(PWD) -mkrmdir.o: config.h -utmp.o: config.h -mail.o: config.h -motd.o: config.h -age.o: config.h gshadow.h $(PWD) -log.o: config.h lastlog.h $(PWD) -lastlog.o: lastlog.h -shell.o: config.h -entry.o: config.h shadow.h $(PWD) -hushed.o: config.h $(PWD) -valid.o: config.h $(PWD) -failure.o: faillog.h config.h -faillog.o: faillog.h config.h $(PWD) -newgrp.o: config.h shadow.h gshadow.h $(PWD) -mkpasswd.o: config.h shadow.h gshadow.h $(PWD) -gpmain.o: config.h gshadow.h $(PWD) -chfn.o: config.h $(PWD) -chsh.o: config.h $(PWD) -chage.o: config.h shadow.h $(PWD) -pwconv.o: config.h shadow.h -pwunconv.o: config.h shadow.h $(PWD) -chpasswd.o: config.h shadow.h $(PWD) -id.o: $(PWD) -newusers.o: config.h shadow.h $(PWD) -dpmain.o: config.h dialup.h -useradd.o: config.h shadow.h gshadow.h pwauth.h $(PWD) -userdel.o: config.h shadow.h gshadow.h pwauth.h $(PWD) -usermod.o: config.h shadow.h gshadow.h pwauth.h $(PWD) -groupadd.o: config.h gshadow.h -groupdel.o: config.h gshadow.h -groupmod.o: config.h gshadow.h -logoutd.o: config.h -sulogin.o: config.h pwauth.h -copydir.o: config.h -chowndir.o: config.h -pwck.o: config.h shadow.h $(PWD) -grpck.o: config.h gshadow.h $(PWD) - -libshadow.a(shadow.o): shadow.h config.h -libshadow.a(shadowio.o): shadow.h -libshadow.a(grent.o): config.h gshadow.h -libshadow.a(sgroupio.o): config.h gshadow.h -libshadow.a(dialup.o): dialup.h -libshadow.a(dialchk.o): dialup.h config.h -libshadow.a(getdef.o): config.h -libshadow.a(pwdbm.o): config.h $(PWD) -libshadow.a(spdbm.o): config.h shadow.h -libshadow.a(grdbm.o): config.h -libshadow.a(gshadow.o): config.h -libshadow.a(gsdbm.o): config.h gshadow.h -libshadow.a(pwauth.o): config.h pwauth.h -libshadow.a(pwpack.o): config.h $(PWD) -libshadow.a(pwent.o): config.h $(PWD) -libshadow.a(pwio.o): config.h $(PWD) -libshadow.a(getpass.o): config.h -libshadow.a(encrypt.o): config.h -libshadow.a(port.o): port.h -libshadow.a(rad64.o): config.h -libshadow.a(lockpw.o): -libshadow.a(gspack.o): config.h gshadow.h -libshadow.a(utent.o): config.h -libshadow.a(list.o): -libshadow.a(strtoday.o): config.h -libshadow.a(xmalloc.o): -libshadow.a(basename.o): -libshadow.a(isexpired.o): config.h shadow.h - -clean: - -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir - -clobber: clean - -rm -f $(BINS) *.lint *.L libshadow.a - -nuke: clobber - -for file in * ; do \ - if [ -f s.$$file -a ! -f p.$$file ] ; then \ - rm -f $$file ;\ - fi ;\ - done - -shar: login.sh.01 login.sh.02 login.sh.03 login.sh.04 login.sh.05 \ - login.sh.06 login.sh.07 login.sh.08 login.sh.09 login.sh.10 \ - login.sh.11 login.sh.12 - -login.sh.01: $(FILES1) Makefile - shar -a $(FILES1) > login.sh.01 - -login.sh.02: $(FILES2) Makefile - shar -a $(FILES2) > login.sh.02 - -login.sh.03: $(FILES3) Makefile - shar -a $(FILES3) > login.sh.03 - -login.sh.04: $(FILES4) Makefile - shar -a $(FILES4) > login.sh.04 - -login.sh.05: $(FILES5) Makefile - shar -a $(FILES5) > login.sh.05 - -login.sh.06: $(FILES6) Makefile - shar -a $(FILES6) > login.sh.06 - -login.sh.07: $(FILES7) Makefile - shar -a $(FILES7) > login.sh.07 - -login.sh.08: $(FILES8) Makefile - shar -a $(FILES8) > login.sh.08 - -login.sh.09: $(FILES9) Makefile - shar -a $(FILES9) > login.sh.09 - -login.sh.10: $(DOCS1) Makefile - shar -a $(DOCS1) > login.sh.10 - -login.sh.11: $(DOCS2) Makefile - shar -a $(DOCS2) > login.sh.11 - -login.sh.12: $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) Makefile - shar -a $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) > login.sh.12 diff --git a/old/Makefile.svr4 b/old/Makefile.svr4 deleted file mode 100644 index 846e46c9..00000000 --- a/old/Makefile.svr4 +++ /dev/null @@ -1,681 +0,0 @@ -# -# Copyright 1988 - 1994, Julianne Frances Haugh -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Julianne F. Haugh nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. -# -# %W% %U% - Shadow password system (SVR4) -# -# $Id: Makefile.svr4,v 1.2 1997/05/01 23:11:55 marekm Exp $ -# -SHELL = /sbin/sh - -# -# Set this flag to decide what level of code "get" returns. -# The base USENET release was release 1. It is no longer supported. -# The version with the utilities added was release 2. -# The version with database-like file access is release 3. -RELEASE = 3 -VERSION = ver3.3.2 -GFLAGS = -n $(VERSION) -GET = get_file - -# Define the directory login is copied to. SVr4 uses /usr/bin. -LOGINDIR = /usr/bin -SBIN=/usr/sbin -# system (admin) commands -UBIN=/usr/bin -# user commands - -# SVr4 doesn't need extra libraries -NDIR = - -# Define some stuff for Cracklib. This assumes that libcracklib.a is -# in a system directory. -CRACKDEF='-DUSE_CRACKLIB' -CRACKLIB=-lcrack - -# Pick your favorite C compiler and tags command -CC = cc -TAGS = ctags - -# OS. This is SVr4 -OS = -DUSG -DSVR4 -DUSE_NIS - -# SVr4 doesn't use ranlib -RANLIB = echo - -# Configuration Flags -# -# DEST_INCLUDE_DIR - local include files -# LIBS - system libraries -# -lsocket - needed for TCP/IP and possibly SYSLOG -# -ldbm or -lndbm - needed for DBM support -# -lcrypt - needed for SCO crypt() functions -# -lucb if -ldbm is defined -# -lsocket and -lnsl if RLOGIN is defined -# CFLAGS - C compiler flags -# -DLAI_TCP - needed for SCO Xenix Lachman TCP/IP - -DEST_INCLUDE_DIR = /usr/include - -# Flags for SVr4 -CFLAGS = -O -g $(OS) -I$(DEST_INCLUDE_DIR) $(CRACKDEF) -LIBS = -lsocket -lnsl -ldbm -lucb -LDFLAGS = -g - -# Library is libsec.a -LIBSEC = libsec.a - -# Names for root user and group, and bin user and group. -RUID = root -RGID = root -BUID = bin -BGID = bin - -# Where the login.defs file will be copied. Must agree with config.h -DEST_LOGIN_DEFS = /etc/login.defs - -# Macros for files in SVR4 that aren't to be changed -PWD = /usr/include/pwd.h -SHADOW = /usr/include/shadow.h - -# Rules for .L (lint) files. -.SUFFIXES: .L -LINT = lint -LINTFLAGS = $(OS) -Dlint - -.c.L: - $(LINT) -pxu $(LINTFLAGS) $*.c > $*.L - -LOBJS = lmain.o login.o env.o valid.o setup.o shell.o age.o \ - utmp.o sub.o mail.o motd.o log.o ttytype.o failure.o \ - tz.o console.o hushed.o - -LSRCS = lmain.c login.c env.c valid.c setup.c shell.c age.c \ - utmp.c sub.c mail.c motd.c log.c ttytype.c failure.c \ - tz.c console.c hushed.c - -SOBJS = smain.o env.o entry.o susetup.o shell.o \ - sub.o mail.o motd.o sulog.o age.o tz.o hushed.o - -SSRCS = smain.c env.c entry.c setup.c shell.c \ - pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ - tz.c hushed.c - -POBJS = passwd.o obscure.o -PSRCS = passwd.c obscure.c - -GPSRCS = gpmain.c - -GPOBJS = gpmain.o - -PWOBJS = pwconv.o - -PWSRCS = pwconv.c pwent.c shadow.c pwpack.c rad64.c - -PWUNOBJS = pwunconv.o - -PWUNSRCS = pwunconv.c pwent.c shadow.c pwpack.c rad64.c - -SULOGOBJS = sulogin.o entry.o env.o age.o setup.o \ - valid.o shell.o tz.o - -SULOGSRCS = sulogin.c entry.c env.c age.c pwent.c setup.c \ - shadow.c shell.c valid.c pwpack.c tz.c - -MKPWDOBJS = mkpasswd.o - -MKPWDSRCS = mkpasswd.c - -NGSRCS = newgrp.c env.c shell.c - -NGOBJS = newgrp.o env.o shell.o - -CHFNSRCS = chfn.c fields.c -CHFNOBJS = chfn.o fields.o -CHSHSRCS = chsh.c fields.c -CHSHOBJS = chsh.o fields.o -CHAGEOBJS = chage.o fields.o -CHAGESRCS = chage.c fields.c -CHPASSOBJS = chpasswd.o -CHPASSSRCS = chpasswd.c -DPSRCS = dpmain.c -DPOBJS = dpmain.o - -ALLSRCS = age.c dialchk.c dialup.c entry.c env.c lmain.c log.c login.c mail.c \ - motd.c obscure.c passwd.c pwconv.c pwent.c pwunconv.c getpass.c \ - setup.c shadow.c shell.c smain.c sub.c sulog.c sulogin.c ttytype.c \ - utmp.c valid.c port.c newgrp.c gpmain.c grent.c mkpasswd.c pwpack.c \ - chfn.c chsh.c chage.c rad64.c encrypt.c chpasswd.c shadowio.c pwio.c \ - newusers.c groupio.c fields.c pwdbm.c grpack.c grdbm.c sppack.c \ - spdbm.c dpmain.c gshadow.c gsdbm.c gspack.c sgroupio.c useradd.c \ - userdel.c patchlevel.h usermod.c copydir.c mkrmdir.c groupadd.c \ - groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \ - logoutd.c groups.c pwauth.c lockpw.c chowndir.c - -FILES1 = LICENSE README patchlevel.h newgrp.c Makefile config.h pwunconv.c obscure.c \ - age.c id.c - -FILES2 = passwd.c port.c lmain.c sulogin.c pwpack.c dialup.c expiry.c \ - gshadow.h - -FILES3 = chfn.c chsh.c smain.c faillog.c pwconv.c shadow.c pwck.c - -FILES4 = gpmain.c chage.c pwent.c valid.c setup.c entry.c ttytype.c port.h - -FILES5 = pwio.c encrypt.c chpasswd.c newusers.c rad64.c dialchk.c faillog.h \ - pwdbm.c grdbm.c gshadow.c sppack.c grpck.c - -FILES6 = gspack.c spdbm.c lastlog.h shell.c login.c sub.c dpmain.c mail.c \ - env.c pwd.h.m4 grpack.c shadow.h log.c grent.c motd.c dialup.h \ - fields.c gsdbm.c utmp.c failure.c - -FILES7 = groupio.c shadowio.c sgroupio.c groups.c copydir.c mkrmdir.c \ - mkpasswd.c pwauth.c pwauth.h lastlog.c - -FILES8 = useradd.c usermod.c login.defs - -FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \ - scologin.c logoutd.c sulog.c getpass.c userdel.c lockpw.c chowndir.c - -FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4 -FILES_SVR4 = Makefile.svr4 config.h.svr4 -FILES_LINUX = Makefile.linux config.h.linux - -MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \ - useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \ - groups.1 pwck.1 grpck.1 -MAN_3 = shadow.3 pwauth.3 -MAN_4 = faillog.4 passwd.4 porttime.4 shadow.4 -MAN_5 = login.5 -MAN_8 = chpasswd.8 dpasswd.8 faillog.8 newusers.8 pwconv.8 pwunconv.8 \ - sulogin.8 mkpasswd.8 logoutd.8 pwauth.8 lastlog.8 - -DOCS1 = $(MAN_1) $(MAN_3) $(MAN_4) -DOCS2 = $(MAN_5) $(MAN_8) -DOCS = $(DOCS1) $(DOCS2) - -BINS = su login pwconv pwunconv passwd sulogin faillog newgrp sg gpasswd \ - mkpasswd chfn chsh chage chpasswd newusers dpasswd id useradd \ - userdel usermod groupadd groupdel groupmod $(SCOLOGIN) logoutd \ - groups pwck grpck lastlog expiry - -all: $(BINS) $(DOCS) - -.PRECIOUS: libshadow.a - -libshadow.a: \ - libshadow.a(dialchk.o) \ - libshadow.a(dialup.o) \ - libshadow.a(encrypt.o) \ - libshadow.a(getdef.o) \ - libshadow.a(getpass.o) \ - libshadow.a(grdbm.o) \ - libshadow.a(grent.o) \ - libshadow.a(groupio.o) \ - libshadow.a(grpack.o) \ - libshadow.a(gshadow.o) \ - libshadow.a(gsdbm.o) \ - libshadow.a(gspack.o) \ - libshadow.a(sgroupio.o) \ - libshadow.a(port.o) \ - libshadow.a(pwdbm.o) \ - libshadow.a(pwent.o) \ - libshadow.a(pwio.o) \ - libshadow.a(pwpack.o) \ - libshadow.a(pwauth.o) \ - libshadow.a(rad64.o) \ - libshadow.a(spdbm.o) \ - libshadow.a(shadow.o) \ - libshadow.a(shadowio.o) \ - libshadow.a(sppack.o) \ - libshadow.a(lockpw.o) \ - libshadow.a(utent.o) \ - libshadow.a(list.o) \ - libshadow.a(strtoday.o) \ - libshadow.a(basename.o) \ - libshadow.a(isexpired.o) \ - libshadow.a(xmalloc.o) - $(RANLIB) libshadow.a - -libsec: $(LIBSEC)(shadow.o) - $(RANLIB) $(LIBSEC) - -save: - [ ! -d save ] && mkdir save - -cp $(LOGINDIR)/login save - -cp $(SBIN)/mkpasswd $(SBIN)/pwconv $(SBIN)/pwunconv $(SBIN)/sulogin \ - $(SBIN)/chpasswd $(SBIN)/newusers $(SBIN)/useradd \ - $(SBIN)/userdel $(SBIN)/usermod $(SBIN)/groupadd \ - $(SBIN)/groupdel $(SBIN)/groupmod $(SBIN)/logoutd \ - $(SBIN)/login.defs $(SBIN)/pwck $(SBIN)/grpck save - -cp $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd $(UBIN)/dpasswd \ - $(UBIN)/faillog $(UBIN)/newgrp $(UBIN)/chfn \ - $(UBIN)/chsh $(UBIN)/chage $(UBIN)/id $(UBIN)/expiry save - -cp $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/gshadow.h save - -restore: - [ -d save ] - -(cd save ; cp login $(LOGINDIR) ) - -(cd save ; -cp mkpasswd pwconv pwunconv sulogin chpasswd \ - newusers useradd userdel usermod groupadd groupdel groupmod \ - logoutd login.defs pwck grpck $(SBIN) ) - -(cd save ; cp su passwd gpasswd dpasswd faillog newgrp chfn chsh \ - chage id expiry $(UBIN) ) - -(cd save ; cp dialup.h gshadow.h $(DEST_INCLUDE_DIR) ) - -install: all - strip $(BINS) - mcs -da '@(#)shadow 3.3.3' $(BINS) - cp login $(LOGINDIR)/login - cp mkpasswd pwconv pwunconv sulogin chpasswd newusers \ - useradd userdel usermod groupadd groupdel groupmod logoutd \ - pwck grpck lastlog $(SBIN) - cp su passwd gpasswd dpasswd faillog newgrp chfn chsh chage id $(UBIN) - cp dialup.h gshadow.h /usr/include - chown $(RUID) $(LOGINDIR)/login $(SBIN)/pwconv $(SBIN)/pwunconv \ - $(SBIN)/sulogin $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd \ - $(UBIN)/newgrp $(SBIN)/mkpasswd $(UBIN)/dpasswd $(UBIN)/chsh \ - $(UBIN)/chfn $(UBIN)/chage $(SBIN)/useradd $(SBIN)/userdel \ - $(SBIN)/usermod $(SBIN)/groupadd $(SBIN)/groupdel \ - $(SBIN)/groupmod $(SBIN)/logoutd $(SBIN)/pwck $(SBIN)/grpck \ - $(UBIN)/expiry - chgrp $(RGID) $(LOGINDIR)/login $(SBIN)/pwconv $(SBIN)/pwunconv \ - $(SBIN)/sulogin $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd \ - $(UBIN)/newgrp $(SBIN)/mkpasswd $(UBIN)/dpasswd $(UBIN)/chsh \ - $(UBIN)/chfn $(UBIN)/chage $(SBIN)/useradd $(SBIN)/userdel \ - $(SBIN)/usermod $(SBIN)/groupadd $(SBIN)/groupdel \ - $(SBIN)/groupmod $(SBIN)/logoutd $(SBIN)/pwck $(SBIN)/grpck \ - $(UBIN)/expiry - chown $(BUID) $(UBIN)/faillog $(UBIN)/id /usr/include/gshadow.h \ - /usr/include/dialup.h - chgrp $(BGID) $(UBIN)/faillog $(UBIN)/id /usr/include/gshadow.h \ - /usr/include/dialup.h - chmod 700 $(SBIN)/pwconv $(SBIN)/pwunconv $(SBIN)/sulogin \ - $(SBIN)/mkpasswd $(SBIN)/chpasswd $(SBIN)/newusers \ - $(UBIN)/dpasswd $(UBIN)/chage $(SBIN)/useradd $(SBIN)/userdel \ - $(SBIN)/usermod $(SBIN)/groupadd $(SBIN)/groupdel \ - $(SBIN)/groupmod $(SBIN)/logoutd $(SBIN)/pwck $(SBIN)/grpck - chmod 4711 $(LOGINDIR)/login $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd \ - $(UBIN)/newgrp $(UBIN)/chfn $(UBIN)/chsh $(UBIN)/expiry - chmod 711 $(UBIN)/faillog $(UBIN)/id - chmod 444 /usr/include/gshadow.h /usr/include/dialup.h - rm -f $(UBIN)/sg - ln $(UBIN)/newgrp $(UBIN)/sg - [ -f /etc/login.defs ] || (cp login.defs /etc ; \ - chown $(RUID) /etc/login.defs ; \ - chgrp $(RGID) /etc/login.defs ; \ - chmod 600 /etc/login.defs ) - -lint: su.lint login.lint pwconv.lint pwunconv.lint passwd.lint sulogin.lint \ - faillog.lint newgrp.lint gpasswd.lint mkpasswd.lint chfn.lint \ - chsh.lint chage.lint dpasswd.lint id.lint useradd.lint userdel.lint \ - usermod.lint groupadd.lint groupdel.lint groupmod.lint logoutd.lint \ - pwck.lint grpck.lint expiry.lint \ - $(ALLSRCS:.c=.L) - -tags: $(ALLSRCS) - $(TAGS) $(ALLSRCS) - -README: - [ -f s.README ] && get -t -r$(RELEASE) s.README - -$(DOCS): - [ -f s.$@ ] && get -t -r$(RELEASE) s.$@ - -login.defs: - [ -f s.login.defs ] && get -t -r$(RELEASE) s.login.defs - -Makefile.sun4: - [ -f s.Makefile.sun4 ] && get -t -r$(RELEASE) s.Makefile.sun4 - -Makefile.svr4: - [ -f s.Makefile.svr4 ] && get -t -r$(RELEASE) s.Makefile.svr4 - -README.sun4: - [ -f s.README.sun4 ] && get -t -r$(RELEASE) s.README.sun4 - -config.h.sun4: - [ -f s.config.h.sun4 ] && get -t -r$(RELEASE) s.config.h.sun4 - -config.h.svr4: - [ -f s.config.h.svr4 ] && get -t -r$(RELEASE) s.config.h.svr4 - -login: $(LOBJS) libshadow.a - $(CC) -o login $(LDFLAGS) $(LOBJS) libshadow.a $(LIBS) - -login.lint: $(LSRCS) - $(LINT) $(LINTFLAGS) $(LSRCS) > login.lint - -su: $(SOBJS) libshadow.a - $(CC) -o su $(LDFLAGS) $(SOBJS) libshadow.a $(LIBS) - -su.lint: $(SSRCS) - $(LINT) $(LINTFLAGS) -DSU $(SSRCS) > su.lint - -passwd: $(POBJS) libshadow.a - $(CC) -o passwd $(LDFLAGS) $(POBJS) libshadow.a $(LIBS) $(CRACKLIB) - -passwd.lint: $(PSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PSRCS) > passwd.lint - -gpasswd: $(GPOBJS) libshadow.a - $(CC) -o gpasswd $(LDFLAGS) $(GPOBJS) libshadow.a $(LIBS) - -gpasswd.lint: $(GPSRCS) - $(LINT) $(LINTFLAGS) $(GPSRCS) > gpasswd.lint - -dpasswd: $(DPOBJS) libshadow.a - $(CC) -o dpasswd $(LDFLAGS) $(DPOBJS) libshadow.a $(LIBS) - -dpasswd.lint: $(DPSRCS) - $(LINT) $(LINTFLAGS) $(DPSRCS) > dpasswd.lint - -pwconv: $(PWOBJS) libshadow.a config.h - $(CC) -o pwconv $(LDFLAGS) $(PWOBJS) libshadow.a $(LIBS) - -pwconv.lint: $(PWSRCS) config.h - $(LINT) $(LINTFLAGS) -DPASSWD $(PWSRCS) > pwconv.lint - -pwunconv: $(PWUNOBJS) libshadow.a config.h - $(CC) -o pwunconv $(LDFLAGS) $(PWUNOBJS) libshadow.a $(LIBS) - -pwunconv.lint: $(PWUNSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PWUNSRCS) > pwunconv.lint - -sulogin: $(SULOGOBJS) libshadow.a - $(CC) -o sulogin $(LDFLAGS) $(SULOGOBJS) libshadow.a $(LIBS) - -sulogin.lint: $(SULOGSRCS) - $(LINT) $(LINTFLAGS) $(SULOGSRCS) > sulogin.lint - -faillog: faillog.o - $(CC) -o faillog $(LDFLAGS) faillog.o $(LIBS) - -faillog.lint: faillog.c faillog.h config.h - $(LINT) $(LINTFLAGS) faillog.c > faillog.lint - -lastlog: lastlog.o - $(CC) -o lastlog $(LDFLAGS) lastlog.o $(LIBS) - -lastlog.lint: lastlog.c config.h lastlog.h - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > lastlog.lint - -mkpasswd: $(MKPWDOBJS) libshadow.a - $(CC) -o mkpasswd $(LDFLAGS) $(MKPWDOBJS) libshadow.a $(LIBS) - -mkpasswd.lint: $(MKPWDSRCS) - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > mkpasswd.lint - -newgrp: $(NGOBJS) libshadow.a - $(CC) -o newgrp $(LDFLAGS) $(NGOBJS) libshadow.a $(LIBS) - -newgrp.lint: $(NGSRCS) - $(LINT) $(LINTFLAGS) $(NGSRCS) > newgrp.lint - -sg: newgrp - /bin/rm -f sg - ln newgrp sg - -sg.lint: newgrp.lint - ln newgrp.lint sg.lint - -chfn: $(CHFNOBJS) libshadow.a - $(CC) -o chfn $(LDFLAGS) $(CHFNOBJS) libshadow.a $(LIBS) - -chfn.lint: $(CHFNSRCS) - $(LINT) $(LINTFLAGS) $(CHFNSRCS) > chfn.lint - -chsh: $(CHSHOBJS) libshadow.a - $(CC) -o chsh $(LDFLAGS) $(CHSHOBJS) libshadow.a $(LIBS) - -chsh.lint: $(CHSHSRCS) - $(LINT) $(LINTFLAGS) $(CHSHSRCS) > chsh.lint - -chage: $(CHAGEOBJS) libshadow.a - $(CC) -o chage $(LDFLAGS) $(CHAGEOBJS) libshadow.a $(LIBS) - -chage.lint: $(CHAGESRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(CHAGESRCS) > chage.lint - -chpasswd: $(CHPASSOBJS) libshadow.a - $(CC) -o chpasswd $(LDFLAGS) $(CHPASSOBJS) libshadow.a $(LIBS) - -chpasswd.lint: $(CHPASSSRCS) - $(LINT) $(LINTFLAGS) $(CHPASSSRCS) > chpasswd.lint - -newusers: newusers.o libshadow.a - $(CC) -o newusers $(LDFLAGS) newusers.o libshadow.a $(LIBS) - -newusers.lint: newusers.c - $(LINT) $(LINTFLAGS) newusers.c > newusers.lint - -id: id.o libshadow.a - $(CC) -o id $(LDFLAGS) id.o libshadow.a $(LIBS) - -id.lint: id.c - $(LINT) $(LINTFLAGS) id.c > id.lint - -groups: groups.o libshadow.a - $(CC) -o groups $(LDFLAGS) groups.o libshadow.a $(LIBS) - -groups.lint: groups.c - $(LINT) $(LINTFLAGS) groups.c > groups.lint - -useradd: useradd.o copydir.o mkrmdir.o libshadow.a - $(CC) -o useradd $(LDFLAGS) useradd.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -useradd.lint: useradd.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) useradd.c copydir.c mkrmdir.c > useradd.lint - -userdel: userdel.o copydir.o mkrmdir.o libshadow.a - $(CC) -o userdel $(LDFLAGS) userdel.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -userdel.lint: userdel.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) userdel.c copydir.c mkrmdir.c > userdel.lint - -usermod: usermod.o copydir.o mkrmdir.o chowndir.o libshadow.a - $(CC) -o usermod $(LDFLAGS) usermod.o copydir.o mkrmdir.o \ - chowndir.o libshadow.a $(LIBS) $(NDIR) - -usermod.lint: usermod.c copydir.c mkrmdir.c chowndir.c - $(LINT) $(LINTFLAGS) usermod.c copydir.c mkrmdir.c \ - chowndir.c > usermod.lint - -groupadd: groupadd.o libshadow.a - $(CC) -o groupadd $(LDFLAGS) groupadd.o libshadow.a $(LIBS) - -groupadd.lint: groupadd.c - $(LINT) $(LINTFLAGS) groupadd.c > groupadd.lint - -groupdel: groupdel.o libshadow.a - $(CC) -o groupdel $(LDFLAGS) groupdel.o libshadow.a $(LIBS) - -groupdel.lint: groupdel.c - $(LINT) $(LINTFLAGS) groupdel.c > groupdel.lint - -groupmod: groupmod.o libshadow.a - $(CC) -o groupmod $(LDFLAGS) groupmod.o libshadow.a $(LIBS) - -groupmod.lint: groupmod.c - $(LINT) $(LINTFLAGS) groupmod.c > groupmod.lint - -logoutd: logoutd.o libshadow.a - $(CC) -o logoutd $(LDFLAGS) logoutd.o libshadow.a - -logoutd.lint: logoutd.c - $(LINT) $(LINTFLAGS) logoutd.c > logoutd.lint - -pwck: pwck.o libshadow.a - $(CC) -o pwck $(LDFLAGS) pwck.o libshadow.a $(LIBS) - -pwck.lint: pwck.c - $(LINT) $(LINTFLAGS) pwck.c > pwck.lint - -grpck: grpck.o libshadow.a - $(CC) -o grpck $(LDFLAGS) grpck.o libshadow.a $(LIBS) - -grpck.lint: grpck.c - $(LINT) $(LINTFLAGS) grpck.c > grpck.lint - -expiry: expiry.o age.o libshadow.a - $(CC) -o expiry $(LDFLAGS) expiry.o age.o libshadow.a $(LIBS) - -expiry.lint: expiry.c - $(LINT) $(LINTFLAGS) expiry.c > expiry.lint - -sulog.o: config.h - -susetup.c: setup.c - cp setup.c susetup.c - -susetup.o: config.h susetup.c $(PWD) - $(CC) -c $(CFLAGS) -DSU susetup.c - -passwd.o: config.h $(SHADOW) $(PWD) pwauth.h -lmain.o: config.h lastlog.h faillog.h $(PWD) pwauth.h -smain.o: config.h lastlog.h $(PWD) $(SHADOW) pwauth.h -sub.o: $(PWD) -setup.o: config.h $(PWD) -mkrmdir.o: config.h -utmp.o: config.h -mail.o: config.h -motd.o: config.h -age.o: config.h gshadow.h $(PWD) -log.o: config.h lastlog.h $(PWD) -lastlog.o: lastlog.h -shell.o: config.h -entry.o: config.h $(SHADOW) $(PWD) -hushed.o: config.h $(PWD) -valid.o: config.h $(PWD) -failure.o: faillog.h config.h -faillog.o: faillog.h config.h $(PWD) -newgrp.o: config.h $(SHADOW) $(PWD) -mkpasswd.o: config.h $(SHADOW) $(PWD) -gpmain.o: config.h $(PWD) -chfn.o: config.h $(PWD) -chsh.o: config.h $(PWD) -chage.o: config.h $(SHADOW) $(PWD) -pwconv.o: config.h $(SHADOW) -pwunconv.o: config.h $(SHADOW) $(PWD) -chpasswd.o: config.h $(SHADOW) $(PWD) -id.o: $(PWD) -newusers.o: config.h $(SHADOW) $(PWD) -dpmain.o: config.h dialup.h -useradd.o: config.h $(SHADOW) $(PWD) pwauth.h gshadow.h -userdel.o: config.h $(SHADOW) $(PWD) pwauth.h gshadow.h -usermod.o: config.h $(SHADOW) $(PWD) pwauth.h gshadow.h -groupadd.o: config.h gshadow.h -groupdel.o: config.h gshadow.h -groupmod.o: config.h gshadow.h -logoutd.o: config.h -sulogin.o: config.h pwauth.h -copydir.o: config.h -chowndir.o: config.h -pwck.o: config.h $(SHADOW) $(PWD) -grpck.o: config.h gshadow.h $(PWD) - -libshadow.a(shadow.o): $(SHADOW) config.h -libshadow.a(shadowio.o): $(SHADOW) config.h -libshadow.a(grent.o): config.h gshadow.h -libshadow.a(sgroupio.o): config.h gshadow.h -libshadow.a(dialup.o): dialup.h -libshadow.a(dialchk.o): dialup.h config.h -libshadow.a(getdef.o): config.h -libshadow.a(pwdbm.o): config.h $(PWD) -libshadow.a(spdbm.o): config.h $(SHADOW) -libshadow.a(grdbm.o): config.h -libshadow.a(gsdbm.o): config.h gshadow.h -libshadow.a(pwauth.o): config.h pwauth.h -libshadow.a(pwpack.o): config.h $(PWD) -libshadow.a(pwent.o): config.h $(PWD) -libshadow.a(pwio.o): $(PWD) -libshadow.a(getpass.o): config.h -libshadow.a(encrypt.o): config.h -libshadow.a(port.o): port.h -libshadow.a(rad64.o): config.h -libshadow.a(lockpw.o): -libshadow.a(gspack.o): config.h gshadow.h -libshadow.a(list.o): -libshadow.a(strtoday.o): config.h -libshadow.a(xmalloc.o): -libshadow.a(basename.o): -libshadow.a(isexpired.o): config.h $(SHADOW) - -clean: - -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir - -clobber: clean - -rm -f $(BINS) *.lint *.L libshadow.a - -nuke: clobber - -for file in * ; do \ - if [ -f s.$$file -a ! -f p.$$file ] ; then \ - rm -f $$file ;\ - fi ;\ - done - -shar: login.sh.01 login.sh.02 login.sh.03 login.sh.04 login.sh.05 \ - login.sh.06 login.sh.07 login.sh.08 login.sh.09 login.sh.10 \ - login.sh.11 login.sh.12 - -login.sh.01: $(FILES1) Makefile - shar -a $(FILES1) > login.sh.01 - -login.sh.02: $(FILES2) Makefile - shar -a $(FILES2) > login.sh.02 - -login.sh.03: $(FILES3) Makefile - shar -a $(FILES3) > login.sh.03 - -login.sh.04: $(FILES4) Makefile - shar -a $(FILES4) > login.sh.04 - -login.sh.05: $(FILES5) Makefile - shar -a $(FILES5) > login.sh.05 - -login.sh.06: $(FILES6) Makefile - shar -a $(FILES6) > login.sh.06 - -login.sh.07: $(FILES7) Makefile - shar -a $(FILES7) > login.sh.07 - -login.sh.08: $(FILES8) Makefile - shar -a $(FILES8) > login.sh.08 - -login.sh.09: $(FILES9) Makefile - shar -a $(FILES9) > login.sh.09 - -login.sh.10: $(DOCS1) Makefile - shar -a $(DOCS1) > login.sh.10 - -login.sh.11: $(DOCS2) Makefile - shar -a $(DOCS2) > login.sh.11 - -login.sh.12: $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) Makefile - shar -a $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) > login.sh.12 diff --git a/old/Makefile.xenix b/old/Makefile.xenix deleted file mode 100644 index 43689199..00000000 --- a/old/Makefile.xenix +++ /dev/null @@ -1,723 +0,0 @@ -# -# Copyright 1988 - 1994, Julianne Frances Haugh -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Julianne F. Haugh nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. -# -# %W% %U% - Shadow password system -# -# $Id: Makefile.xenix,v 1.2 1997/05/01 23:11:55 marekm Exp $ -# -SHELL = /bin/sh - -# -# Set this flag to decide what level of code "get" returns. -# The base USENET release was release 1. It is no longer supported. -# The version with the utilities added was release 2. It is now unsupported. -# The version with database-like file access is release 3. -RELEASE = 3 -VERSION = ver3.3.2 -GFLAGS = -n $(VERSION) -GET = get_file - -# Define the directory login is copied to. BE VERY CAREFUL!!! BSD old SunOS -# seems to use /bin, USG seems to use /etc, SunOS 4.1.1 seems to use /usr/bin. -# If you define SCOLOGIN, you MUST use /etc as LOGINDIR. -# LOGINDIR = /bin -LOGINDIR = /etc -# LOGINDIR = /usr/bin - -# Define any special libraries required to access the directory routines. -# Some systems require -lndir for the directory routines. SCO Xenix uses -# -lx for that. Your system might need nothing. -# NDIR = -lndir -NDIR = -lx -# NDIR = - -# Define some stuff for Cracklib. This assumes that libcracklib.a is -# in a system directory. -# CRACKDEF='-DUSE_CRACKLIB' -# CRACKLIB=-lcrack - -# Pick your favorite C compiler and tags command -CC = cc -TAGS = ctags - -# OS. Pick one of USG (AT&T, SYSV, SYS3), BSD, SUN (SunOS 2 and 3), -# SUN4 (SunOS 4.1.1.), UNIXPC (AT&T PC/7300, 3B1), or AIX (AIX v3) -# OS = -DUSG -DSYS3 -OS = -DUSG -# OS = -DBSD -# OS = -DSUN -# OS = -DSUN4 -# OS = -DUSG -DUNIXPC -# OS = -DAIX - -# Do you have to do ranlib (probably SUN, BSD and XENIX)? -RANLIB = ranlib -# RANLIB = echo - -# Enable the following if you are running SCO TCP/IP. It is a /bin/login -# which understands the *ahem* novel way they do rlogin/telnet. -# SCOLOGIN = scologin - -# Configuration Flags -# -# DEST_INCLUDE_DIR - local include files -# LIBS - system libraries -# -lsocket - needed for TCP/IP and possibly SYSLOG -# -ldbm or -lndbm - needed for DBM support -# -lcrypt - needed for SCO crypt() functions -# CFLAGS - C compiler flags -# -DLAI_TCP - needed for SCO Xenix Lachman TCP/IP - -DEST_INCLUDE_DIR = /usr/include - -# Flags for SCO Xenix/386 -CFLAGS = -O -M3 -g $(OS) -I$(DEST_INCLUDE_DIR) $(CRACKDEF) -LIBS = -lcrypt -lndbm -# LIBS = -lcrypt -ldbm -LDFLAGS = -M3 -g -LTFLAGS = - -# Flags for normal machines -# CFLAGS = -O -g $(OS) -I$(DEST_INCLUDE_DIR) $(CRACKDEF) -# LIBS = -# LDFLAGS = -g - -# Flags for SunOS 4.1.1 -# CFLAGS = -O2 $(OS) -I$(DEST_INCLUDE_DIR) $(CRACKDEF) -# LIBS = -# LDFLAGS = - -# This should be Slibsec.a for small model, or Llibsec.a for -# large model or whatever. MUST AGREE WITH CFLAGS!!! For non-Intel -# machines, just use libsec.a -LIBSEC = Slibsec.a -# LIBSEC = libsec.a - -# Names for root user and group, and bin user and group. See your -# /etc/passwd and /etc/group files. BSD and SUN use "wheel", most -# others use "root" for RGID. -RUID = root -RGID = root -# RGID = wheel -BUID = bin -BGID = bin - -# Where the login.defs file will be copied. Must agree with config.h -DEST_LOGIN_DEFS = /etc/login.defs - -# Rules for .L (lint) files. -.SUFFIXES: .L -LINT = lint -LINTFLAGS = $(OS) -Dlint - -.c.L: - $(LINT) -pxu $(LINTFLAGS) $*.c > $*.L - -LOBJS = lmain.o login.o env.o valid.o setup.o shell.o age.o \ - utmp.o sub.o mail.o motd.o log.o ttytype.o failure.o \ - tz.o console.o hushed.o - -LSRCS = lmain.c login.c env.c valid.c setup.c shell.c age.c \ - utmp.c sub.c mail.c motd.c log.c ttytype.c failure.c \ - tz.c console.c hushed.c - -SOBJS = smain.o env.o entry.o susetup.o shell.o \ - sub.o mail.o motd.o sulog.o age.o tz.o hushed.o - -SSRCS = smain.c env.c entry.c setup.c shell.c \ - pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ - tz.c hushed.c - -POBJS = passwd.o obscure.o -PSRCS = passwd.c obscure.c - -GPSRCS = gpmain.c - -GPOBJS = gpmain.o - -PWOBJS = pwconv.o - -PWSRCS = pwconv.c pwent.c shadow.c pwpack.c rad64.c - -PWUNOBJS = pwunconv.o - -PWUNSRCS = pwunconv.c pwent.c shadow.c pwpack.c rad64.c - -SULOGOBJS = sulogin.o entry.o env.o age.o setup.o \ - valid.o shell.o tz.o - -SULOGSRCS = sulogin.c entry.c env.c age.c pwent.c setup.c \ - shadow.c shell.c valid.c pwpack.c tz.c - -MKPWDOBJS = mkpasswd.o - -MKPWDSRCS = mkpasswd.c - -NGSRCS = newgrp.c env.c shell.c - -NGOBJS = newgrp.o env.o shell.o - -CHFNSRCS = chfn.c fields.c -CHFNOBJS = chfn.o fields.o -CHSHSRCS = chsh.c fields.c -CHSHOBJS = chsh.o fields.o -CHAGEOBJS = chage.o fields.o -CHAGESRCS = chage.c fields.c -CHPASSOBJS = chpasswd.o -CHPASSSRCS = chpasswd.c -DPSRCS = dpmain.c -DPOBJS = dpmain.o - -ALLSRCS = age.c dialchk.c dialup.c entry.c env.c lmain.c log.c login.c mail.c \ - motd.c obscure.c passwd.c pwconv.c pwent.c pwunconv.c getpass.c \ - setup.c shadow.c shell.c smain.c sub.c sulog.c sulogin.c ttytype.c \ - utmp.c valid.c port.c newgrp.c gpmain.c grent.c mkpasswd.c pwpack.c \ - chfn.c chsh.c chage.c rad64.c encrypt.c chpasswd.c shadowio.c pwio.c \ - newusers.c groupio.c fields.c pwdbm.c grpack.c grdbm.c sppack.c \ - spdbm.c dpmain.c gshadow.c gsdbm.c gspack.c sgroupio.c useradd.c \ - userdel.c patchlevel.h usermod.c copydir.c mkrmdir.c groupadd.c \ - groupdel.c groupmod.c tz.c console.c hushed.c getdef.c scologin.c \ - logoutd.c groups.c pwauth.c lockpw.c chowndir.c rename.c - -FILES1 = LICENSE README patchlevel.h newgrp.c Makefile config.h pwunconv.c obscure.c \ - age.c id.c - -FILES2 = passwd.c port.c lmain.c sulogin.c pwpack.c dialup.c expiry.c \ - gshadow.h - -FILES3 = chfn.c chsh.c smain.c faillog.c pwconv.c shadow.c pwck.c utent.c - -FILES4 = gpmain.c chage.c pwent.c valid.c setup.c entry.c ttytype.c port.h - -FILES5 = pwio.c encrypt.c chpasswd.c newusers.c rad64.c dialchk.c faillog.h \ - pwdbm.c grdbm.c gshadow.c sppack.c grpck.c - -FILES6 = gspack.c spdbm.c lastlog.h shell.c login.c sub.c dpmain.c mail.c \ - env.c pwd.h.m4 grpack.c shadow.h log.c grent.c motd.c dialup.h \ - fields.c gsdbm.c utmp.c failure.c - -FILES7 = groupio.c shadowio.c sgroupio.c groups.c copydir.c mkrmdir.c \ - mkpasswd.c pwauth.c pwauth.h lastlog.c - -FILES8 = useradd.c usermod.c login.defs rename.c - -FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \ - scologin.c logoutd.c sulog.c getpass.c userdel.c lockpw.c chowndir.c - -FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4 -FILES_SVR4 = Makefile.svr4 config.h.svr4 -FILES_LINUX = Makefile.linux config.h.linux - -MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \ - useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \ - groups.1 pwck.1 grpck.1 -MAN_3 = shadow.3 pwauth.3 -MAN_4 = faillog.4 passwd.4 porttime.4 shadow.4 -MAN_5 = login.5 -MAN_8 = chpasswd.8 dpasswd.8 faillog.8 newusers.8 pwconv.8 pwunconv.8 \ - sulogin.8 mkpasswd.8 logoutd.8 pwauth.8 lastlog.8 - -DOCS1 = $(MAN_1) $(MAN_3) $(MAN_4) -DOCS2 = $(MAN_5) $(MAN_8) -DOCS = $(DOCS1) $(DOCS2) - -BINS = su login pwconv pwunconv passwd sulogin faillog newgrp sg gpasswd \ - mkpasswd chfn chsh chage chpasswd newusers dpasswd id useradd \ - userdel usermod groupadd groupdel groupmod $(SCOLOGIN) logoutd \ - groups pwck grpck lastlog expiry - -all: $(BINS) $(DOCS) - -.PRECIOUS: libshadow.a - -libshadow.a: \ - libshadow.a(dialchk.o) \ - libshadow.a(dialup.o) \ - libshadow.a(encrypt.o) \ - libshadow.a(getdef.o) \ - libshadow.a(getpass.o) \ - libshadow.a(grdbm.o) \ - libshadow.a(grent.o) \ - libshadow.a(groupio.o) \ - libshadow.a(grpack.o) \ - libshadow.a(gshadow.o) \ - libshadow.a(gsdbm.o) \ - libshadow.a(gspack.o) \ - libshadow.a(sgroupio.o) \ - libshadow.a(port.o) \ - libshadow.a(pwdbm.o) \ - libshadow.a(pwent.o) \ - libshadow.a(pwio.o) \ - libshadow.a(pwpack.o) \ - libshadow.a(pwauth.o) \ - libshadow.a(rad64.o) \ - libshadow.a(spdbm.o) \ - libshadow.a(shadow.o) \ - libshadow.a(shadowio.o) \ - libshadow.a(sppack.o) \ - libshadow.a(lockpw.o) \ - libshadow.a(rename.o) \ - libshadow.a(utent.o) \ - libshadow.a(list.o) \ - libshadow.a(strtoday.o) \ - libshadow.a(basename.o) \ - libshadow.a(isexpired.o) \ - libshadow.a(xmalloc.o) - $(RANLIB) libshadow.a - -libsec: $(LIBSEC)(shadow.o) - $(RANLIB) $(LIBSEC) - -save: - [ ! -d save ] && mkdir save - -cp $(LOGINDIR)/login save - -cp /etc/mkpasswd /etc/pwconv /etc/pwunconv /etc/sulogin /etc/chpasswd \ - /etc/newusers /etc/useradd /etc/userdel /etc/usermod \ - /etc/groupadd /etc/groupdel /etc/groupmod /etc/logoutd \ - /etc/login.defs /etc/pwck /etc/grpck /bin/expiry save - -cp /bin/su /bin/passwd /bin/gpasswd /bin/dpasswd /bin/faillog \ - /bin/newgrp /bin/chfn /bin/chsh /bin/chage /bin/id \ - /bin/scologin save - -cp $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/shadow.h \ - $(DEST_INCLUDE_DIR)/pwd.h $(DEST_INCLUDE_DIR)/gshadow.h save - -restore: - [ -d save ] - -(cd save ; cp login $(LOGINDIR) ) - -(cd save ; -cp mkpasswd pwconv pwunconv sulogin chpasswd \ - newusers useradd userdel usermod groupadd groupdel groupmod \ - logoutd login.defs pwck grpck /etc) - -(cd save ; cp su passwd gpasswd dpasswd faillog newgrp chfn chsh \ - chage id scologin expiry /bin) - -(cd save ; cp dialup.h shadow.h pwd.h gshadow.h $(DEST_INCLUDE_DIR) ) - -install: all - strip $(BINS) - cp login $(LOGINDIR)/login - cp mkpasswd pwconv pwunconv sulogin chpasswd newusers \ - useradd userdel usermod groupadd groupdel groupmod logoutd \ - pwck grpck /etc - cp su passwd gpasswd dpasswd faillog newgrp chfn chsh chage id /bin - rm -f /bin/sg - ln /bin/newgrp /bin/sg - cp dialup.h shadow.h pwd.h gshadow.h $(DEST_INCLUDE_DIR) - chown $(RUID) $(LOGINDIR)/login /etc/pwconv /etc/pwunconv /etc/sulogin \ - /bin/su /bin/passwd /bin/gpasswd /bin/newgrp /etc/mkpasswd \ - /bin/dpasswd /bin/chsh /bin/chfn /bin/chage /etc/useradd \ - /etc/userdel /etc/usermod /etc/groupadd /etc/groupdel \ - /etc/groupmod /etc/logoutd /etc/pwck /etc/grpck /bin/expiry - chgrp $(RGID) $(LOGINDIR)/login /etc/pwconv /etc/pwunconv /etc/sulogin \ - /bin/su /bin/passwd /bin/gpasswd /bin/newgrp /etc/mkpasswd \ - /bin/dpasswd /bin/chsh /bin/chfn /bin/chage /etc/useradd \ - /etc/userdel /etc/usermod /etc/groupadd /etc/groupdel \ - /etc/groupmod /etc/logoutd /etc/pwck /etc/grpck /bin/expiry - chown $(BUID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \ - $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/pwd.h \ - $(DEST_INCLUDE_DIR)/gshadow.h - chgrp $(BGID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \ - $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/pwd.h \ - $(DEST_INCLUDE_DIR)/gshadow.h - chmod 700 /etc/pwconv /etc/pwunconv /etc/sulogin /etc/mkpasswd \ - /etc/chpasswd /etc/newusers /bin/dpasswd /etc/logoutd \ - /etc/useradd /etc/userdel /etc/usermod /etc/groupadd \ - /etc/groupdel /etc/groupmod /etc/pwck /etc/grpck - chmod 4711 $(LOGINDIR)/login /bin/su /bin/passwd /bin/gpasswd \ - /bin/newgrp /bin/chfn /bin/chsh /bin/chage /bin/expiry - chmod 711 /bin/faillog /bin/id - chmod 444 $(DEST_INCLUDE_DIR)/shadow.h $(DEST_INCLUDE_DIR)/dialup.h \ - $(DEST_INCLUDE_DIR)/pwd.h $(DEST_INCLUDE_DIR)/gshadow.h - [ -f $(DEST_LOGIN_DEFS) ] || (cp login.defs $(DEST_LOGIN_DEFS) ; \ - chown $(RUID) $(DEST_LOGIN_DEFS) ; \ - chgrp $(RGID) $(DEST_LOGIN_DEFS) ; \ - chmod 600 $(DEST_LOGIN_DEFS) ) - [ -z "$(SCOLOGIN)" ] || (cp scologin /bin/login ; \ - chown $(RUID) /bin/login ; \ - chgrp $(RGID) /bin/login ; \ - chmod 755 /bin/login ) - -lint: su.lint login.lint pwconv.lint pwunconv.lint passwd.lint sulogin.lint \ - faillog.lint newgrp.lint gpasswd.lint mkpasswd.lint chfn.lint \ - chsh.lint chage.lint dpasswd.lint id.lint useradd.lint userdel.lint \ - usermod.lint groupadd.lint groupdel.lint groupmod.lint logoutd.lint \ - pwck.lint grpck.lint expiry.lint \ - $(ALLSRCS:.c=.L) - -tags: $(ALLSRCS) - $(TAGS) $(ALLSRCS) - -README: - [ -f s.README ] && $(GET) $(GFLAGS) s.README - -$(DOCS): - [ -f s.$@ ] && $(GET) $(GFLAGS) s.$@ - -login.defs: - [ -f s.login.defs ] && $(GET) $(GFLAGS) s.login.defs - -Makefile.sun4: - [ -f s.Makefile.sun4 ] && $(GET) $(GFLAGS) s.Makefile.sun4 - -Makefile.svr4: - [ -f s.Makefile.svr4 ] && $(GET) $(GFLAGS) s.Makefile.svr4 - -README.sun4: - [ -f s.README.sun4 ] && $(GET) $(GFLAGS) s.README.sun4 - -config.h.sun4: - [ -f s.config.h.sun4 ] && $(GET) $(GFLAGS) s.config.h.sun4 - -config.h.svr4: - [ -f s.config.h.svr4 ] && $(GET) $(GFLAGS) s.config.h.svr4 - -login: $(LOBJS) libshadow.a - $(CC) -o login $(LDFLAGS) $(LOBJS) libshadow.a $(LIBS) - -login.lint: $(LSRCS) - $(LINT) $(LINTFLAGS) $(LSRCS) > login.lint - -su: $(SOBJS) libshadow.a - $(CC) -o su $(LDFLAGS) $(SOBJS) libshadow.a $(LIBS) - -su.lint: $(SSRCS) - $(LINT) $(LINTFLAGS) -DSU $(SSRCS) > su.lint - -passwd: $(POBJS) libshadow.a - $(CC) -o passwd $(LDFLAGS) $(POBJS) libshadow.a $(LIBS) $(CRACKLIB) - -passwd.lint: $(PSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PSRCS) > passwd.lint - -gpasswd: $(GPOBJS) libshadow.a - $(CC) -o gpasswd $(LDFLAGS) $(GPOBJS) libshadow.a $(LIBS) - -gpasswd.lint: $(GPSRCS) - $(LINT) $(LINTFLAGS) $(GPSRCS) > gpasswd.lint - -dpasswd: $(DPOBJS) libshadow.a - $(CC) -o dpasswd $(LDFLAGS) $(DPOBJS) libshadow.a $(LIBS) - -dpasswd.lint: $(DPSRCS) - $(LINT) $(LINTFLAGS) $(DPSRCS) > dpasswd.lint - -pwconv: $(PWOBJS) libshadow.a config.h - $(CC) -o pwconv $(LDFLAGS) $(PWOBJS) libshadow.a $(LIBS) - -pwconv.lint: $(PWSRCS) config.h - $(LINT) $(LINTFLAGS) -DPASSWD $(PWSRCS) > pwconv.lint - -pwunconv: $(PWUNOBJS) libshadow.a config.h - $(CC) -o pwunconv $(LDFLAGS) $(PWUNOBJS) libshadow.a $(LIBS) - -pwunconv.lint: $(PWUNSRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(PWUNSRCS) > pwunconv.lint - -sulogin: $(SULOGOBJS) libshadow.a - $(CC) -o sulogin $(LDFLAGS) $(SULOGOBJS) libshadow.a $(LIBS) - -sulogin.lint: $(SULOGSRCS) - $(LINT) $(LINTFLAGS) $(SULOGSRCS) > sulogin.lint - -faillog: faillog.o - $(CC) -o faillog $(LDFLAGS) faillog.o $(LIBS) - -faillog.lint: faillog.c faillog.h config.h - $(LINT) $(LINTFLAGS) faillog.c > faillog.lint - -lastlog: lastlog.o - $(CC) -o lastlog $(LDFLAGS) lastlog.o $(LIBS) - -lastlog.lint: lastlog.c config.h lastlog.h - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > lastlog.lint - -mkpasswd: $(MKPWDOBJS) libshadow.a - $(CC) -o mkpasswd $(LDFLAGS) $(MKPWDOBJS) libshadow.a $(LIBS) - -mkpasswd.lint: $(MKPWDSRCS) - $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > mkpasswd.lint - -newgrp: $(NGOBJS) libshadow.a - $(CC) -o newgrp $(LDFLAGS) $(NGOBJS) libshadow.a $(LIBS) - -newgrp.lint: $(NGSRCS) - $(LINT) $(LINTFLAGS) $(NGSRCS) > newgrp.lint - -sg: newgrp - rm -f sg - ln newgrp sg - -sg.lint: newgrp.lint - ln newgrp.lint sg.lint - -chfn: $(CHFNOBJS) libshadow.a - $(CC) -o chfn $(LDFLAGS) $(CHFNOBJS) libshadow.a $(LIBS) - -chfn.lint: $(CHFNSRCS) - $(LINT) $(LINTFLAGS) $(CHFNSRCS) > chfn.lint - -chsh: $(CHSHOBJS) libshadow.a - $(CC) -o chsh $(LDFLAGS) $(CHSHOBJS) libshadow.a $(LIBS) - -chsh.lint: $(CHSHSRCS) - $(LINT) $(LINTFLAGS) $(CHSHSRCS) > chsh.lint - -chage: $(CHAGEOBJS) libshadow.a - $(CC) -o chage $(LDFLAGS) $(CHAGEOBJS) libshadow.a $(LIBS) - -chage.lint: $(CHAGESRCS) - $(LINT) $(LINTFLAGS) -DPASSWD $(CHAGESRCS) > chage.lint - -chpasswd: $(CHPASSOBJS) libshadow.a - $(CC) -o chpasswd $(LDFLAGS) $(CHPASSOBJS) libshadow.a $(LIBS) - -chpasswd.lint: $(CHPASSSRCS) - $(LINT) $(LINTFLAGS) $(CHPASSSRCS) > chpasswd.lint - -newusers: newusers.o libshadow.a - $(CC) -o newusers $(LDFLAGS) newusers.o libshadow.a $(LIBS) - -newusers.lint: newusers.c - $(LINT) $(LINTFLAGS) newusers.c > newusers.lint - -id: id.o libshadow.a - $(CC) -o id $(LDFLAGS) id.o libshadow.a $(LIBS) - -id.lint: id.c - $(LINT) $(LINTFLAGS) id.c > id.lint - -groups: groups.o libshadow.a - $(CC) -o groups $(LDFLAGS) groups.o libshadow.a $(LIBS) - -groups.lint: groups.c - $(LINT) $(LINTFLAGS) groups.c > groups.lint - -useradd: useradd.o copydir.o mkrmdir.o libshadow.a - $(CC) -o useradd $(LDFLAGS) useradd.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -useradd.lint: useradd.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) useradd.c copydir.c mkrmdir.c > useradd.lint - -userdel: userdel.o copydir.o mkrmdir.o libshadow.a - $(CC) -o userdel $(LDFLAGS) userdel.o copydir.o mkrmdir.o \ - libshadow.a $(LIBS) $(NDIR) - -userdel.lint: userdel.c copydir.c mkrmdir.c - $(LINT) $(LINTFLAGS) userdel.c copydir.c mkrmdir.c > userdel.lint - -usermod: usermod.o copydir.o mkrmdir.o chowndir.o libshadow.a - $(CC) -o usermod $(LDFLAGS) usermod.o copydir.o mkrmdir.o \ - chowndir.o libshadow.a $(LIBS) $(NDIR) - -usermod.lint: usermod.c copydir.c mkrmdir.c chowndir.c - $(LINT) $(LINTFLAGS) usermod.c copydir.c mkrmdir.c \ - chowndir.c > usermod.lint - -groupadd: groupadd.o libshadow.a - $(CC) -o groupadd $(LDFLAGS) groupadd.o libshadow.a $(LIBS) - -groupadd.lint: groupadd.c - $(LINT) $(LINTFLAGS) groupadd.c > groupadd.lint - -groupdel: groupdel.o libshadow.a - $(CC) -o groupdel $(LDFLAGS) groupdel.o libshadow.a $(LIBS) - -groupdel.lint: groupdel.c - $(LINT) $(LINTFLAGS) groupdel.c > groupdel.lint - -groupmod: groupmod.o libshadow.a - $(CC) -o groupmod $(LDFLAGS) groupmod.o libshadow.a $(LIBS) - -groupmod.lint: groupmod.c - $(LINT) $(LINTFLAGS) groupmod.c > groupmod.lint - -pwd.h.m4: - [ -f s.pwd.h.m4 ] && $(GET) $(GFLAGS) s.pwd.h.m4 - -pwd.h: pwd.h.m4 Makefile - m4 $(OS) < pwd.h.m4 > pwd.h - -logoutd: logoutd.o libshadow.a - $(CC) -o logoutd $(LDFLAGS) logoutd.o libshadow.a - -logoutd.lint: logoutd.c - $(LINT) $(LINTFLAGS) logoutd.c > logoutd.lint - -pwck: pwck.o libshadow.a - $(CC) -o pwck $(LDFLAGS) pwck.o libshadow.a $(LIBS) - -pwck.lint: pwck.c - $(LINT) $(LINTFLAGS) pwck.c > pwck.lint - -grpck: grpck.o libshadow.a - $(CC) -o grpck $(LDFLAGS) grpck.o libshadow.a $(LIBS) - -grpck.lint: grpck.c - $(LINT) $(LINTFLAGS) grpck.c > grpck.lint - -expiry: expiry.o age.o libshadow.a - $(CC) -o expiry $(LDFLAGS) age.o expiry.o libshadow.a $(LIBS) - -expiry.lint: expiry.c - $(LINT) $(LINTFLAGS) expiry.c > expiry.lint - -sulog.o: config.h - -susetup.c: setup.c - cp setup.c susetup.c - -susetup.o: config.h susetup.c pwd.h - $(CC) -c $(CFLAGS) -DSU susetup.c - -scologin: scologin.o - $(CC) -o scologin $(LDFLAGS) scologin.o -lsocket - -passwd.o: config.h shadow.h pwd.h pwauth.h -lmain.o: config.h lastlog.h faillog.h pwd.h pwauth.h -smain.o: config.h lastlog.h pwd.h shadow.h pwauth.h -sub.o: pwd.h -setup.o: config.h pwd.h -mkrmdir.o: config.h -utmp.o: config.h -mail.o: config.h -motd.o: config.h -age.o: config.h pwd.h gshadow.h -log.o: config.h lastlog.h pwd.h -lastlog.o: lastlog.h -shell.o: config.h -entry.o: config.h shadow.h pwd.h -hushed.o: config.h pwd.h -valid.o: config.h pwd.h -failure.o: faillog.h config.h -faillog.o: faillog.h config.h pwd.h -newgrp.o: config.h shadow.h gshadow.h pwd.h -mkpasswd.o: config.h shadow.h gshadow.h pwd.h -gpmain.o: config.h pwd.h gshadow.h -chfn.o: config.h pwd.h -chsh.o: config.h pwd.h -chage.o: config.h shadow.h pwd.h -pwconv.o: config.h shadow.h -pwunconv.o: config.h shadow.h pwd.h -chpasswd.o: config.h shadow.h pwd.h -id.o: pwd.h -newusers.o: config.h shadow.h pwd.h -dpmain.o: config.h dialup.h -useradd.o: config.h shadow.h pwd.h pwauth.h gshadow.h -userdel.o: config.h shadow.h pwd.h pwauth.h gshadow.h -usermod.o: config.h shadow.h pwd.h pwauth.h gshadow.h -groupadd.o: config.h gshadow.h -groupdel.o: config.h gshadow.h -groupmod.o: config.h gshadow.h -logoutd.o: config.h -sulogin.o: config.h pwauth.h -copydir.o: config.h -chowndir.o: config.h -pwck.o: config.h shadow.h pwd.h -grpck.o: config.h pwd.h gshadow.h - -libshadow.a(shadow.o): shadow.h config.h -libshadow.a(shadowio.o): shadow.h config.h -libshadow.a(grent.o): config.h gshadow.h -libshadow.a(groupio.o): config.h -libshadow.a(sgroupio.o): config.h gshadow.h -libshadow.a(dialup.o): dialup.h -libshadow.a(dialchk.o): dialup.h config.h -libshadow.a(getdef.o): config.h -libshadow.a(pwdbm.o): config.h pwd.h -libshadow.a(spdbm.o): config.h shadow.h -libshadow.a(grdbm.o): config.h -libshadow.a(gshadow.o): config.h -libshadow.a(gsdbm.o): config.h gshadow.h -libshadow.a(pwauth.o): config.h pwauth.h -libshadow.a(pwpack.o): config.h pwd.h -libshadow.a(pwent.o): config.h pwd.h -libshadow.a(pwio.o): pwd.h config.h -libshadow.a(getpass.o): config.h -libshadow.a(encrypt.o): config.h -libshadow.a(port.o): port.h -libshadow.a(rad64.o): config.h -libshadow.a(lockpw.o): -libshadow.a(rename.o): config.h -libshadow.a(gspack.o): config.h gshadow.h -libshadow.a(list.o): -libshadow.a(strtoday.o): config.h -libshadow.a(xmalloc.o): -libshadow.a(basename.o): -libshadow.a(isexpired.o): config.h shadow.h - -clean: - -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir pwd.h - -clobber: clean - -rm -f $(BINS) *.lint *.L libshadow.a - -nuke: clobber - -for file in * ; do \ - if [ -f s.$$file -a ! -f p.$$file ] ; then \ - rm -f $$file ;\ - fi ;\ - done - -shar: login.sh.01 login.sh.02 login.sh.03 login.sh.04 login.sh.05 \ - login.sh.06 login.sh.07 login.sh.08 login.sh.09 login.sh.10 \ - login.sh.11 login.sh.12 - -login.sh.01: $(FILES1) Makefile - shar -Dc $(FILES1) > login.sh.01 - -login.sh.02: $(FILES2) Makefile - shar -Dc $(FILES2) > login.sh.02 - -login.sh.03: $(FILES3) Makefile - shar -Dc $(FILES3) > login.sh.03 - -login.sh.04: $(FILES4) Makefile - shar -Dc $(FILES4) > login.sh.04 - -login.sh.05: $(FILES5) Makefile - shar -Dc $(FILES5) > login.sh.05 - -login.sh.06: $(FILES6) Makefile - shar -Dc $(FILES6) > login.sh.06 - -login.sh.07: $(FILES7) Makefile - shar -Dc $(FILES7) > login.sh.07 - -login.sh.08: $(FILES8) Makefile - shar -Dc $(FILES8) > login.sh.08 - -login.sh.09: $(FILES9) Makefile - shar -Dc $(FILES9) > login.sh.09 - -login.sh.10: $(DOCS1) Makefile - shar -Dc $(DOCS1) > login.sh.10 - -login.sh.11: $(DOCS2) Makefile - shar -Dc $(DOCS2) > login.sh.11 - -login.sh.12: $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) Makefile - shar -Dc $(FILES_SUN4) $(FILES_SVR4) $(FILES_LINUX) > login.sh.12 diff --git a/old/config.h.linux b/old/config.h.linux deleted file mode 100644 index cdab702d..00000000 --- a/old/config.h.linux +++ /dev/null @@ -1,454 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Configuration file for login. - * - * $Id: config.h.linux,v 1.2 1997/05/01 23:11:57 marekm Exp $ - */ - -#ifndef _CONFIG_H -#define _CONFIG_H - -#ifdef __linux__ -#include <sys/types.h> -#include <sys/param.h> -#include <stdio.h> -#endif - -/* - * Pathname to the run-time configuration definitions file. - */ - -#define LOGINDEFS "/etc/login.defs" - -/* - * Define SHADOWPWD to use shadow [ unreadable ] password file. - * Release 3 has a requirement that SHADOWPWD always be defined. - */ - -#define SHADOWPWD - -/* - * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd - * for getpwuid() and getpwnam(). This provides compatibility for - * privileged applications which are shadow-ignorant. YOU ARE - * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY. - */ -/* - * Yes, don't do it (and don't build libc with the SHADOW_COMPAT=true - * option) unless you REALLY know what you're doing. It might work, - * but can lead to unshadowing your passwords. This is not the right - * way to support shadow passwords! You have been warned. --marekm - */ - -#undef AUTOSHADOW - -/* - * Define SHADOWGRP to user shadowed group files. This feature adds - * the concept of a group administrator. You MUST NOT define this - * if you disable SHADOWPWD. - */ - -#define SHADOWGRP /**/ - -/* - * Define these if you have shadow password/group support functions in - * your version of libc. This removes these functions from libshadow.a - * (the ones from libc will be used instead). - * - * Finally upgraded to ELF, so... - */ -#define HAVE_SHADOWPWD -#define HAVE_SHADOWGRP - -/* - * Define MD5_CRYPT to support the MD5-based password hashing algorithm - * compatible with FreeBSD. All programs using pw_encrypt() instead of - * crypt() will understand both styles: old (standard, DES-based), and - * new (MD5-based). - * - * This means that it is possible to copy encrypted passwords from FreeBSD. - * Programs to change passwords (like passwd) will still use the old style - * crypt() for compatibility. - * - * To enable the use of the new crypt() for new passwords (if you don't - * need to copy them to other systems, except FreeBSD and Linux), set the - * MD5_CRYPT option in /etc/login.defs to "yes". - * - * This algorithm supports passwords of any length (the getpass() limit - * is 127 on Linux) and salt strings up to 8 (instead of 2) characters. - * - * This is experimental, and currently requires that all programs use - * pw_encrypt() from libshadow.a instead of crypt() from libc. This is - * problematic especially on ELF systems (libc5 has getspnam() so there - * is otherwise no need to link with the static libshadow.a). On most - * a.out systems you have to link with libshadow.a anyway, no problem. - */ - -#define MD5_CRYPT - -/* - * Define DOUBLESIZE to use 16 character passwords. Define SW_CRYPT - * to use 80 character passwords with SecureWare[tm]'s method of - * generating ciphertext. - * Not recommended because of some potential weaknesses. --marekm - */ - -#undef DOUBLESIZE -#undef SW_CRYPT - -/* - * Define SKEY to allow dual-mode SKEY/normal logins - */ - -#undef SKEY - -/* - * Define AGING if you want the password aging checks made. - * Release 3 has a requirement that AGING always be defined. - */ - -#define AGING - -/* - * Pick your version of DBM. If you define either DBM or NDBM, you must - * define GETPWENT. If you define NDBM you must define GETGRENT as well. - */ - -/* - * DBM support is untested, not recommended yet. It might make more - * sense if someone could add it to getpwnam() etc. in libc so that all - * programs (such as ls) can benefit from it. Any volunteers? - * - * The old DBM (as opposed to NDBM) support may be removed in a future - * release if no one complains. It's too braindamaged for the number - * of #ifdefs it adds (only one database per process at a time). - * - * On Linux, NDBM is actually implemented using GDBM, which is licensed - * under the GPL (not LGPL!) - I'm not sure if it is legal to link it - * with non-GPL code (such as the shadow suite). Consult your lawyers, - * or just modify the code to use db instead. Welcome to the wonderful - * world of copyrights. Yuck! - * - * The current DBM support code has a subtle design flaw. See my - * comment in pwdbm.c for details... - * - * Unless you have 2000 users or so, DBM probably doesn't make things - * much faster, and it does make things more complicated (= possibly - * more buggy). Do it only if you know what you're doing! --marekm - */ - -#undef DBM -#undef NDBM - -/* - * Define USE_SYSLOG if you want to have SYSLOG functions included in your code. - */ - -#define USE_SYSLOG - -/* - * Enable RLOGIN to support the "-r" and "-h" options. - * Also enable UT_HOST if your /etc/utmp provides for a host name. - */ - -#define RLOGIN -#define UT_HOST - -/* - * Define NO_RFLG to remove support for login -r flag if your system has - * a new-style rlogind which doesn't need it. --marekm - */ - -#define NO_RFLG - -/* - * Define the "success" code from ruserok(). Most modern systems use 0 - * for success and -1 for failure, while certain older versions use 1 - * for success and 0 for failure. Please check your manpage to be sure. - */ - -#define RUSEROK 0 - -/* - * Select one of the following - */ - -#undef DIR_XENIX /* include <sys/ndir.h>, use (struct direct) */ -#undef DIR_BSD /* include <ndir.h>, use (struct direct) */ -#define DIR_SYSV /* include <dirent.h>, use (struct dirent) */ - -/* - * Various system environment definitions. - */ - -/* - * Define if you have sgetgrent() in libc, to remove this function from - * libshadow.a (some versions of libc5 reportedly have it, most reports - * so far are from Red Hat 2.1 users, more information is welcome). - */ -#undef HAVE_SGETGRENT - -/* - * Only important if you compile with GETGRENT defined (use my getgr*() - * but still use fgetgrent() from libc if HAVE_FGETGRENT defined). - */ -#undef HAVE_FGETGRENT - -#define HAVE_SIGACTION -#define HAVE_GETUSERSHELL /* Define if your UNIX supports getusershell() */ -#define HAVE_LL_HOST /* Define if "struct lastlog" contains ll_host */ -#define HAVE_ULIMIT /* Define if your UNIX supports ulimit() */ -#define HAVE_RLIMIT /* Define if your UNIX supports setrlimit() */ -#undef GETPWENT /* Define if you want my GETPWENT(3) routines */ -#undef GETGRENT /* Define if you want my GETGRENT(3) routines */ -#define NEED_AL64 /* Define if library does not include a64l() */ -#undef NEED_MKDIR /* Define if system does not have mkdir() */ -#undef NEED_RMDIR /* Define if system does not have rmdir() */ -#undef NEED_RENAME /* Define if system does not have rename() */ -#undef NEED_STRSTR /* Define if library does not include strstr() */ -#undef NEED_PUTPWENT /* Define if library does not include putpwent()*/ -#define SIGTYPE void /* Type returned by signal() */ - -/* - * These definitions MUST agree with the values defined in <pwd.h>. - */ - -#undef BSD_QUOTA /* the pw_quota field exists */ -#undef ATT_AGE /* the pw_age field exists */ -#undef ATT_COMMENT /* the pw_comment field exists */ - -#define UID_T uid_t /* set to be the type of UID's */ -#define GID_T gid_t /* set to be the type of GID's */ - -#ifndef UID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define UID_T uid_t -#else -#define UID_T int -#endif -#endif - -#ifndef GID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define GID_T gid_t -#else -#define GID_T int -#endif -#endif - -/* - * Define NDEBUG for production versions - */ - -#define NDEBUG - -/* - * Define PWDFILE and GRPFILE to the names of the password and - * group files. //jiivee - */ - -#define PASSWD_FILE "/etc/passwd" -#define PASSWD_PAG_FILE "/etc/passwd.pag" -#define GROUP_FILE "/etc/group" -#define GROUP_PAG_FILE "/etc/group.pag" - -#ifdef SHADOWPWD -#define SHADOW_FILE "/etc/shadow" -#define SHADOW_PAG_FILE "/etc/shadow.pag" -#ifdef SHADOWGRP -#define SGROUP_FILE "/etc/gshadow" -#define SGROUP_PAG_FILE "/etc/gshadow.pag" -#endif -#endif - -/* - * The structure of the utmp file. There are two kinds of UTMP files, - * "BSD" and "USG". "BSD" has no PID or type information, "USG" does. - * If you define neither of these, the type will be defaulted by using - * BSD, SUN, SYS3 and USG defines. - */ - -#define _UTMP_FILE "/var/run/utmp" -#define _WTMP_FILE "/var/log/wtmp" - -#define USG_UTMP /**/ -/* #define BSD_UTMP */ - -#if !defined(USG_UTMP) && !defined(BSD_UTMP) -#if defined(BSD) || defined(SYS3) || defined(SUN) -#define BSD_UTMP -#else -#define USG_UTMP -#endif /* BSD || SYS3 || SUN */ -#endif /* !USG_UTMP || !BSD_UTMP */ - -/* - * From where to look for legal user shells - */ - -#ifndef SHELLS_FILE -#define SHELLS_FILE "/etc/shells" -#endif - -/* - * Default issue file location - */ - -#ifndef ISSUE_FILE -#define ISSUE_FILE "/etc/issue" -#endif - -/* - * Logoutd message file - */ - -#define HUP_MESG_FILE "/etc/logoutd.mesg" - -/* - * Mail spool directory. This is used if mailspool cannot be located otherwise - */ - -#ifndef MAIL_SPOOL_DIR -#define MAIL_SPOOL_DIR "/var/spool/mail" -#endif - -/* - * Where are new user default setup files kept - */ - -#define SKEL_DIR "/etc/skel" - -/* - * New user defaults. The NEW_USER_FILE must have 6 X's in the end of name - */ - -#define USER_DEFAULTS_FILE "/etc/default/useradd" -#define NEW_USER_FILE "/etc/default/nuaddXXXXXX" - -/* - * Telinit program. If your system uses /etc/telinit to change run - * level, define TELINIT and then define the RUNLEVEL macro to be the - * run-level to switch INIT to. This is used by sulogin to change - * from single user to multi-user mode. - * - * From bluca@www.polimi.it: instead, set up /etc/inittab properly - * ~0:S:wait:/sbin/sulogin - * ~9:S:wait:/sbin/telinit -t0 2 - */ - -#undef TELINIT -#undef PATH_TELINIT "/sbin/telinit" -#undef RUNLEVEL "2" - -/* - * Crontab and atrm. Used in userdel.c - see user_cancel(). Verify - * that these are correct for your distribution. --marekm - */ - -#if 0 /* old Slackware */ -#define CRONTAB_COMMAND "/usr/bin/crontab -d -u %s" -#define CRONTAB_FILE "/var/cron/tabs/%s" -#else -/* Debian 0.93R6 (marekm): */ -#define CRONTAB_COMMAND "/usr/bin/crontab -r -u %s" -#define CRONTAB_FILE "/var/spool/cron/crontabs/%s" -/* Red Hat 2.1 (jiivee@iki.fi): */ -/* #define CRONTAB_FILE "/var/spool/cron/%s" */ -#endif - -/* - * Hmmm, had to #undef this since at-2.8a on Linux doesn't have an option - * to remove all jobs owned by some user. - * - * Fortunately, atrun will not run any at jobs for users not listed in - * /etc/passwd. Unfortunately, if you remove a user and add a new user - * with the same UID before it is time to run the old at job, atrun will - * not notice this and run the old job. Not good. The best fix right - * now is to remove any at jobs left over by hand, and not reuse any - * previously used UID values. - * - * We probably should discuss this with the at maintainer... It might - * be better to store at jobs by user names, not UIDs. --marekm - */ - -#undef ATRM_COMMAND - -/* - * Login times log file location. - */ - -#define LASTLOG_FILE "/var/log/lastlog" - -/* - * Linux FSSTND recommends that the chfn, chsh, gpasswd, passwd commands - * are in /usr/bin, not /bin (not needed before mounting /usr). --marekm - */ - -#define CHFN_PROGRAM "/usr/bin/chfn" -#define CHSH_PROGRAM "/usr/bin/chsh" -#define GPASSWD_PROGRAM "/usr/bin/gpasswd" -#define PASSWD_PROGRAM "/usr/bin/passwd" - -/* - * On most Linux systems, the login prompt is "hostname login: ". Some - * automatic login scripts depend on it. If not defined, the default is - * just "login: ". %s is replaced by the hostname. --marekm - */ - -#define LOGIN_PROMPT "%s login: " - -/* - * Define to enable (warning: completely unsupported by me) administrator - * defined authentication methods. Most programs are not aware of them, - * so we can remove some code and possibly some bugs :-). PAM (when done) - * will replace much of this anyway... --marekm - */ - -/* #define AUTH_METHODS */ - -/* - * Define to enable detailed login access control (a la logdaemon/FreeBSD) - * and su access control (much more powerful/fascist than the traditional - * BSD-style "wheel group" feature). Any volunteers to convince the GNU - * folks that they should add access control to their version of su? - * Call me a fascist, but then I'll have to call you a communist :-). - */ - -#define LOGIN_ACCESS -#define SU_ACCESS - -/* see faillog.h for more info what it is */ -#define FAILLOG_LOCKTIME - -/* see lmain.c and login.defs.linux */ -#define CONSOLE_GROUPS - -#endif /* _CONFIG_H */ diff --git a/old/config.h.sun4 b/old/config.h.sun4 deleted file mode 100644 index 95527c05..00000000 --- a/old/config.h.sun4 +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Configuration file for login. - * - * $Id: config.h.sun4,v 1.2 1997/05/01 23:11:58 marekm Exp $ - * (SunOS 4.1.1) - */ - - -/* - * Pathname to the run-time configuration definitions file. - */ - -#define LOGINDEFS "/etc/login.defs" - -/* - * Define SHADOWPWD to use shadow [ unreadable ] password file. - * Release 3 has a requirement that SHADOWPWD always be defined. - */ - -#define SHADOWPWD - -/* - * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd - * for getpwuid() and getpwnam(). This provides compatibility for - * privileged applications which are shadow-ignorant. YOU ARE - * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY. - */ - -#undef AUTOSHADOW - -/* - * Define SHADOWGRP to user shadowed group files. This feature adds - * the concept of a group administrator. - */ - -#define SHADOWGRP /**/ - -/* - * Define DOUBLESIZE to use 16 character passwords. Define SW_CRYPT - * to use 80 character passwords with SecureWare[tm]'s method of - * generating ciphertext. - */ - -#define DOUBLESIZE -#undef SW_CRYPT - -/* - * Define SKEY to allow dual-mode SKEY/normal logins - */ - -#undef SKEY - -/* - * Define AGING if you want the password aging checks made. - * Release 3 has a requirement that AGING always be defined. - */ - -#define AGING - -/* - * Pick your version of DBM. If you define either DBM or NDBM, you must - * define GETPWENT. If you define NDBM you must define GETGRENT as well. - */ - -/* #define DBM /**/ -#define NDBM /**/ - -/* - * Define USE_SYSLOG if you want to have SYSLOG functions included in your code. - */ - -#define USE_SYSLOG - -/* - * Enable RLOGIN to support the "-r" and "-h" options. - * Also enable UT_HOST if your /etc/utmp provides for a host name. - */ - -#define RLOGIN -#define UT_HOST - -/* - * Define the "success" code from ruserok(). Most modern systems use 0 - * for success and -1 for failure, while certain older versions use 1 - * for success and 0 for failure. Please check your manpage to be sure. - */ - -#define RUSEROK 0 - -/* - * Select one of the following - */ - -/* #define DIR_XENIX /* include <sys/ndir.h>, use (struct direct) */ -/* #define DIR_BSD /* include <ndir.h>, use (struct direct) */ -#define DIR_SYSV /* include <dirent.h>, use (struct dirent) */ - -/* - * Various system environment definitions. - */ - -#define HAVE_LL_HOST /* Define if "struct lastlog" contains ll_host */ -#define HAVE_ULIMIT /* Define if your UNIX supports ulimit() */ -#define GETPWENT /* Define if you want my GETPWENT(3) routines */ -#define GETGRENT /* Define if you want my GETGRENT(3) routines */ -#undef NEED_AL64 /* Define if library does not include a64l() */ -#undef NEED_MKDIR /* Define if system does not have mkdir() */ -#undef NEED_RMDIR /* Define if system does not have rmdir() */ -#undef NEED_RENAME /* Define if system does not have rename() */ -#define NEED_STRSTR /* Define if library does not include strstr() */ -#undef NEED_PUTPWENT /* Define if library does not include putpwent()*/ -#define NEED_UTENT /* Define if library does not include utent fncs*/ -#define SIGTYPE void /* Type returned by signal() */ - -/* - * These definitions MUST agree with the values defined in <pwd.h>. - */ - -#undef BSD_QUOTA /* the pw_quota field exists */ -#define ATT_AGE /* the pw_age field exists */ -#define ATT_COMMENT /* the pw_comment field exists */ - -#define UID_T uid_t /* set to be the type of UID's */ -#define GID_T gid_t /* set to be the type of GID's */ - -#ifndef UID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define UID_T uid_t -#else -#define UID_T int -#endif -#endif - -#ifndef GID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define GID_T gid_t -#else -#define GID_T int -#endif -#endif - -/* - * Define NDEBUG for production versions - */ - -#define NDEBUG - -/* - * Define PWDFILE and GRPFILE to the names of the password and - * group files. - */ - -#define PWDFILE "/etc/passwd" -#define GRPFILE "/etc/group" - -/* - * Login times log file. - */ - -#define LASTFILE "/var/adm/lastlog" diff --git a/old/config.h.svr4 b/old/config.h.svr4 deleted file mode 100644 index 40c3d1ca..00000000 --- a/old/config.h.svr4 +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Configuration file for login. - * - * $Id: config.h.svr4,v 1.2 1997/05/01 23:11:58 marekm Exp $ (SVR4) - */ - - -/* - * Pathname to the run-time configuration definitions file. - */ - -#define LOGINDEFS "/etc/login.defs" - -/* - * Define SHADOWPWD to use shadow [ unreadable ] password file. - * Release 3 has a requirement that SHADOWPWD always be defined. - */ - -#define SHADOWPWD - -/* - * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd - * for getpwuid() and getpwnam(). This provides compatibility for - * privileged applications which are shadow-ignorant. YOU ARE - * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY. - * - * SVR4 has always had /etc/shadow - */ - -#undef AUTOSHADOW - -/* - * Define SHADOWGRP to user shadowed group files. This feature adds - * the concept of a group administrator. - */ - -/* #define SHADOWGRP /**/ - -/* - * Define DOUBLESIZE to use 16 character passwords. Define SW_CRYPT - * to use 80 character passwords with SecureWare[tm]'s method of - * generating ciphertext. - */ - -#define DOUBLESIZE -#undef SW_CRYPT - -/* - * Define SKEY to allow dual-mode SKEY/normal logins - */ - -#undef SKEY - -/* - * Define AGING if you want the password aging checks made. - * Release 3 has a requirement that AGING always be defined. - */ - -#define AGING - -/* - * Pick your version of DBM. If you define either DBM or NDBM, you must - * define GETPWENT. If you define NDBM you must define GETGRENT as well. - * - * SVR4 doesn't come with mkpasswd. - */ - -/* #define DBM /**/ -/* #define NDBM /**/ - -/* - * Define USE_SYSLOG if you want to have SYSLOG functions included in your code. - * - * SVR4 includes syslog() - */ - -#define USE_SYSLOG - -/* - * Enable RLOGIN to support the "-r" and "-h" options. - * Don't define UT_HOST, it's in utmpx. - */ - -#define RLOGIN -#undef UT_HOST - -/* - * Define the "success" code from ruserok(). Most modern systems use 0 - * for success and -1 for failure, while certain older versions use 1 - * for success and 0 for failure. Please check your manpage to be sure. - */ - -#define RUSEROK 0 - -/* - * Use SVR4 directory functions. - */ - -#define DIR_SYSV /* include <dirent.h>, use (struct dirent) */ - -/* - * Various system environment definitions. - */ - -#undef HAVE_ULIMIT /* Define if your UNIX supports ulimit() */ -#define HAVE_RLIMIT /* Define if your UNIX supports setrlimit() */ -#define GETPWENT /* Define if you want my GETPWENT(3) routines */ -#undef GETGRENT /* Define if you want my GETGRENT(3) routines */ -#undef NEED_AL64 /* Define if library does not include a64l() */ -#undef NEED_MKDIR /* Define if system does not have mkdir() */ -#undef NEED_RMDIR /* Define if system does not have rmdir() */ -#undef NEED_RENAME /* Define if system does not have rename() */ -#undef NEED_STRSTR /* Define if library does not include strstr() */ -#undef NEED_PUTPWENT /* Define if library does not include putpwent()*/ -#define SIGTYPE void /* Type returned by signal() */ - -/* - * These definitions MUST agree with the values defined in <pwd.h>. - */ - -#undef BSD_QUOTA /* the pw_quota field exists */ -#define ATT_AGE /* the pw_age field exists */ -#define ATT_COMMENT /* the pw_comment field exists */ - -#define UID_T uid_t /* set to be the type of UID's */ -#define GID_T gid_t /* set to be the type of GID's */ - -#ifndef UID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define UID_T uid_t -#else -#define UID_T int -#endif -#endif - -#ifndef GID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define GID_T gid_t -#else -#define GID_T int -#endif -#endif - -/* - * Define NDEBUG for production versions - */ - -#define NDEBUG - -/* - * Define PWDFILE and GRPFILE to the names of the password and - * group files. - */ - -#define PWDFILE "/etc/passwd" -#define GRPFILE "/etc/group" - -/* - * This is SVR4. - */ - -#define USG_UTMP - -/* - * Telinit program. If your system uses /etc/telinit to change run - * level, define TELINIT and then define the RUNLEVEL macro to be the - * run-level to switch INIT to. This is used by sulogin to change - * from single user to multi-user mode. - */ - -#define TELINIT /**/ -#define RUNLEVEL "2" /**/ - -/* - * Crontab and atrm. If your system can "crontab -r -u <user>", define - * HAS_CRONTAB. If your system can "atrm <user>", define HAS_ATRM. - * - * SVR4 has both of these. - */ - -#define HAS_CRONTAB -#define HAS_ATRM - -/* - * Login times log file. - */ - -#define LASTFILE "/var/adm/lastlog" diff --git a/old/config.h.xenix b/old/config.h.xenix deleted file mode 100644 index 4ee3d5bf..00000000 --- a/old/config.h.xenix +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright 1989 - 1993, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Configuration file for login. - * - * $Id: config.h.xenix,v 1.2 1997/05/01 23:11:58 marekm Exp $ - */ - - -/* - * Pathname to the run-time configuration definitions file. - */ - -#define LOGINDEFS "/etc/login.defs" - -/* - * Define SHADOWPWD to use shadow [ unreadable ] password file. - * Release 3 has a requirement that SHADOWPWD always be defined. - */ - -#define SHADOWPWD - -/* - * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd - * for getpwuid() and getpwnam(). This provides compatibility for - * privileged applications which are shadow-ignorant. YOU ARE - * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY. - */ - -#undef AUTOSHADOW - -/* - * Define SHADOWGRP to user shadowed group files. This feature adds - * the concept of a group administrator. You MUST NOT define this - * if you disable SHADOWPWD. - */ - -/* #define SHADOWGRP /**/ - -/* - * Define DOUBLESIZE to use 16 character passwords. Define SW_CRYPT - * to use 80 character passwords with SecureWare[tm]'s method of - * generating ciphertext. - */ - -#define DOUBLESIZE -#undef SW_CRYPT - -/* - * Define SKEY to allow dual-mode SKEY/normal logins - */ - -#undef SKEY - -/* - * Define AGING if you want the password aging checks made. - * Release 3 has a requirement that AGING always be defined. - */ - -#define AGING - -/* - * Pick your version of DBM. If you define either DBM or NDBM, you must - * define GETPWENT. If you define NDBM you must define GETGRENT as well. - */ - -/* #define DBM /**/ -/* #define NDBM /**/ - -/* - * Define USE_SYSLOG if you want to have SYSLOG functions included in your code. - */ - -#define USE_SYSLOG - -/* - * Enable RLOGIN to support the "-r" and "-h" options. - * Also enable UT_HOST if your /etc/utmp provides for a host name. - */ - -#define RLOGIN -#undef UT_HOST - -/* - * Define the "success" code from ruserok(). Most modern systems use 0 - * for success and -1 for failure, while certain older versions use 1 - * for success and 0 for failure. Please check your manpage to be sure. - */ - -#define RUSEROK 0 - -/* - * Select one of the following - */ - -#define DIR_XENIX /* include <sys/ndir.h>, use (struct direct) */ -/* #define DIR_BSD /* include <ndir.h>, use (struct direct) */ -/* #define DIR_SYSV /* include <dirent.h>, use (struct dirent) */ - -/* - * Various system environment definitions. - */ - -#define HAVE_ULIMIT /* Define if your UNIX supports ulimit() */ -#undef HAVE_RLIMIT /* Define if your UNIX supports setrlimit() */ -#define GETPWENT /* Define if you want my GETPWENT(3) routines */ -#define GETGRENT /* Define if you want my GETGRENT(3) routines */ -#define NEED_AL64 /* Define if library does not include a64l() */ -#define NEED_MKDIR /* Define if system does not have mkdir() */ -#define NEED_RMDIR /* Define if system does not have rmdir() */ -#define NEED_RENAME /* Define if system does not have rename() */ -#define NEED_STRSTR /* Define if library does not include strstr() */ -#undef NEED_PUTPWENT /* Define if library does not include putpwent()*/ -#define SIGTYPE int /* Type returned by signal() */ - -/* - * These definitions MUST agree with the values defined in <pwd.h>. - */ - -#undef BSD_QUOTA /* the pw_quota field exists */ -#define ATT_AGE /* the pw_age field exists */ -#define ATT_COMMENT /* the pw_comment field exists */ - -#define UID_T uid_t /* set to be the type of UID's */ -#define GID_T gid_t /* set to be the type of GID's */ - -#ifndef UID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define UID_T uid_t -#else -#define UID_T int -#endif -#endif - -#ifndef GID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define GID_T gid_t -#else -#define GID_T int -#endif -#endif - -/* - * Define NDEBUG for production versions - */ - -#define NDEBUG - -/* - * Define PWDFILE and GRPFILE to the names of the password and - * group files. - */ - -#define PWDFILE "/etc/passwd" -#define GRPFILE "/etc/group" - -/* - * The structure of the utmp file. There are two kinds of UTMP files, - * "BSD" and "USG". "BSD" has no PID or type information, "USG" does. - * If you define neither of these, the type will be defaulted by using - * BSD, SUN, SYS3 and USG defines. - */ - -#define USG_UTMP /**/ -/* #define BSD_UTMP /**/ - -#if !defined(USG_UTMP) && !defined(BSD_UTMP) -#if defined(BSD) || defined(SYS3) || defined(SUN) -#define BSD_UTMP -#else -#define USG_UTMP -#endif /* BSD || SYS3 || SUN */ -#endif /* !USG_UTMP || !BSD_UTMP */ - -/* - * Telinit program. If your system uses /etc/telinit to change run - * level, define TELINIT and then define the RUNLEVEL macro to be the - * run-level to switch INIT to. This is used by sulogin to change - * from single user to multi-user mode. - */ - -#define TELINIT /**/ -#define RUNLEVEL "2" /**/ - -/* - * Crontab and atrm. If your system can "crontab -r -u <user>", define - * HAS_CRONTAB. If your system can "atrm <user>", define HAS_ATRM. - */ - -#undef HAS_CRONTAB -#undef HAS_ATRM - -/* - * Login times log file. - */ - -#define LASTFILE "/var/adm/lastlog" diff --git a/old/orig-config.h b/old/orig-config.h deleted file mode 100644 index 790db8eb..00000000 --- a/old/orig-config.h +++ /dev/null @@ -1,454 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Configuration file for login. - * - * $Id: orig-config.h,v 1.2 1997/05/01 23:11:59 marekm Exp $ - */ - -#ifndef _CONFIG_H -#define _CONFIG_H - -#ifdef __linux__ -#include <sys/types.h> -#include <sys/param.h> -#include <stdio.h> -#endif - -/* - * Pathname to the run-time configuration definitions file. - */ - -#define LOGINDEFS "/etc/login.defs" - -/* - * Define SHADOWPWD to use shadow [ unreadable ] password file. - * Release 3 has a requirement that SHADOWPWD always be defined. - */ - -#define SHADOWPWD - -/* - * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd - * for getpwuid() and getpwnam(). This provides compatibility for - * privileged applications which are shadow-ignorant. YOU ARE - * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY. - */ -/* - * Yes, don't do it (and don't build libc with the SHADOW_COMPAT=true - * option) unless you REALLY know what you're doing. It might work, - * but can lead to unshadowing your passwords. This is not the right - * way to support shadow passwords! You have been warned. --marekm - */ - -#undef AUTOSHADOW - -/* - * Define SHADOWGRP to user shadowed group files. This feature adds - * the concept of a group administrator. You MUST NOT define this - * if you disable SHADOWPWD. - */ - -#define SHADOWGRP /**/ - -/* - * Define these if you have shadow password/group support functions in - * your version of libc. This removes these functions from libshadow.a - * (the ones from libc will be used instead). - * - * Finally upgraded to ELF, so... - */ -#define HAVE_SHADOWPWD -#define HAVE_SHADOWGRP - -/* - * Define MD5_CRYPT to support the MD5-based password hashing algorithm - * compatible with FreeBSD. All programs using pw_encrypt() instead of - * crypt() will understand both styles: old (standard, DES-based), and - * new (MD5-based). - * - * This means that it is possible to copy encrypted passwords from FreeBSD. - * Programs to change passwords (like passwd) will still use the old style - * crypt() for compatibility. - * - * To enable the use of the new crypt() for new passwords (if you don't - * need to copy them to other systems, except FreeBSD and Linux), set the - * MD5_CRYPT option in /etc/login.defs to "yes". - * - * This algorithm supports passwords of any length (the getpass() limit - * is 127 on Linux) and salt strings up to 8 (instead of 2) characters. - * - * This is experimental, and currently requires that all programs use - * pw_encrypt() from libshadow.a instead of crypt() from libc. This is - * problematic especially on ELF systems (libc5 has getspnam() so there - * is otherwise no need to link with the static libshadow.a). On most - * a.out systems you have to link with libshadow.a anyway, no problem. - */ - -#define MD5_CRYPT - -/* - * Define DOUBLESIZE to use 16 character passwords. Define SW_CRYPT - * to use 80 character passwords with SecureWare[tm]'s method of - * generating ciphertext. - * Not recommended because of some potential weaknesses. --marekm - */ - -#undef DOUBLESIZE -#undef SW_CRYPT - -/* - * Define SKEY to allow dual-mode SKEY/normal logins - */ - -#undef SKEY - -/* - * Define AGING if you want the password aging checks made. - * Release 3 has a requirement that AGING always be defined. - */ - -#define AGING - -/* - * Pick your version of DBM. If you define either DBM or NDBM, you must - * define GETPWENT. If you define NDBM you must define GETGRENT as well. - */ - -/* - * DBM support is untested, not recommended yet. It might make more - * sense if someone could add it to getpwnam() etc. in libc so that all - * programs (such as ls) can benefit from it. Any volunteers? - * - * The old DBM (as opposed to NDBM) support may be removed in a future - * release if no one complains. It's too braindamaged for the number - * of #ifdefs it adds (only one database per process at a time). - * - * On Linux, NDBM is actually implemented using GDBM, which is licensed - * under the GPL (not LGPL!) - I'm not sure if it is legal to link it - * with non-GPL code (such as the shadow suite). Consult your lawyers, - * or just modify the code to use db instead. Welcome to the wonderful - * world of copyrights. Yuck! - * - * The current DBM support code has a subtle design flaw. See my - * comment in pwdbm.c for details... - * - * Unless you have 2000 users or so, DBM probably doesn't make things - * much faster, and it does make things more complicated (= possibly - * more buggy). Do it only if you know what you're doing! --marekm - */ - -#undef DBM -#undef NDBM - -/* - * Define USE_SYSLOG if you want to have SYSLOG functions included in your code. - */ - -#define USE_SYSLOG - -/* - * Enable RLOGIN to support the "-r" and "-h" options. - * Also enable UT_HOST if your /etc/utmp provides for a host name. - */ - -#define RLOGIN -#define UT_HOST - -/* - * Define NO_RFLG to remove support for login -r flag if your system has - * a new-style rlogind which doesn't need it. --marekm - */ - -#define NO_RFLG - -/* - * Define the "success" code from ruserok(). Most modern systems use 0 - * for success and -1 for failure, while certain older versions use 1 - * for success and 0 for failure. Please check your manpage to be sure. - */ - -#define RUSEROK 0 - -/* - * Select one of the following - */ - -#undef DIR_XENIX /* include <sys/ndir.h>, use (struct direct) */ -#undef DIR_BSD /* include <ndir.h>, use (struct direct) */ -#define DIR_SYSV /* include <dirent.h>, use (struct dirent) */ - -/* - * Various system environment definitions. - */ - -/* - * Define if you have sgetgrent() in libc, to remove this function from - * libshadow.a (some versions of libc5 reportedly have it, most reports - * so far are from Red Hat 2.1 users, more information is welcome). - */ -#undef HAVE_SGETGRENT - -/* - * Only important if you compile with GETGRENT defined (use my getgr*() - * but still use fgetgrent() from libc if HAVE_FGETGRENT defined). - */ -#undef HAVE_FGETGRENT - -#define HAVE_SIGACTION -#define HAVE_GETUSERSHELL /* Define if your UNIX supports getusershell() */ -#define HAVE_LL_HOST /* Define if "struct lastlog" contains ll_host */ -#define HAVE_ULIMIT /* Define if your UNIX supports ulimit() */ -#define HAVE_RLIMIT /* Define if your UNIX supports setrlimit() */ -#undef GETPWENT /* Define if you want my GETPWENT(3) routines */ -#undef GETGRENT /* Define if you want my GETGRENT(3) routines */ -#define NEED_AL64 /* Define if library does not include a64l() */ -#undef NEED_MKDIR /* Define if system does not have mkdir() */ -#undef NEED_RMDIR /* Define if system does not have rmdir() */ -#undef NEED_RENAME /* Define if system does not have rename() */ -#undef NEED_STRSTR /* Define if library does not include strstr() */ -#undef NEED_PUTPWENT /* Define if library does not include putpwent()*/ -#define SIGTYPE void /* Type returned by signal() */ - -/* - * These definitions MUST agree with the values defined in <pwd.h>. - */ - -#undef BSD_QUOTA /* the pw_quota field exists */ -#undef ATT_AGE /* the pw_age field exists */ -#undef ATT_COMMENT /* the pw_comment field exists */ - -#define UID_T uid_t /* set to be the type of UID's */ -#define GID_T gid_t /* set to be the type of GID's */ - -#ifndef UID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define UID_T uid_t -#else -#define UID_T int -#endif -#endif - -#ifndef GID_T -#if defined(SVR4) || defined(_POSIX_SOURCE) -#define GID_T gid_t -#else -#define GID_T int -#endif -#endif - -/* - * Define NDEBUG for production versions - */ - -#define NDEBUG - -/* - * Define PWDFILE and GRPFILE to the names of the password and - * group files. //jiivee - */ - -#define PASSWD_FILE "/etc/passwd" -#define PASSWD_PAG_FILE "/etc/passwd.pag" -#define GROUP_FILE "/etc/group" -#define GROUP_PAG_FILE "/etc/group.pag" - -#ifdef SHADOWPWD -#define SHADOW_FILE "/etc/shadow" -#define SHADOW_PAG_FILE "/etc/shadow.pag" -#ifdef SHADOWGRP -#define SGROUP_FILE "/etc/gshadow" -#define SGROUP_PAG_FILE "/etc/gshadow.pag" -#endif -#endif - -/* - * The structure of the utmp file. There are two kinds of UTMP files, - * "BSD" and "USG". "BSD" has no PID or type information, "USG" does. - * If you define neither of these, the type will be defaulted by using - * BSD, SUN, SYS3 and USG defines. - */ - -#define _UTMP_FILE "/var/run/utmp" -#define _WTMP_FILE "/var/log/wtmp" - -#define USG_UTMP /**/ -/* #define BSD_UTMP */ - -#if !defined(USG_UTMP) && !defined(BSD_UTMP) -#if defined(BSD) || defined(SYS3) || defined(SUN) -#define BSD_UTMP -#else -#define USG_UTMP -#endif /* BSD || SYS3 || SUN */ -#endif /* !USG_UTMP || !BSD_UTMP */ - -/* - * From where to look for legal user shells - */ - -#ifndef SHELLS_FILE -#define SHELLS_FILE "/etc/shells" -#endif - -/* - * Default issue file location - */ - -#ifndef ISSUE_FILE -#define ISSUE_FILE "/etc/issue" -#endif - -/* - * Logoutd message file - */ - -#define HUP_MESG_FILE "/etc/logoutd.mesg" - -/* - * Mail spool directory. This is used if mailspool cannot be located otherwise - */ - -#ifndef MAIL_SPOOL_DIR -#define MAIL_SPOOL_DIR "/var/spool/mail" -#endif - -/* - * Where are new user default setup files kept - */ - -#define SKEL_DIR "/etc/skel" - -/* - * New user defaults. The NEW_USER_FILE must have 6 X's in the end of name - */ - -#define USER_DEFAULTS_FILE "/etc/default/useradd" -#define NEW_USER_FILE "/etc/default/nuaddXXXXXX" - -/* - * Telinit program. If your system uses /etc/telinit to change run - * level, define TELINIT and then define the RUNLEVEL macro to be the - * run-level to switch INIT to. This is used by sulogin to change - * from single user to multi-user mode. - * - * From bluca@www.polimi.it: instead, set up /etc/inittab properly - * ~0:S:wait:/sbin/sulogin - * ~9:S:wait:/sbin/telinit -t0 2 - */ - -#undef TELINIT -#undef PATH_TELINIT "/sbin/telinit" -#undef RUNLEVEL "2" - -/* - * Crontab and atrm. Used in userdel.c - see user_cancel(). Verify - * that these are correct for your distribution. --marekm - */ - -#if 0 /* old Slackware */ -#define CRONTAB_COMMAND "/usr/bin/crontab -d -u %s" -#define CRONTAB_FILE "/var/cron/tabs/%s" -#else -/* Debian 0.93R6 (marekm): */ -#define CRONTAB_COMMAND "/usr/bin/crontab -r -u %s" -#define CRONTAB_FILE "/var/spool/cron/crontabs/%s" -/* Red Hat 2.1 (jiivee@iki.fi): */ -/* #define CRONTAB_FILE "/var/spool/cron/%s" */ -#endif - -/* - * Hmmm, had to #undef this since at-2.8a on Linux doesn't have an option - * to remove all jobs owned by some user. - * - * Fortunately, atrun will not run any at jobs for users not listed in - * /etc/passwd. Unfortunately, if you remove a user and add a new user - * with the same UID before it is time to run the old at job, atrun will - * not notice this and run the old job. Not good. The best fix right - * now is to remove any at jobs left over by hand, and not reuse any - * previously used UID values. - * - * We probably should discuss this with the at maintainer... It might - * be better to store at jobs by user names, not UIDs. --marekm - */ - -#undef ATRM_COMMAND - -/* - * Login times log file location. - */ - -#define LASTLOG_FILE "/var/log/lastlog" - -/* - * Linux FSSTND recommends that the chfn, chsh, gpasswd, passwd commands - * are in /usr/bin, not /bin (not needed before mounting /usr). --marekm - */ - -#define CHFN_PROGRAM "/usr/bin/chfn" -#define CHSH_PROGRAM "/usr/bin/chsh" -#define GPASSWD_PROGRAM "/usr/bin/gpasswd" -#define PASSWD_PROGRAM "/usr/bin/passwd" - -/* - * On most Linux systems, the login prompt is "hostname login: ". Some - * automatic login scripts depend on it. If not defined, the default is - * just "login: ". %s is replaced by the hostname. --marekm - */ - -#define LOGIN_PROMPT "%s login: " - -/* - * Define to enable (warning: completely unsupported by me) administrator - * defined authentication methods. Most programs are not aware of them, - * so we can remove some code and possibly some bugs :-). PAM (when done) - * will replace much of this anyway... --marekm - */ - -/* #define AUTH_METHODS */ - -/* - * Define to enable detailed login access control (a la logdaemon/FreeBSD) - * and su access control (much more powerful/fascist than the traditional - * BSD-style "wheel group" feature). Any volunteers to convince the GNU - * folks that they should add access control to their version of su? - * Call me a fascist, but then I'll have to call you a communist :-). - */ - -#define LOGIN_ACCESS -#define SU_ACCESS - -/* see faillog.h for more info what it is */ -#define FAILLOG_LOCKTIME - -/* see lmain.c and login.defs.linux */ -#define CONSOLE_GROUPS - -#endif /* _CONFIG_H */ diff --git a/old/pwconv-old.c b/old/pwconv-old.c deleted file mode 100644 index e8531fdb..00000000 --- a/old/pwconv-old.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - * - * pwconv - convert and update shadow password files - * - * Pwconv copies the old password file information to a new shadow - * password file, merging entries from an optional existing shadow - * file. - * - * The new password file is left in npasswd, the new shadow file is - * left in nshadow. Existing shadow entries are copied as is. - * New entries are created with passwords which expire in MAXDAYS days, - * with a last changed date of today, unless password aging - * information was already present. Likewise, the minimum number of - * days before which the password may be changed is controlled by - * MINDAYS. The number of warning days is set to WARNAGE if that - * macro exists. Entries with blank passwordsare not copied to the - * shadow file at all. - */ - -#include <config.h> -#ifndef SHADOWPWD - -main() -{ - fprintf (stderr, "Shadow passwords are not configured.\n"); - exit (1); -} - -#else /*{*/ - -#include "rcsid.h" -RCSID("$Id: pwconv-old.c,v 1.1 1997/05/01 23:11:59 marekm Exp $") - -#include <sys/types.h> -#include <stdio.h> -#include <fcntl.h> -#include <pwd.h> -#include "defines.h" - -#include "getdef.h" - -static char buf[BUFSIZ]; - -long a64l (); - -int -main() -{ - long today; - struct passwd *pw; - struct passwd *sgetpwent (); - FILE *pwd; - FILE *npwd; - FILE *shadow; - struct spwd *spwd; - struct spwd tspwd; - int fd; - char *cp; - - if (! (pwd = fopen (PASSWD_FILE, "r"))) { - perror (PASSWD_FILE); - exit (1); - } - unlink ("npasswd"); - if ((fd = open ("npasswd", O_WRONLY|O_CREAT|O_EXCL, 0644)) < 0 || - ! (npwd = fdopen (fd, "w"))) { - perror ("npasswd"); - exit (1); - } - unlink ("nshadow"); - if ((fd = open ("nshadow", O_WRONLY|O_CREAT|O_EXCL, 0600)) < 0 || - ! (shadow = fdopen (fd, "w"))) { - perror ("nshadow"); - (void) unlink ("npasswd"); - (void) unlink ("nshadow"); - exit (1); - } - - (void) time (&today); - today /= (24L * 60L * 60L); - - while (fgets (buf, sizeof buf, pwd) == buf) { - if ((cp = strrchr (buf, '\n'))) - *cp = '\0'; - - if (buf[0] == '#') { /* comment line */ - (void) fprintf (npwd, "%s\n", buf); - continue; - } - if (! (pw = sgetpwent (buf))) { /* copy bad lines verbatim */ - (void) fprintf (npwd, "%s\n", buf); - continue; - } -#if 0 /* convert all entries, even if no passwd. --marekm */ - if (pw->pw_passwd[0] == '\0') { /* no password, skip */ - (void) fprintf (npwd, "%s\n", buf); - continue; - } -#endif - setspent (); /* rewind old shadow file */ - -#if 0 - if ((spwd = getspnam(pw->pw_name))) { -#else - /* - * If the user exists, getspnam() in NYS libc (at least - * on Red Hat 3.0.3) always succeeds if the user exists, - * even if there is no /etc/shadow file. As a result, - * passwords are left in /etc/passwd after pwconv! - * - * Copy existing shadow entries only if the encrypted - * password field in /etc/passwd is "x" - this indicates - * that the shadow password is really there. --marekm - */ - spwd = getspnam(pw->pw_name); - if (spwd && strcmp(pw->pw_passwd, "x") == 0) { -#endif - if (putspent (spwd, shadow)) { /* copy old entry */ - perror ("nshadow"); - goto error; - } - } else { /* need a new entry. */ - tspwd.sp_namp = pw->pw_name; - tspwd.sp_pwdp = pw->pw_passwd; - pw->pw_passwd = "x"; -#ifdef ATT_AGE - if (pw->pw_age) { /* copy old password age stuff */ - if ((int) strlen (pw->pw_age) >= 2) { - tspwd.sp_min = c64i (pw->pw_age[1]); - tspwd.sp_max = c64i (pw->pw_age[0]); - } else { - tspwd.sp_min = tspwd.sp_max = -1; - } - if (strlen (pw->pw_age) == 4) - tspwd.sp_lstchg = a64l (&pw->pw_age[2]); - else - tspwd.sp_lstchg = -1; - - /* - * Convert weeks to days - */ - - if (tspwd.sp_min != -1) - tspwd.sp_min *= 7; - - if (tspwd.sp_max != -1) - tspwd.sp_max *= 7; - - if (tspwd.sp_lstchg != -1) - tspwd.sp_lstchg *= 7; - } else -#endif /* ATT_AGE */ - { /* fake up new password age stuff */ - tspwd.sp_max = getdef_num("PASS_MAX_DAYS", -1); - tspwd.sp_min = getdef_num("PASS_MIN_DAYS", 0); - tspwd.sp_lstchg = today; - } - tspwd.sp_warn = getdef_num("PASS_WARN_AGE", -1); - tspwd.sp_inact = tspwd.sp_expire = tspwd.sp_flag = -1; - if (putspent (&tspwd, shadow)) { /* output entry */ - perror ("nshadow"); - goto error; - } - } - (void) fprintf (npwd, "%s:%s:%d:%d:%s:%s:", - pw->pw_name, pw->pw_passwd, - pw->pw_uid, pw->pw_gid, - pw->pw_gecos, pw->pw_dir); - - if (fprintf (npwd, "%s\n", - pw->pw_shell ? pw->pw_shell:"") == EOF) { - perror ("npasswd"); - goto error; - } - } - endspent (); - - if (ferror (npwd) || ferror (shadow)) { - perror ("pwconv"); -error: - (void) unlink ("npasswd"); - (void) unlink ("nshadow"); - exit (1); - } - (void) fclose (pwd); - (void) fclose (npwd); - (void) fclose (shadow); - - exit (0); -} -#endif /*}*/ diff --git a/old/pwd.h.m4 b/old/pwd.h.m4 deleted file mode 100644 index 313f4a59..00000000 --- a/old/pwd.h.m4 +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 1990, 1991, 1992, Julianne Frances Haugh and Steve Simmons - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - */ - -/* - * Standard definitions for password files. This is an independant - * reimplementation of the definitions used by AT&T, BSD, and POSIX. - * It is not derived from any of those sources. Note that it can be - * site-defined to have non-POSIX features as well. Ideally this file - * is simply replaced by the standard system supplied /usr/include/pwd.h - * file. - * - * @(#)pwd.h.m4 3.4.1.3 12:55:53 05 Feb 1994 - * $Id: pwd.h.m4,v 1.2 1997/05/01 23:11:59 marekm Exp $ - */ - -#ifndef PWD_H -#define PWD_H - -#ifdef M_XENIX -typedef int uid_t; -typedef int gid_t; -#endif - -#if defined(SUN) || defined(SUN4) -#include <sys/types.h> -#endif - -#ifdef SVR4 -#include <sys/types.h> -#ifndef _POSIX_SOURCE -#define _POSIX_SOURCE -#include <limits.h> -#undef _POSIX_SOURCE -#else /* _POSIX_SOURCE */ -#include <limits.h> -#endif /* !_POSIX_SOURCE */ -#define NGROUPS NGROUPS_MAX -#endif /* SVR4 */ - -ifdef(`SUN4', `#define ATT_AGE') -ifdef(`SUN4', `#define ATT_COMMENT') -ifdef(`SUN', `#define BSD_QUOTA') -ifdef(`BSD', `#define BSD_QUOTA') -ifdef(`AIX', `', `ifdef(`USG', `#define ATT_AGE')') -ifdef(`AIX', `', `ifdef(`USG', `#define ATT_COMMENT')') - -/* - * This is the data structure returned by the getpw* functions. The - * names of the elements and the structure are taken from traditional - * usage. - */ - -struct passwd { - char *pw_name ; /* User login name */ - char *pw_passwd ; /* Encrypted passwd or dummy field */ - uid_t pw_uid ; /* User uid number */ - gid_t pw_gid ; /* User group id number */ -#ifdef BSD_QUOTA - /* Most BSD systems have quotas, most USG ones don't */ - int pw_quota ; /* The BSD magic doodah */ -#endif -#ifdef ATT_AGE - /* Use ATT-style password aging */ - char *pw_age ; /* ATT radix-64 encoded data */ -#endif -#ifdef ATT_COMMENT - /* Provide the unused comment field */ - char *pw_comment; /* Unused comment field */ -#endif - char *pw_gecos ; /* ASCII user name, other data */ - char *pw_dir ; /* User home directory */ - char *pw_shell ; /* User startup shell */ -} ; - -#ifdef ATT_COMMENT -/* Provide the unused comment structure */ -struct comment { - char *c_dept; - char *c_name; - char *c_acct; - char *c_bin; -}; -#endif - -#if __STDC__ - -extern struct passwd *getpwent( void ) ; -extern struct passwd *getpwuid( uid_t user_uid ) ; -extern struct passwd *getpwnam( char *name ) ; -#ifdef SVR4 -void setpwent( void ); -void endpwent( void ); -#else -int setpwent( void ); -int endpwent( void ); -#endif - -#else - -extern struct passwd *getpwent(); -extern struct passwd *getpwuid(); -extern struct passwd *getpwnam(); -#ifdef SVR4 -void setpwent(); -void endpwent(); -#else -int setpwent(); -int endpwent(); -#endif -#endif /* of if __STDC__ */ - -#endif /* of ifdef PWD_H */ diff --git a/old/pwunconv-old.c b/old/pwunconv-old.c deleted file mode 100644 index e54d83ef..00000000 --- a/old/pwunconv-old.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 1989 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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. - * - * pwunconv - restore old password file from shadow password file. - * - * Pwunconv copies the password file information from the shadow - * password file, merging entries from an optional existing shadow - * file. - * - * The new password file is left in npasswd. There is no new - * shadow file. Password aging information is translated where - * possible. - */ - -#include <config.h> - -#include "rcsid.h" -RCSID("$Id: pwunconv-old.c,v 1.1 1997/05/01 23:11:59 marekm Exp $") - -#include "defines.h" -#include <sys/types.h> -#include <stdio.h> -#include <fcntl.h> -#include <pwd.h> - -#ifndef SHADOWPWD -int -main() -{ - fprintf (stderr, "Shadow passwords are not configured.\n"); - exit (1); -} - -#else /*{*/ - -char buf[BUFSIZ]; -char *l64a (); - -int -main() -{ - struct passwd *pw; - struct passwd *sgetpwent (); - FILE *pwd; - FILE *npwd; - struct spwd *spwd; - int fd; -#ifdef ATT_AGE - char newage[5]; -#endif - - if (! (pwd = fopen (PASSWD_FILE, "r"))) { - perror (PASSWD_FILE); - return (1); - } - unlink ("npasswd"); - if ((fd = open ("npasswd", O_WRONLY|O_CREAT|O_EXCL, 0600)) < 0 || - ! (npwd = fdopen (fd, "w"))) { - perror ("npasswd"); - return (1); - } - while (fgets (buf, sizeof buf, pwd) == buf) { - buf[strlen (buf) - 1] = '\0'; /* remove '\n' character */ - - if (buf[0] == '#') { /* comment line */ - (void) fprintf (npwd, "%s\n", buf); - continue; - } - if (! (pw = sgetpwent (buf))) { /* copy bad lines verbatim */ - (void) fprintf (npwd, "%s\n", buf); - continue; - } - setspent (); /* rewind shadow file */ - - if (! (spwd = getspnam (pw->pw_name))) { - (void) fprintf (npwd, "%s\n", buf); - continue; - } - pw->pw_passwd = spwd->sp_pwdp; - - /* - * Password aging works differently in the two different systems. - * With shadow password files you apparently must have some aging - * information. The maxweeks or minweeks may not map exactly. - * In pwconv we set max == 10000, which is about 30 years. Here - * we have to undo that kludge. So, if maxdays == 10000, no aging - * information is put into the new file. Otherwise, the days are - * converted to weeks and so on. - */ - -#ifdef ATT_AGE - if (spwd->sp_max > (63*WEEK/SCALE) && spwd->sp_max < 10000) - spwd->sp_max = (63*WEEK/SCALE); /* 10000 is infinity */ - - if (spwd->sp_min >= 0 && spwd->sp_min <= 63*7 && - spwd->sp_max >= 0 && spwd->sp_max <= 63*7) { - if (spwd->sp_lstchg == -1) - spwd->sp_lstchg = 0; - - spwd->sp_max /= WEEK/SCALE; /* turn it into weeks */ - spwd->sp_min /= WEEK/SCALE; - spwd->sp_lstchg /= WEEK/SCALE; - - strncpy (newage, l64a (spwd->sp_lstchg * (64L*64L) + - spwd->sp_min * (64L) + spwd->sp_max), 5); - pw->pw_age = newage; - } else - pw->pw_age = ""; -#endif /* ATT_AGE */ - if (putpwent (pw, npwd)) { - perror ("pwunconv: write error"); - exit (1); - } - } - endspent (); - - if (ferror (npwd)) { - perror ("pwunconv"); - (void) unlink ("npasswd"); - } - (void) fclose (npwd); - (void) fclose (pwd); - return (0); -} -#endif diff --git a/old/scologin.c b/old/scologin.c deleted file mode 100644 index 0efe5a33..00000000 --- a/old/scologin.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 1991, Julianne Frances Haugh and Chip Rosenthal - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``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 JULIE HAUGH OR CONTRIBUTORS 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 lint -static char rcsid[] = "$Id: scologin.c,v 1.1 1997/05/01 23:12:00 marekm Exp $"; -#endif - -#include <stdio.h> -#include <pwd.h> - -#define USAGE "usage: %s [ -r remote_host remote_user local_user [ term_type ] ]\n" -#define LOGIN "/etc/login" - -extern int errno; -extern char *sys_errlist[]; -extern char **environ; - -int -main(argc, argv) -int argc; -char *argv[]; -{ - char *rhost, *ruser, *luser; - char term[1024], *nargv[8], *nenvp[2]; - int root_user, i; - struct passwd *pw; - - if (argc == 1) { - - /* - * Called from telnetd. - */ - nargv[0] = "login"; - nargv[1] = "-p"; - nargv[2] = NULL; - - } else if (strcmp(argv[1], "-r") == 0 && argc >= 6) { - - /* - * Called from rlogind. - */ - - rhost = argv[2]; - ruser = argv[3]; - luser = argv[4]; - root_user = ((pw = getpwnam(luser)) != NULL && pw->pw_uid == 0); - - i = 0; - if ( argc == 6 ) { - strcpy(term, "TERM="); - strncat(term+sizeof("TERM=")-1, - argv[5], sizeof(term)-sizeof("TERM=")); - term[sizeof(term)-1] = '\0'; - nenvp[i++] = term; - } - nenvp[i++] = NULL; - environ = nenvp; - - i = 0; - nargv[i++] = "login"; - nargv[i++] = "-p"; - nargv[i++] = "-h"; - nargv[i++] = rhost; - if (ruserok(rhost, root_user, ruser, luser) == 0) - nargv[i++] = "-f"; - nargv[i++] = luser; - nargv[i++] = NULL; - - } else { - - fprintf(stderr, USAGE, argv[0]); - exit(1); - - } - - (void) execv(LOGIN, nargv); - fprintf(stderr, "%s: could not exec '%s' [%s]\n", - argv[0], LOGIN, sys_errlist[errno]); - exit(1); - /*NOTREACHED*/ -} diff --git a/old/vipw.8 b/old/vipw.8 deleted file mode 100644 index b8503c9c..00000000 --- a/old/vipw.8 +++ /dev/null @@ -1,69 +0,0 @@ -.\" Copyright (c) 1983, 1991 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS 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. -.\" -.\" from: @(#)vipw.8 6.7 (Berkeley) 3/16/91 -.\" $Id: vipw.8,v 1.1 1997/12/07 23:27:13 marekm Exp $ -.\" -.Dd March 13, 1997 -.Dt VIPW 8 -.Os BSD 4 -.Sh NAME -.Nm vipw, vigr -.Nd edit the password, group, shadow, or sgroup file -.Sh SYNOPSIS -.Nm vipw [-s] -.Nm vigr [-s] -.Sh DESCRIPTION -.Nm Vipw -and -.Nm vigr -edit the password and group files, respectively, after setting the -appropriate locks. With the -s option, they will edit the shadow and -sgroup files. They do any necessary processing after -the files are unlocked. If the password or group file is already -locked for editing by another user, you will be asked to try again -later. -The default editor under Debian GNU/Linux is -.Xr ae 1 . -.Sh ENVIRONMENT -vipw and vigr will try the environment variables VISUAL and EDITOR -before defaulting to -.Xr ae 1 . -.Sh SEE ALSO -.Xr passwd 5 , -.Xr group 5 , -.Xr shadow 5 , -.Xr sgroup 5 -.Sh HISTORY -The -.Nm vipw -command appeared in -.Bx 4.0 . diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c index 40455d75..67e5badf 100644 --- a/po/cat-id-tbl.c +++ b/po/cat-id-tbl.c @@ -446,57 +446,58 @@ Type control-d to proceed with normal startup,\n\ {"usage: %s [-r] name\n", 413}, {"%s: error updating group entry\n", 414}, {"%s: cannot update dbm group entry\n", 415}, - {"%s: cannot rewrite TCFS key file\n", 416}, - {"%s: cannot lock TCFS key file\n", 417}, - {"%s: cannot open TCFS key file\n", 418}, - {"%s: cannot open group file\n", 419}, - {"%s: cannot open shadow group file\n", 420}, - {"%s: error deleting authentication\n", 421}, - {"%s: error deleting password entry\n", 422}, - {"%s: error deleting shadow password entry\n", 423}, - {"%s: error deleting TCFS entry\n", 424}, - {"%s: error deleting password dbm entry\n", 425}, - {"%s: error deleting shadow passwd dbm entry\n", 426}, - {"%s: user %s is currently logged in\n", 427}, - {"%s: warning: %s not owned by %s, not removing\n", 428}, - {"%s: warning: can't remove ", 429}, - {"%s: user %s does not exist\n", 430}, - {"%s: user %s is a NIS user\n", 431}, - {"%s: %s not owned by %s, not removing\n", 432}, - {"%s: not removing directory %s (would remove home of user %s)\n", 433}, - {"%s: error removing directory %s\n", 434}, - {"\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n", 435}, - {"[-A {DEFAULT|program},... ] ", 436}, - {"%s: out of memory in update_group\n", 437}, - {"%s: out of memory in update_gshadow\n", 438}, - {"%s: no flags given\n", 439}, - {"%s: shadow passwords required for -e and -f\n", 440}, - {"%s: uid %ld is not unique\n", 441}, - {"%s: error deleting authentication method\n", 442}, - {"%s: error changing authentication method\n", 443}, - {"%s: error changing password entry\n", 444}, - {"%s: error removing password entry\n", 445}, - {"%s: error adding password dbm entry\n", 446}, - {"%s: error removing passwd dbm entry\n", 447}, - {"%s: error removing shadow password entry\n", 448}, - {"%s: error removing shadow passwd dbm entry\n", 449}, - {"%s: directory %s exists\n", 450}, - {"%s: can't create %s\n", 451}, - {"%s: can't chown %s\n", 452}, - {"%s: cannot rename directory %s to %s\n", 453}, - {"%s: warning: %s not owned by %s\n", 454}, - {"failed to change mailbox owner", 455}, - {"failed to rename mailbox", 456}, + {"%s: cannot remove dbm group entry\n", 416}, + {"%s: cannot rewrite TCFS key file\n", 417}, + {"%s: cannot lock TCFS key file\n", 418}, + {"%s: cannot open TCFS key file\n", 419}, + {"%s: cannot open group file\n", 420}, + {"%s: cannot open shadow group file\n", 421}, + {"%s: error deleting authentication\n", 422}, + {"%s: error deleting password entry\n", 423}, + {"%s: error deleting shadow password entry\n", 424}, + {"%s: error deleting TCFS entry\n", 425}, + {"%s: error deleting password dbm entry\n", 426}, + {"%s: error deleting shadow passwd dbm entry\n", 427}, + {"%s: user %s is currently logged in\n", 428}, + {"%s: warning: %s not owned by %s, not removing\n", 429}, + {"%s: warning: can't remove ", 430}, + {"%s: user %s does not exist\n", 431}, + {"%s: user %s is a NIS user\n", 432}, + {"%s: %s not owned by %s, not removing\n", 433}, + {"%s: not removing directory %s (would remove home of user %s)\n", 434}, + {"%s: error removing directory %s\n", 435}, + {"\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n", 436}, + {"[-A {DEFAULT|program},... ] ", 437}, + {"%s: out of memory in update_group\n", 438}, + {"%s: out of memory in update_gshadow\n", 439}, + {"%s: no flags given\n", 440}, + {"%s: shadow passwords required for -e and -f\n", 441}, + {"%s: uid %ld is not unique\n", 442}, + {"%s: error deleting authentication method\n", 443}, + {"%s: error changing authentication method\n", 444}, + {"%s: error changing password entry\n", 445}, + {"%s: error removing password entry\n", 446}, + {"%s: error adding password dbm entry\n", 447}, + {"%s: error removing passwd dbm entry\n", 448}, + {"%s: error removing shadow password entry\n", 449}, + {"%s: error removing shadow passwd dbm entry\n", 450}, + {"%s: directory %s exists\n", 451}, + {"%s: can't create %s\n", 452}, + {"%s: can't chown %s\n", 453}, + {"%s: cannot rename directory %s to %s\n", 454}, + {"%s: warning: %s not owned by %s\n", 455}, + {"failed to change mailbox owner", 456}, + {"failed to rename mailbox", 457}, {"\ \n\ -%s: %s is unchanged\n", 457}, - {"Couldn't lock file", 458}, - {"Couldn't make backup", 459}, - {"%s: can't restore %s: %s (your changes are in %s)\n", 460}, +%s: %s is unchanged\n", 458}, + {"Couldn't lock file", 459}, + {"Couldn't make backup", 460}, + {"%s: can't restore %s: %s (your changes are in %s)\n", 461}, {"\ Usage:\n\ `vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n\ -`vigr' edits /etc/group `vigr -s' edits /etc/gshadow\n", 461}, +`vigr' edits /etc/group `vigr -s' edits /etc/gshadow\n", 462}, }; -int _msg_tbl_length = 461; +int _msg_tbl_length = 462; diff --git a/po/el.po b/po/el.po index 106451f6..e319dabd 100644 --- a/po/el.po +++ b/po/el.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Shadow 980726\n" -"POT-Creation-Date: 1999-08-27 21:03+0200\n" +"POT-Creation-Date: 2000-08-26 20:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Nikos Mavroyanopoulos <nmav@i-net.paiko.gr>\n" "Language-Team: Hellenic <el@li.org>\n" @@ -111,7 +111,7 @@ msgstr " msgid "You have mail." msgstr "����� ��������." -#: libmisc/obscure.c:281 src/passwd.c:311 +#: libmisc/obscure.c:281 src/passwd.c:309 #, c-format msgid "Bad password: %s. " msgstr "���� �����������: %s. " @@ -181,26 +181,26 @@ msgstr " msgid "Dialup Password: " msgstr "����������� ����������� ��������: " -#: lib/getdef.c:249 +#: lib/getdef.c:253 msgid "Could not allocate space for config info.\n" msgstr "�������� ��������� ����� ��� ����������� �����������.\n" #. #. * Item was never found. #. -#: lib/getdef.c:303 +#: lib/getdef.c:307 #, c-format msgid "configuration error - unknown item '%s' (notify administrator)\n" msgstr "" "������ ����������� - ������� ����������� '%s' (������������ ��� " "�����������)\n" -#: lib/getdef.c:390 +#: lib/getdef.c:394 #, c-format msgid "error - lookup '%s' failed\n" msgstr "������ - � ��������� '%s' �������\n" -#: lib/getdef.c:398 +#: lib/getdef.c:402 #, c-format msgid "%s not found\n" msgstr "%s ��� �������\n" @@ -209,7 +209,7 @@ msgstr "%s #. * get the password from her, and set the salt for #. * the decryption from the group file. #. -#: lib/pwauth.c:54 src/newgrp.c:297 +#: lib/pwauth.c:54 src/newgrp.c:305 msgid "Password: " msgstr "�����������: " @@ -345,83 +345,83 @@ msgstr " msgid "Account Expires:\t" msgstr "�� ����������� �����:\t" -#: src/chage.c:468 +#: src/chage.c:471 #, c-format msgid "%s: do not include \"l\" with other flags\n" msgstr "%s: �� ��� ���������������� �� \"l\" �� ��� ����� ���������\n" -#: src/chage.c:480 src/chage.c:592 src/login.c:529 +#: src/chage.c:483 src/chage.c:595 src/login.c:529 #, c-format msgid "%s: permission denied\n" msgstr "%s: ����� �����������\n" -#: src/chage.c:492 src/chpasswd.c:122 +#: src/chage.c:495 src/chpasswd.c:120 #, c-format msgid "%s: can't lock password file\n" msgstr "%s: �������� ����������� ��� ������� ������������\n" -#: src/chage.c:498 src/chpasswd.c:126 +#: src/chage.c:501 src/chpasswd.c:124 #, c-format msgid "%s: can't open password file\n" msgstr "%s: �������� ���������� ��� ������� ������������\n" -#: src/chage.c:505 +#: src/chage.c:508 #, c-format msgid "%s: unknown user: %s\n" msgstr "%s: �������� �������: %s\n" -#: src/chage.c:524 +#: src/chage.c:527 #, c-format msgid "%s: can't lock shadow password file\n" msgstr "%s: �������� ����������� ��� ������� ������� ������������\n" -#: src/chage.c:531 +#: src/chage.c:534 #, c-format msgid "%s: can't open shadow password file\n" msgstr "%s: �������� ���������� ��� ������� ������� ������������\n" -#: src/chage.c:613 +#: src/chage.c:616 #, c-format msgid "Changing the aging information for %s\n" msgstr "������ ����������� ������ ��� ��� %s\n" -#: src/chage.c:615 +#: src/chage.c:618 #, c-format msgid "%s: error changing fields\n" msgstr "%s: ������ ���� ��� ������ ������\n" -#: src/chage.c:642 src/chage.c:705 src/pwunconv.c:184 +#: src/chage.c:645 src/chage.c:708 src/pwunconv.c:183 #, c-format msgid "%s: can't update password file\n" msgstr "%s: �������� ��������� ������� ������������\n" -#: src/chage.c:672 src/pwunconv.c:179 +#: src/chage.c:675 src/pwunconv.c:178 #, c-format msgid "%s: can't update shadow password file\n" msgstr "%s: �������� ��������� ��� ������� ������� ������������\n" -#: src/chage.c:721 src/chage.c:736 src/chfn.c:572 src/chsh.c:411 -#: src/passwd.c:827 src/passwd.c:928 +#: src/chage.c:724 src/chage.c:739 src/chfn.c:571 src/chsh.c:410 +#: src/passwd.c:825 src/passwd.c:926 msgid "Error updating the DBM password entry.\n" msgstr "" "������ ���� ��� �������� ��� ����������� ��� dbm ������ ������������.\n" -#: src/chage.c:753 +#: src/chage.c:756 #, c-format msgid "%s: can't rewrite shadow password file\n" msgstr "%s: �������� ������������ ������� ������� ������������\n" -#: src/chage.c:767 +#: src/chage.c:770 #, c-format msgid "%s: can't rewrite password file\n" msgstr "%s: �������� ������������ ������� ������������\n" -#: src/chage.c:816 +#: src/chage.c:821 #, c-format msgid "%s: no aging information present\n" msgstr "%s: ��� �������� ����������� ��������\n" -#: src/chfn.c:108 +#: src/chfn.c:107 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ]\n" @@ -430,7 +430,7 @@ msgstr "" "Usage: %s [ -f ������_����� ] [ -r �����_�������� ] [ -w ���_�������� ]\n" "\t[ -h ���_������ ] [ -o ���� ] [ ������� ]\n" -#: src/chfn.c:112 +#: src/chfn.c:111 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]\n" @@ -438,364 +438,364 @@ msgstr "" "�����: %s [ -f ������_����� ] [ -r �����_�������� ] [ -w ���_�������� ]\n" "[ -h ���_������ ]\n" -#: src/chfn.c:164 src/chsh.c:120 +#: src/chfn.c:163 src/chsh.c:119 msgid "Enter the new value, or press return for the default\n" msgstr "�������� ��� ��� ����, � ������ `return' ��� ��� ��������������\n" -#: src/chfn.c:167 +#: src/chfn.c:166 msgid "Full Name" msgstr "������ �����" -#: src/chfn.c:169 +#: src/chfn.c:168 #, c-format msgid "\tFull Name: %s\n" msgstr "\t������ �����: %s\n" -#: src/chfn.c:172 +#: src/chfn.c:171 msgid "Room Number" msgstr "������� ��������" -#: src/chfn.c:174 +#: src/chfn.c:173 #, c-format msgid "\tRoom Number: %s\n" msgstr "\t������� ��������: %s\n" -#: src/chfn.c:177 +#: src/chfn.c:176 msgid "Work Phone" msgstr "�������� ��������" -#: src/chfn.c:179 +#: src/chfn.c:178 #, c-format msgid "\tWork Phone: %s\n" msgstr "\t�������� ��������: %s\n" -#: src/chfn.c:182 +#: src/chfn.c:181 msgid "Home Phone" msgstr "�������� ������" -#: src/chfn.c:184 +#: src/chfn.c:183 #, c-format msgid "\tHome Phone: %s\n" msgstr "\t�������� ������: %s\n" -#: src/chfn.c:187 +#: src/chfn.c:186 msgid "Other" msgstr "����" -#: src/chfn.c:300 src/chfn.c:308 src/chfn.c:316 src/chfn.c:324 src/chfn.c:332 -#: src/chfn.c:393 src/passwd.c:1228 +#: src/chfn.c:299 src/chfn.c:307 src/chfn.c:315 src/chfn.c:323 src/chfn.c:331 +#: src/chfn.c:392 src/passwd.c:1226 #, c-format msgid "%s: Permission denied.\n" msgstr "%s: ����� �����������.\n" -#: src/chfn.c:353 src/chsh.c:226 src/passwd.c:1279 +#: src/chfn.c:352 src/chsh.c:225 src/passwd.c:1277 #, c-format msgid "%s: Unknown user %s\n" msgstr "%s: �������� � ������� %s\n" -#: src/chfn.c:359 src/chsh.c:234 src/passwd.c:1209 +#: src/chfn.c:358 src/chsh.c:233 src/passwd.c:1207 #, c-format msgid "%s: Cannot determine your user name.\n" msgstr "%s: ��� ����� ������� �� ���������� �� ����� ������ ���.\n" -#: src/chfn.c:375 src/chsh.c:252 +#: src/chfn.c:374 src/chsh.c:251 #, c-format msgid "%s: cannot change user `%s' on NIS client.\n" msgstr "%s: �������� ������� ������ `%s' ���� NIS ��������������.\n" -#: src/chfn.c:380 src/chsh.c:259 +#: src/chfn.c:379 src/chsh.c:258 #, c-format msgid "%s: `%s' is the NIS master for this client.\n" msgstr "%s: `%s' ����� � ������ ����������� NIS ��'����� ��� ��������������.\n" -#: src/chfn.c:455 +#: src/chfn.c:454 #, c-format msgid "Changing the user information for %s\n" msgstr "������ ����������� ������ ��� ��� %s\n" -#: src/chfn.c:464 +#: src/chfn.c:463 #, c-format msgid "%s: invalid name: \"%s\"\n" msgstr "%s: �� ������ �����: `%s'\n" -#: src/chfn.c:469 +#: src/chfn.c:468 #, c-format msgid "%s: invalid room number: \"%s\"\n" msgstr "%s: �� ������� ������� ��������: `%s'\n" -#: src/chfn.c:474 +#: src/chfn.c:473 #, c-format msgid "%s: invalid work phone: \"%s\"\n" msgstr "%s: �� ������ �������� ��������: `%s'\n" -#: src/chfn.c:479 +#: src/chfn.c:478 #, c-format msgid "%s: invalid home phone: \"%s\"\n" msgstr "%s: �� ������ �������� ������: `%s'\n" -#: src/chfn.c:484 +#: src/chfn.c:483 #, c-format msgid "%s: \"%s\" contains illegal characters\n" msgstr "%s: \"%s\" �������� �� �������� ����������\n" -#: src/chfn.c:496 +#: src/chfn.c:495 #, c-format msgid "%s: fields too long\n" msgstr "%s: ���� ������ �����\n" -#: src/chfn.c:511 src/chsh.c:349 src/gpasswd.c:583 src/passwd.c:1390 +#: src/chfn.c:510 src/chsh.c:348 src/gpasswd.c:582 src/passwd.c:1388 msgid "Cannot change ID to root.\n" msgstr "�������� ������� ���������� ������ �� root.\n" -#: src/chfn.c:524 src/chsh.c:363 src/passwd.c:737 src/passwd.c:882 +#: src/chfn.c:523 src/chsh.c:362 src/passwd.c:735 src/passwd.c:880 msgid "Cannot lock the password file; try again later.\n" msgstr "�������� ����������� ��� ������� ������������. ��������� ��������.\n" -#: src/chfn.c:530 src/chsh.c:369 src/passwd.c:742 src/passwd.c:887 +#: src/chfn.c:529 src/chsh.c:368 src/passwd.c:740 src/passwd.c:885 msgid "Cannot open the password file.\n" msgstr "�������� ���������� ��� ������� ������������.\n" -#: src/chfn.c:547 src/chsh.c:384 src/passwd.c:748 src/usermod.c:1272 +#: src/chfn.c:546 src/chsh.c:383 src/passwd.c:746 src/usermod.c:1271 #, c-format msgid "%s: %s not found in /etc/passwd\n" msgstr "%s: � %s ��� ������� ��� /etc/passwd\n" -#: src/chfn.c:564 src/chsh.c:403 src/passwd.c:821 src/passwd.c:922 -#: src/passwd.c:962 +#: src/chfn.c:563 src/chsh.c:402 src/passwd.c:819 src/passwd.c:920 +#: src/passwd.c:960 msgid "Error updating the password entry.\n" msgstr "������ ���� ��� �������� ����������� ��� ������ ������������.\n" -#: src/chfn.c:587 src/chsh.c:426 src/passwd.c:834 src/passwd.c:935 +#: src/chfn.c:586 src/chsh.c:425 src/passwd.c:832 src/passwd.c:933 msgid "Cannot commit password file changes.\n" msgstr "�������� ��������� ��� ������� ��� ������ ������������.\n" -#: src/chfn.c:594 src/chsh.c:433 +#: src/chfn.c:593 src/chsh.c:432 msgid "Cannot unlock the password file.\n" msgstr "�������� ������������� ��� ������� ������������\n" -#: src/chpasswd.c:78 +#: src/chpasswd.c:76 #, c-format msgid "usage: %s [-e]\n" msgstr "�����: %s [-e]\n" -#: src/chpasswd.c:134 src/pwconv.c:105 +#: src/chpasswd.c:132 src/pwconv.c:104 #, c-format msgid "%s: can't lock shadow file\n" msgstr "%s: �������� ����������� ��� ������� ������� ������������\n" -#: src/chpasswd.c:139 src/gpasswd.c:609 src/pwconv.c:110 src/pwunconv.c:119 -#: src/pwunconv.c:124 +#: src/chpasswd.c:137 src/gpasswd.c:608 src/pwconv.c:109 src/pwunconv.c:118 +#: src/pwunconv.c:123 #, c-format msgid "%s: can't open shadow file\n" msgstr "%s: �������� ���������� ��� ������� ������� ������������\n" -#: src/chpasswd.c:161 src/newusers.c:418 +#: src/chpasswd.c:159 src/newusers.c:415 #, c-format msgid "%s: line %d: line too long\n" msgstr "%s: ������ %d: ���� ������ ������\n" -#: src/chpasswd.c:181 +#: src/chpasswd.c:179 #, c-format msgid "%s: line %d: missing new password\n" msgstr "%s: ������ %d: ������� ���� ������������\n" -#: src/chpasswd.c:197 +#: src/chpasswd.c:195 #, c-format msgid "%s: line %d: unknown user %s\n" msgstr "%s: ������ %d: �������� ������� %s\n" -#: src/chpasswd.c:249 +#: src/chpasswd.c:247 #, c-format msgid "%s: line %d: cannot update password entry\n" msgstr "%s: ������ %d: �������� ��������� ����������� ������������\n" -#: src/chpasswd.c:265 src/newusers.c:538 +#: src/chpasswd.c:263 src/newusers.c:535 #, c-format msgid "%s: error detected, changes ignored\n" msgstr "%s: ����������� ������, �� ������� ����������\n" -#: src/chpasswd.c:276 +#: src/chpasswd.c:274 #, c-format msgid "%s: error updating shadow file\n" msgstr "" "%s: ������ ���� ��� �������� ������������ ��� ������ ������� ������������\n" -#: src/chpasswd.c:284 +#: src/chpasswd.c:282 #, c-format msgid "%s: error updating password file\n" msgstr "%s: ������ ���� ��� �������� ������������ ��� ������ ������������\n" -#: src/chsh.c:106 +#: src/chsh.c:105 #, c-format msgid "Usage: %s [ -s shell ] [ name ]\n" msgstr "�����: %s [ -s ������ ] [ ����� ]\n" -#: src/chsh.c:121 +#: src/chsh.c:120 msgid "Login Shell" msgstr "������� �������" -#: src/chsh.c:275 src/chsh.c:288 +#: src/chsh.c:274 src/chsh.c:287 #, c-format msgid "You may not change the shell for %s.\n" msgstr "��� �������� �� �������� �� ����� ��� ��(�) %s.\n" -#: src/chsh.c:317 +#: src/chsh.c:316 #, c-format msgid "Changing the login shell for %s\n" msgstr "������ ��� ������ ��� ��� %s\n" -#: src/chsh.c:329 +#: src/chsh.c:328 #, c-format msgid "%s: Invalid entry: %s\n" msgstr "%s: �� ������ ����������: %s\n" -#: src/chsh.c:334 +#: src/chsh.c:333 #, c-format msgid "%s is an invalid shell.\n" msgstr "%s ��� ����� ������� ������.\n" -#: src/dpasswd.c:71 +#: src/dpasswd.c:69 #, c-format msgid "Usage: %s [ -(a|d) ] shell\n" msgstr "�����: %s [ -(ald) ] ������\n" -#: src/dpasswd.c:136 +#: src/dpasswd.c:134 msgid "Shell password: " msgstr "����������� ������: " -#: src/dpasswd.c:142 +#: src/dpasswd.c:140 msgid "re-enter Shell password: " msgstr "������������ �� ����������� ������: " -#: src/dpasswd.c:149 +#: src/dpasswd.c:147 #, c-format msgid "%s: Passwords do not match, try again.\n" msgstr "%s: �� ����������� ��� ����������, ��������� ����.\n" -#: src/dpasswd.c:169 +#: src/dpasswd.c:167 #, c-format msgid "%s: can't create %s" msgstr "%s: �������� ����������� ��� %s" -#: src/dpasswd.c:174 +#: src/dpasswd.c:172 #, c-format msgid "%s: can't open %s" msgstr "%s: �������� ���������� ��� %s" -#: src/dpasswd.c:202 +#: src/dpasswd.c:200 #, c-format msgid "%s: Shell %s not found.\n" msgstr "%s: � ������ %s ��� �������.\n" -#: src/expiry.c:85 +#: src/expiry.c:84 msgid "Usage: expiry { -f | -c }\n" msgstr "�����: expiry { -f | -c }\n" -#: src/expiry.c:138 +#: src/expiry.c:137 #, c-format msgid "%s: WARNING! Must be set-UID root!\n" msgstr "" "%s: �������! ������ �� ���� ����� �� bit ����������� ���������� root!\n" -#: src/expiry.c:149 +#: src/expiry.c:148 #, c-format msgid "%s: unknown user\n" msgstr "%s: �������� �������\n" -#: src/faillog.c:80 +#: src/faillog.c:79 #, c-format msgid "usage: %s [-a|-u user] [-m max] [-r] [-t days] [-l locksecs]\n" msgstr "" "�����: %s [-a|-u �������] [-m ���] [-r] [-t �����] [-l ������������_�����]\n" -#: src/faillog.c:135 src/lastlog.c:95 +#: src/faillog.c:134 src/lastlog.c:94 #, c-format msgid "Unknown User: %s\n" msgstr "�������� �������: %s\n" -#: src/faillog.c:216 +#: src/faillog.c:215 msgid "Username Failures Maximum Latest\n" msgstr "�����_������ ��������� ������� ���������\n" -#: src/faillog.c:233 +#: src/faillog.c:232 #, c-format msgid " %s on %s" msgstr " %s ��� %s" -#: src/faillog.c:237 +#: src/faillog.c:236 #, c-format msgid " [%lds left]" msgstr " [%lds ���������]" -#: src/faillog.c:240 +#: src/faillog.c:239 #, c-format msgid " [%lds lock]" msgstr " [%lds ��������]" -#: src/gpasswd.c:91 +#: src/gpasswd.c:89 #, c-format msgid "usage: %s [-r|-R] group\n" msgstr "�����: %s [-r|-R] �����\n" -#: src/gpasswd.c:92 +#: src/gpasswd.c:90 #, c-format msgid " %s [-a user] group\n" msgstr " %s [-a �������] �����\n" -#: src/gpasswd.c:93 +#: src/gpasswd.c:91 #, c-format msgid " %s [-d user] group\n" msgstr " %s [-d �������] �����\n" -#: src/gpasswd.c:95 +#: src/gpasswd.c:93 #, c-format msgid " %s [-A user,...] [-M user,...] group\n" msgstr " %s [-A �������,...] [-M �������,...] �����\n" -#: src/gpasswd.c:98 +#: src/gpasswd.c:96 #, c-format msgid " %s [-M user,...] group\n" msgstr " %s [-M �������,...] �����\n" -#: src/gpasswd.c:162 src/gpasswd.c:247 +#: src/gpasswd.c:160 src/gpasswd.c:245 #, c-format msgid "%s: unknown user %s\n" msgstr "%s: �������� ������� %s\n" -#: src/gpasswd.c:174 +#: src/gpasswd.c:172 msgid "Permission denied.\n" msgstr "����� �����������.\n" -#: src/gpasswd.c:259 +#: src/gpasswd.c:257 #, c-format msgid "%s: shadow group passwords required for -A\n" msgstr "%s: ������ ����������� ������ ����������� ��� �� -A\n" -#: src/gpasswd.c:310 +#: src/gpasswd.c:308 msgid "Who are you?\n" msgstr "����� �����;\n" -#: src/gpasswd.c:330 src/newgrp.c:247 +#: src/gpasswd.c:328 src/newgrp.c:251 #, c-format msgid "unknown group: %s\n" msgstr "������� �����: %s\n" -#: src/gpasswd.c:438 +#: src/gpasswd.c:436 #, c-format msgid "Adding user %s to group %s\n" msgstr "�������� ��� ������ %s ���� ����� %s\n" -#: src/gpasswd.c:455 +#: src/gpasswd.c:453 #, c-format msgid "Removing user %s from group %s\n" msgstr "�������� ��� ������ %s ��� ��� ����� %s\n" -#: src/gpasswd.c:468 +#: src/gpasswd.c:466 #, c-format msgid "%s: unknown member %s\n" msgstr "%s: ������� ����� %s\n" -#: src/gpasswd.c:515 +#: src/gpasswd.c:513 #, c-format msgid "%s: Not a tty\n" msgstr "%s: ��� ����� tty\n" @@ -807,106 +807,106 @@ msgstr "%s: #. * the old password since the invoker is either the group #. * owner, or root. #. -#: src/gpasswd.c:537 +#: src/gpasswd.c:535 #, c-format msgid "Changing the password for group %s\n" msgstr "������ ��� ���������� ��� ��� ����� %s\n" -#: src/gpasswd.c:540 +#: src/gpasswd.c:538 msgid "New Password: " msgstr "��� �����������: " -#: src/gpasswd.c:545 src/passwd.c:424 +#: src/gpasswd.c:543 src/passwd.c:422 msgid "Re-enter new password: " msgstr "������������ �� ��� �����������: " -#: src/gpasswd.c:557 +#: src/gpasswd.c:555 msgid "They don't match; try again" msgstr "��� ����������. ��������� ����" -#: src/gpasswd.c:561 +#: src/gpasswd.c:559 #, c-format msgid "%s: Try again later\n" msgstr "%s: ������������� ��������\n" -#: src/gpasswd.c:591 +#: src/gpasswd.c:590 #, c-format msgid "%s: can't get lock\n" msgstr "%s: �������� ����������� �����������\n" -#: src/gpasswd.c:597 +#: src/gpasswd.c:596 #, c-format msgid "%s: can't get shadow lock\n" msgstr "" "%s: �������� ����������� ����������� ��� ������� ������� ������������\n" -#: src/gpasswd.c:603 +#: src/gpasswd.c:602 #, c-format msgid "%s: can't open file\n" msgstr "%s: �������� ���������� ��� ������� %s\n" -#: src/gpasswd.c:615 +#: src/gpasswd.c:614 #, c-format msgid "%s: can't update entry\n" msgstr "%s: �������� ��������� �����������\n" -#: src/gpasswd.c:621 +#: src/gpasswd.c:620 #, c-format msgid "%s: can't update shadow entry\n" msgstr "%s: �������� ��������� ����������� ��� ������ ������� ������������\n" -#: src/gpasswd.c:627 +#: src/gpasswd.c:626 #, c-format msgid "%s: can't re-write file\n" msgstr "%s: �������� ������������ �������\n" -#: src/gpasswd.c:633 +#: src/gpasswd.c:632 #, c-format msgid "%s: can't re-write shadow file\n" msgstr "%s: �������� ������������ ������� ������� ������������\n" -#: src/gpasswd.c:641 +#: src/gpasswd.c:640 #, c-format msgid "%s: can't unlock file\n" msgstr "%s: �������� ������������� �������\n" -#: src/gpasswd.c:646 +#: src/gpasswd.c:645 #, c-format msgid "%s: can't update DBM files\n" msgstr "%s: �������� ��������� ��� DBM �������\n" -#: src/gpasswd.c:653 +#: src/gpasswd.c:652 #, c-format msgid "%s: can't update DBM shadow files\n" msgstr "%s: �������� ��������� ��� DBM ������� ������� ������������\n" -#: src/groupadd.c:106 +#: src/groupadd.c:105 msgid "usage: groupadd [-g gid [-o]] group\n" msgstr "�����: groupadd [-g gid [-o]] �����\n" -#: src/groupadd.c:174 src/groupadd.c:197 src/groupmod.c:184 src/groupmod.c:231 -#: src/useradd.c:932 src/usermod.c:513 src/usermod.c:649 +#: src/groupadd.c:173 src/groupadd.c:196 src/groupmod.c:183 src/groupmod.c:230 +#: src/useradd.c:931 src/usermod.c:512 src/usermod.c:648 #, c-format msgid "%s: error adding new group entry\n" msgstr "%s: ������ ���� ��� �������� ���� ����������� ��� ������ ������\n" -#: src/groupadd.c:184 src/groupadd.c:207 src/groupmod.c:200 src/useradd.c:943 -#: src/usermod.c:525 src/usermod.c:661 +#: src/groupadd.c:183 src/groupadd.c:206 src/groupmod.c:199 src/useradd.c:942 +#: src/usermod.c:524 src/usermod.c:660 #, c-format msgid "%s: cannot add new dbm group entry\n" msgstr "%s: �������� ��������� ���� dbm ����������� ��� ������ ������\n" -#: src/groupadd.c:259 src/useradd.c:997 +#: src/groupadd.c:258 src/useradd.c:996 #, c-format msgid "%s: name %s is not unique\n" msgstr "%s: �� ����� %s ��� ����� ��������\n" -#: src/groupadd.c:274 +#: src/groupadd.c:273 #, c-format msgid "%s: gid %ld is not unique\n" msgstr "%s: �� gid %ld ��� ����� ��������\n" -#: src/groupadd.c:298 +#: src/groupadd.c:297 #, c-format msgid "%s: can't get unique gid\n" msgstr "%s: �������� ������� ��������� gid\n" @@ -914,80 +914,80 @@ msgstr "%s: #. #. * All invalid group names land here. #. -#: src/groupadd.c:322 src/groupmod.c:342 +#: src/groupadd.c:321 src/groupmod.c:341 #, c-format msgid "%s: %s is a not a valid group name\n" msgstr "%s: �� %s ��� ����� ������ ����� ������\n" -#: src/groupadd.c:351 src/groupmod.c:368 +#: src/groupadd.c:350 src/groupmod.c:367 #, c-format msgid "%s: invalid group %s\n" msgstr "%s: �� ������ ����� `%s'\n" -#: src/groupadd.c:368 src/useradd.c:1273 +#: src/groupadd.c:367 src/useradd.c:1272 #, c-format msgid "%s: -O requires NAME=VALUE\n" msgstr "%s: -O ������� �����=����\n" -#: src/groupadd.c:413 src/groupdel.c:168 src/groupmod.c:404 src/useradd.c:1382 -#: src/userdel.c:273 src/usermod.c:537 +#: src/groupadd.c:412 src/groupdel.c:167 src/groupmod.c:403 src/useradd.c:1381 +#: src/userdel.c:303 src/usermod.c:536 #, c-format msgid "%s: cannot rewrite group file\n" msgstr "%s: �������� ������������ ��� ������� ������\n" -#: src/groupadd.c:419 src/groupdel.c:174 src/groupmod.c:410 src/useradd.c:1390 -#: src/userdel.c:279 src/usermod.c:674 +#: src/groupadd.c:418 src/groupdel.c:173 src/groupmod.c:409 src/useradd.c:1389 +#: src/userdel.c:309 src/usermod.c:673 #, c-format msgid "%s: cannot rewrite shadow group file\n" msgstr "%s: �������� ������������ ��� ������� ������� ������������ ������\n" -#: src/groupadd.c:438 src/groupdel.c:193 src/groupmod.c:429 src/userdel.c:359 +#: src/groupadd.c:437 src/groupdel.c:192 src/groupmod.c:428 src/userdel.c:389 #, c-format msgid "%s: unable to lock group file\n" msgstr "%s: �������� ����������� ��� ������� ������\n" -#: src/groupadd.c:442 src/groupdel.c:197 src/groupmod.c:433 +#: src/groupadd.c:441 src/groupdel.c:196 src/groupmod.c:432 #, c-format msgid "%s: unable to open group file\n" msgstr "%s: �������� ���������� ��� ������� ������\n" -#: src/groupadd.c:447 src/groupdel.c:202 src/groupmod.c:438 src/userdel.c:368 +#: src/groupadd.c:446 src/groupdel.c:201 src/groupmod.c:437 src/userdel.c:398 #, c-format msgid "%s: unable to lock shadow group file\n" msgstr "%s: �������� ����������� ��� ������� ������� ������������ ������\n" -#: src/groupadd.c:452 src/groupdel.c:207 src/groupmod.c:443 +#: src/groupadd.c:451 src/groupdel.c:206 src/groupmod.c:442 #, c-format msgid "%s: unable to open shadow group file\n" msgstr "%s: �������� ���������� ��� ������� ������� ������������ ������\n" -#: src/groupadd.c:519 +#: src/groupadd.c:518 #, c-format msgid "%s: group %s exists\n" msgstr "%s: � ����� %s �������\n" -#: src/groupdel.c:87 +#: src/groupdel.c:86 msgid "usage: groupdel group\n" msgstr "�����: groupdel �����\n" -#: src/groupdel.c:105 src/groupmod.c:188 src/groupmod.c:235 +#: src/groupdel.c:104 src/groupmod.c:187 src/groupmod.c:234 #, c-format msgid "%s: error removing group entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ������\n" -#: src/groupdel.c:117 src/groupmod.c:207 +#: src/groupdel.c:116 src/groupmod.c:206 #, c-format msgid "%s: error removing group dbm entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ��� dbm ������ ������\n" -#: src/groupdel.c:132 +#: src/groupdel.c:131 #, c-format msgid "%s: error removing shadow group entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� ������ ������� ������������ " "������\n" -#: src/groupdel.c:145 src/groupmod.c:253 +#: src/groupdel.c:144 src/groupmod.c:252 #, c-format msgid "%s: error removing shadow group dbm entry\n" msgstr "" @@ -996,78 +996,78 @@ msgstr "" #. #. * Can't remove the group. #. -#: src/groupdel.c:249 +#: src/groupdel.c:248 #, c-format msgid "%s: cannot remove user's primary group.\n" msgstr "%s: �������� ��������� ��� ����������� ������ ��� ������.\n" -#: src/groupdel.c:306 src/groupmod.c:502 +#: src/groupdel.c:305 src/groupmod.c:501 #, c-format msgid "%s: group %s does not exist\n" msgstr "%s: � ����� %s ��� �������\n" -#: src/groupdel.c:320 src/groupmod.c:518 +#: src/groupdel.c:319 src/groupmod.c:517 #, c-format msgid "%s: group %s is a NIS group\n" msgstr "%s: � ����� %s ����� NIS �����\n" -#: src/groupdel.c:326 src/groupmod.c:524 src/userdel.c:731 src/usermod.c:990 +#: src/groupdel.c:325 src/groupmod.c:523 src/userdel.c:761 src/usermod.c:989 #, c-format msgid "%s: %s is the NIS master\n" msgstr "%s: � %s ����� � ������ ����������� NIS\n" -#: src/groupmod.c:106 +#: src/groupmod.c:105 msgid "usage: groupmod [-g gid [-o]] [-n name] group\n" msgstr "�����: groupmod [-g gid [-o]] [-n �����] �����\n" -#: src/groupmod.c:166 +#: src/groupmod.c:165 #, fuzzy, c-format msgid "%s: %s not found in /etc/group\n" msgstr "%s: � %s ��� ������� ��� /etc/passwd\n" -#: src/groupmod.c:247 +#: src/groupmod.c:246 #, c-format msgid "%s: cannot add new dbm shadow group entry\n" msgstr "" "%s: �������� ��������� ���� dbm ����������� ��� ������ ������� ������������ " "������\n" -#: src/groupmod.c:300 +#: src/groupmod.c:299 #, c-format msgid "%s: %ld is not a unique gid\n" msgstr "%s: �� %ld ��� ����� �������� gid\n" -#: src/groupmod.c:331 +#: src/groupmod.c:330 #, c-format msgid "%s: %s is not a unique name\n" msgstr "%s: �� %s ��� ����� �������� �����\n" -#: src/groups.c:63 +#: src/groups.c:62 #, c-format msgid "unknown user %s\n" msgstr "�������� �������: %s\n" -#: src/grpck.c:99 +#: src/grpck.c:98 #, c-format msgid "Usage: %s [ -r ] [ group [ gshadow ] ]\n" msgstr "�����: %s [ -r ] [ group [ gshadow ] ]\n" -#: src/grpck.c:101 +#: src/grpck.c:100 #, c-format msgid "Usage: %s [ -r ] [ group ]\n" msgstr "�����: %s [ -r ] [ group ]\n" -#: src/grpck.c:120 src/pwck.c:120 +#: src/grpck.c:119 src/pwck.c:119 msgid "No" msgstr "���" -#: src/grpck.c:235 src/grpck.c:243 src/pwck.c:217 src/pwck.c:226 +#: src/grpck.c:234 src/grpck.c:242 src/pwck.c:216 src/pwck.c:225 #, c-format msgid "%s: cannot lock file %s\n" msgstr "%s: �������� ����������� ��� ������� %s\n" -#: src/grpck.c:258 src/grpck.c:266 src/mkpasswd.c:217 src/pwck.c:242 -#: src/pwck.c:251 +#: src/grpck.c:257 src/grpck.c:265 src/mkpasswd.c:216 src/pwck.c:241 +#: src/pwck.c:250 #, c-format msgid "%s: cannot open file %s\n" msgstr "%s: �������� ���������� ������� %s\n" @@ -1076,13 +1076,13 @@ msgstr "%s: #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:299 +#: src/grpck.c:298 msgid "invalid group file entry\n" msgstr "�� ������ ���������� ��� ������ ������\n" -#: src/grpck.c:300 src/grpck.c:363 src/grpck.c:455 src/grpck.c:518 -#: src/grpck.c:535 src/pwck.c:287 src/pwck.c:349 src/pwck.c:456 src/pwck.c:518 -#: src/pwck.c:542 +#: src/grpck.c:299 src/grpck.c:362 src/grpck.c:454 src/grpck.c:517 +#: src/grpck.c:534 src/pwck.c:286 src/pwck.c:348 src/pwck.c:455 src/pwck.c:517 +#: src/pwck.c:541 #, c-format msgid "delete line `%s'? " msgstr "�������� ������� `%s'; " @@ -1091,26 +1091,26 @@ msgstr " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:362 +#: src/grpck.c:361 msgid "duplicate group entry\n" msgstr "��������� ����������� ��� ������ ������\n" -#: src/grpck.c:379 +#: src/grpck.c:378 #, c-format msgid "invalid group name `%s'\n" msgstr "�� ������ ����� ������ `%s'\n" -#: src/grpck.c:389 +#: src/grpck.c:388 #, c-format msgid "group %s: bad GID (%d)\n" msgstr "����� %s: ����� GID (%d)\n" -#: src/grpck.c:415 +#: src/grpck.c:414 #, c-format msgid "group %s: no user %s\n" msgstr "����� %s: ��� ������� ������� %s\n" -#: src/grpck.c:417 src/grpck.c:586 +#: src/grpck.c:416 src/grpck.c:585 #, c-format msgid "delete member `%s'? " msgstr "�������� ������ `%s'; " @@ -1119,7 +1119,7 @@ msgstr " #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:454 +#: src/grpck.c:453 msgid "invalid shadow group file entry\n" msgstr "�� ������ ���������� ��� ������ ������� ������������ ������\n" @@ -1127,65 +1127,65 @@ msgstr " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:517 +#: src/grpck.c:516 msgid "duplicate shadow group entry\n" msgstr "��������� ����������� ��� ������ ������� ������������ ������\n" -#: src/grpck.c:534 +#: src/grpck.c:533 msgid "no matching group file entry\n" msgstr "��� ������� ���������� ��� ������ ������ ��� �� ���������\n" -#: src/grpck.c:554 +#: src/grpck.c:553 #, c-format msgid "shadow group %s: no administrative user %s\n" msgstr "������� ����� %s: ��� ������� ������������ ������� %s\n" -#: src/grpck.c:556 +#: src/grpck.c:555 #, c-format msgid "delete administrative member `%s'? " msgstr "�������� �������������� ������ `%s'; " -#: src/grpck.c:584 +#: src/grpck.c:583 #, c-format msgid "shadow group %s: no user %s\n" msgstr "������� ����� %s: ��� ������� ������� %s\n" -#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581 +#: src/grpck.c:610 src/grpck.c:616 src/pwck.c:572 src/pwck.c:580 #, c-format msgid "%s: cannot update file %s\n" msgstr "%s: �������� ��������� ������� %s\n" -#: src/grpck.c:641 src/pwck.c:607 +#: src/grpck.c:640 src/pwck.c:606 #, c-format msgid "%s: the files have been updated; run mkpasswd\n" msgstr "%s: �� ������ �����������. ��������� mkpasswd\n" -#: src/grpck.c:642 src/grpck.c:646 src/pwck.c:608 src/pwck.c:612 +#: src/grpck.c:641 src/grpck.c:645 src/pwck.c:607 src/pwck.c:611 #, c-format msgid "%s: no changes\n" msgstr "%s: ����� ������\n" -#: src/grpck.c:645 src/pwck.c:611 +#: src/grpck.c:644 src/pwck.c:610 #, c-format msgid "%s: the files have been updated\n" msgstr "%s: �� ������ �����������\n" -#: src/grpconv.c:63 src/grpunconv.c:64 +#: src/grpconv.c:62 src/grpunconv.c:63 #, c-format msgid "%s: can't lock group file\n" msgstr "%s: �������� ����������� ��� ������� ������\n" -#: src/grpconv.c:68 src/grpunconv.c:69 +#: src/grpconv.c:67 src/grpunconv.c:68 #, c-format msgid "%s: can't open group file\n" msgstr "%s: �������� ���������� ��� ������� ������\n" -#: src/grpconv.c:73 src/grpunconv.c:74 +#: src/grpconv.c:72 src/grpunconv.c:73 #, c-format msgid "%s: can't lock shadow group file\n" msgstr "%s: �������� ����������� ��� ������� ������� ������������ ������\n" -#: src/grpconv.c:78 src/grpunconv.c:79 +#: src/grpconv.c:77 src/grpunconv.c:78 #, c-format msgid "%s: can't open shadow group file\n" msgstr "%s: �������� ���������� ��� ������� ������� ������������ ������\n" @@ -1193,90 +1193,90 @@ msgstr "%s: #. #. * This shouldn't happen (the entry exists) but... #. -#: src/grpconv.c:94 +#: src/grpconv.c:93 #, c-format msgid "%s: can't remove shadow group %s\n" msgstr "" "%s: �������� ��������� ��� ������ %s, ��� �� ������ ������� ������������\n" "������\n" -#: src/grpconv.c:135 src/pwconv.c:161 +#: src/grpconv.c:134 src/pwconv.c:160 #, c-format msgid "%s: can't update shadow entry for %s\n" msgstr "" "%s: �������� ��������� ����������� ��� ������ ������� ������������ ��� ��� " "%s\n" -#: src/grpconv.c:144 src/grpunconv.c:95 +#: src/grpconv.c:143 src/grpunconv.c:94 #, c-format msgid "%s: can't update entry for group %s\n" msgstr "%s: �������� ��������� ����������� ��� ��� ����� %s\n" -#: src/grpconv.c:151 src/grpunconv.c:103 +#: src/grpconv.c:150 src/grpunconv.c:102 #, c-format msgid "%s: can't update shadow group file\n" msgstr "%s: �������� ��������� ��� ������� ������� ������������ ������\n" -#: src/grpconv.c:155 src/grpunconv.c:108 +#: src/grpconv.c:154 src/grpunconv.c:107 #, c-format msgid "%s: can't update group file\n" msgstr "%s: �������� ��������� ��� �� ������ ������\n" -#: src/grpconv.c:170 src/grpunconv.c:129 +#: src/grpconv.c:169 src/grpunconv.c:128 #, c-format msgid "%s: not configured for shadow group support.\n" msgstr "%s: ��� ����� ������������ ��� ������ ����������� ������.\n" -#: src/grpunconv.c:113 +#: src/grpunconv.c:112 #, c-format msgid "%s: can't delete shadow group file\n" msgstr "" "%s: ��� ����� ������� �� ��������� �� ������ ������� ������������ ������\n" -#: src/id.c:57 +#: src/id.c:56 msgid "usage: id [ -a ]\n" msgstr "�����: id [ -a ]\n" -#: src/id.c:59 +#: src/id.c:58 msgid "usage: id\n" msgstr "�����: id\n" -#: src/id.c:119 +#: src/id.c:118 #, c-format msgid "uid=%d(%s)" msgstr "" -#: src/id.c:121 +#: src/id.c:120 #, c-format msgid "uid=%d" msgstr "" -#: src/id.c:125 +#: src/id.c:124 #, c-format msgid " gid=%d(%s)" msgstr "" -#: src/id.c:127 +#: src/id.c:126 #, c-format msgid " gid=%d" msgstr "" -#: src/id.c:137 +#: src/id.c:136 #, c-format msgid " euid=%d(%s)" msgstr "" -#: src/id.c:139 +#: src/id.c:138 #, c-format msgid " euid=%d" msgstr "" -#: src/id.c:144 +#: src/id.c:143 #, c-format msgid " egid=%d(%s)" msgstr "" -#: src/id.c:146 +#: src/id.c:145 #, c-format msgid " egid=%d" msgstr "" @@ -1289,42 +1289,42 @@ msgstr "" #. * where "###" is a numerical value and "aaa" is the #. * corresponding name for each respective numerical value. #. -#: src/id.c:167 +#: src/id.c:166 msgid " groups=" msgstr " ������=" -#: src/lastlog.c:168 +#: src/lastlog.c:167 msgid "Username Port From Latest\n" msgstr "�����_������ ���� ��� ���������\n" -#: src/lastlog.c:170 +#: src/lastlog.c:169 msgid "Username Port Latest\n" msgstr "�����_������ ���� ���������\n" -#: src/lastlog.c:184 +#: src/lastlog.c:183 msgid "**Never logged in**" msgstr "**����� ������� ��� �������**" -#: src/login.c:199 +#: src/login.c:198 #, c-format msgid "usage: %s [-p] [name]\n" msgstr "�����: %s [-p] [�����]\n" -#: src/login.c:202 +#: src/login.c:201 #, c-format msgid " %s [-p] [-h host] [-f name]\n" msgstr " %s [-p] [-h �������] [-f �����]\n" -#: src/login.c:204 +#: src/login.c:203 #, c-format msgid " %s [-p] -r host\n" msgstr " %s [-p] -r �������\n" -#: src/login.c:287 +#: src/login.c:286 msgid "Invalid login time\n" msgstr "��������� ��� �������\n" -#: src/login.c:342 +#: src/login.c:341 msgid "" "\n" "System closed for routine maintenance\n" @@ -1332,7 +1332,7 @@ msgstr "" "\n" "�� ������� ������� ��� ��������� ��������\n" -#: src/login.c:352 +#: src/login.c:351 msgid "" "\n" "[Disconnect bypassed -- root login allowed.]\n" @@ -1340,7 +1340,7 @@ msgstr "" "\n" "[��������� ����������� -- � ������� ��� root ��������.]\n" -#: src/login.c:391 +#: src/login.c:390 #, c-format msgid "" "\n" @@ -1359,7 +1359,7 @@ msgstr " msgid " on `%.100s'" msgstr " ��� `%.100s'" -#: src/login.c:807 +#: src/login.c:834 #, c-format msgid "" "\n" @@ -1368,35 +1368,35 @@ msgstr "" "\n" "%s login: " -#: src/login.c:809 +#: src/login.c:836 msgid "login: " msgstr "login: " -#: src/login.c:991 src/sulogin.c:233 +#: src/login.c:1026 src/sulogin.c:231 msgid "Login incorrect" msgstr "���������� ������� �������" -#: src/login.c:1163 +#: src/login.c:1213 msgid "Warning: login re-enabled after temporary lockout.\n" msgstr "" "�������������: � ������� ������������������ ���� ��� ��������� ����������.\n" -#: src/login.c:1173 +#: src/login.c:1223 #, c-format msgid "Last login: %s on %s" msgstr "��������� �������: %s ��� %s" -#: src/login.c:1176 +#: src/login.c:1226 #, c-format msgid "Last login: %.19s on %s" msgstr "��������� �������: %.19s ��� %s" -#: src/login.c:1181 +#: src/login.c:1231 #, c-format msgid " from %.*s" msgstr " ��� %.*s" -#: src/login.c:1246 +#: src/login.c:1303 msgid "Starting rad_login\n" msgstr "������ rad_login\n" @@ -1407,194 +1407,194 @@ msgstr "" "%s: ��� ������� DBM ���� ��������� ��� ������� - ����� �������� ��� " "����������\n" -#: src/mkpasswd.c:246 src/mkpasswd.c:250 +#: src/mkpasswd.c:245 src/mkpasswd.c:249 #, c-format msgid "%s: cannot overwrite file %s\n" msgstr "%s: �������� �������� ���� ��� �� ������ %s\n" -#: src/mkpasswd.c:264 +#: src/mkpasswd.c:263 #, c-format msgid "%s: cannot open DBM files for %s\n" msgstr "%s: �������� ���������� DBM ������� ��� �� %s\n" -#: src/mkpasswd.c:297 +#: src/mkpasswd.c:296 #, c-format msgid "%s: the beginning with " msgstr "%s: � ���� �� " -#: src/mkpasswd.c:322 +#: src/mkpasswd.c:321 #, c-format msgid "%s: error parsing line \"%s\"\n" msgstr "%s: ������ ���� ��� ����������� ��� ������� \"%s\"\n" -#: src/mkpasswd.c:327 src/mkpasswd.c:329 src/mkpasswd.c:331 src/mkpasswd.c:333 +#: src/mkpasswd.c:326 src/mkpasswd.c:328 src/mkpasswd.c:330 src/mkpasswd.c:332 msgid "adding record for name " msgstr "�������� ����������� ��� ����� " -#: src/mkpasswd.c:337 src/mkpasswd.c:342 src/mkpasswd.c:346 src/mkpasswd.c:350 +#: src/mkpasswd.c:336 src/mkpasswd.c:341 src/mkpasswd.c:345 src/mkpasswd.c:349 #, c-format msgid "%s: error adding record for " msgstr "%s: ������ ���� ��� �������� ����������� ��� " -#: src/mkpasswd.c:368 +#: src/mkpasswd.c:367 #, c-format msgid "added %d entries, longest was %d\n" msgstr "����������� %d ������������, � ���������� ���� %d\n" -#: src/mkpasswd.c:383 +#: src/mkpasswd.c:382 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp|sg ] file\n" msgstr "�����: %s [ -vf ] [ -p|g|sp|sg ] ������\n" -#: src/mkpasswd.c:385 +#: src/mkpasswd.c:384 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp ] file\n" msgstr "�����: %s [ -vf ] [ -p|g|sp ] ������\n" -#: src/mkpasswd.c:388 +#: src/mkpasswd.c:387 #, c-format msgid "Usage: %s [ -vf ] [ -p|g ] file\n" msgstr "�����: %s [ -vf ] [ -p|g ] ������\n" -#: src/newgrp.c:67 +#: src/newgrp.c:66 msgid "usage: newgrp [ - ] [ group ]\n" msgstr "�����: newgrp [ - ] [ ����� ]\n" -#: src/newgrp.c:69 +#: src/newgrp.c:68 #, fuzzy msgid "usage: sg group [[-c] command ]\n" msgstr "�����: sg ����� [ ������ ]\n" -#: src/newgrp.c:122 +#: src/newgrp.c:125 #, c-format msgid "unknown uid: %d\n" msgstr "������� uid: %d\n" -#: src/newgrp.c:198 +#: src/newgrp.c:201 #, c-format msgid "unknown gid: %ld\n" msgstr "������� gid: %ld\n" -#: src/newgrp.c:242 +#: src/newgrp.c:245 #, c-format msgid "unknown gid: %d\n" msgstr "������� gid: %d\n" -#: src/newgrp.c:315 src/newgrp.c:324 +#: src/newgrp.c:323 src/newgrp.c:332 msgid "Sorry.\n" msgstr "�������.\n" -#: src/newgrp.c:356 +#: src/newgrp.c:364 msgid "too many groups\n" msgstr "���� ������ ������\n" -#: src/newusers.c:79 +#: src/newusers.c:76 #, c-format msgid "Usage: %s [ input ]\n" msgstr "�����: %s [ ������� ]\n" -#: src/newusers.c:367 +#: src/newusers.c:364 #, c-format msgid "%s: can't lock /etc/passwd.\n" msgstr "%s: �������� ����������� ��� /etc/passwd.\n" -#: src/newusers.c:378 +#: src/newusers.c:375 #, c-format msgid "%s: can't lock files, try again later\n" msgstr "%s: �������� ����������� �������, ������������� ��������\n" -#: src/newusers.c:393 +#: src/newusers.c:390 #, c-format msgid "%s: can't open files\n" msgstr "%s: �������� ���������� ��� �������\n" -#: src/newusers.c:438 +#: src/newusers.c:435 #, c-format msgid "%s: line %d: invalid line\n" msgstr "%s: ������ %d: �� ������ ������\n" -#: src/newusers.c:456 +#: src/newusers.c:453 #, c-format msgid "%s: line %d: can't create GID\n" msgstr "%s: ������ %d: �������� ����������� GID\n" -#: src/newusers.c:472 +#: src/newusers.c:469 #, c-format msgid "%s: line %d: can't create UID\n" msgstr "%s: ������ %d: �������� ����������� UID\n" -#: src/newusers.c:484 +#: src/newusers.c:481 #, c-format msgid "%s: line %d: cannot find user %s\n" msgstr "%s: ������ %d: �������� ������� ������ %s\n" -#: src/newusers.c:492 +#: src/newusers.c:489 #, c-format msgid "%s: line %d: can't update password\n" msgstr "%s: ������ %d: �������� �������� ������������\n" -#: src/newusers.c:509 +#: src/newusers.c:506 #, c-format msgid "%s: line %d: mkdir failed\n" msgstr "%s: ������ %d: �������� ����������� ���������(mkdir)\n" -#: src/newusers.c:513 +#: src/newusers.c:510 #, c-format msgid "%s: line %d: chown failed\n" msgstr "%s: ������ %d: �������� ������� ���������(chown)\n" -#: src/newusers.c:522 +#: src/newusers.c:519 #, c-format msgid "%s: line %d: can't update entry\n" msgstr "%s: ������ %d: �������� ��������� �����������\n" -#: src/newusers.c:553 +#: src/newusers.c:550 #, c-format msgid "%s: error updating files\n" msgstr "%s: ������ ���� ��� ��������� �������\n" -#: src/passwd.c:241 +#: src/passwd.c:239 #, c-format msgid "usage: %s [ -f | -s ] [ name ]\n" msgstr "�����: %s [ -f | -s ] [ ����� ]\n" -#: src/passwd.c:244 +#: src/passwd.c:242 #, c-format msgid " %s [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name\n" msgstr "" " %s [ -x ���. ] [ -n ����. ] [ -w ������. ] [ -i �������� ] �����\n" -#: src/passwd.c:247 +#: src/passwd.c:245 #, c-format msgid " %s { -l | -u | -d | -S | -e } name\n" msgstr " %s { -l | -u | -d | -S | -e } �����\n" -#: src/passwd.c:349 +#: src/passwd.c:347 #, c-format msgid "User %s has a TCFS key, his old password is required.\n" msgstr "� ������� %s ���� ������ TCFS, ���������� �� ����� �����������.\n" -#: src/passwd.c:350 +#: src/passwd.c:348 msgid "You can use -t option to force the change.\n" msgstr "" "�������� �� ��������������� ��� -t ��������� ��� �� ������������ ���\n" "�������������� ��� �������.\n" -#: src/passwd.c:356 +#: src/passwd.c:354 msgid "Old password: " msgstr "����� �����������: " -#: src/passwd.c:363 +#: src/passwd.c:361 #, c-format msgid "Incorrect password for `%s'\n" msgstr "��������� ����������� ��� ��� `%s'\n" -#: src/passwd.c:376 +#: src/passwd.c:374 #, c-format msgid "Warning: user %s has a TCFS key.\n" msgstr "�������������: � ������� %s ���� ������ TCFS.\n" -#: src/passwd.c:394 +#: src/passwd.c:392 #, c-format msgid "" "Enter the new password (minimum of %d, maximum of %d characters)\n" @@ -1604,15 +1604,15 @@ msgstr "" "�������� �������������� ��� ��������� ��� �������� ��� ����� ��������\n" "����� ��� ��������.\n" -#: src/passwd.c:401 +#: src/passwd.c:399 msgid "New password: " msgstr "��� �����������: " -#: src/passwd.c:411 +#: src/passwd.c:409 msgid "Try again.\n" msgstr "�������������.\n" -#: src/passwd.c:420 +#: src/passwd.c:418 msgid "" "\n" "Warning: weak password (enter it again to use it anyway).\n" @@ -1620,81 +1620,81 @@ msgstr "" "\n" "�������: ������� ����������� (�������� �� ���� ��� �� �� ���������������).\n" -#: src/passwd.c:429 +#: src/passwd.c:427 msgid "They don't match; try again.\n" msgstr "��� ����������. ��������� ����.\n" -#: src/passwd.c:514 src/passwd.c:530 +#: src/passwd.c:512 src/passwd.c:528 #, c-format msgid "The password for %s cannot be changed.\n" msgstr "�� ����������� ��� ��� %s ��� ������ �� �������.\n" -#: src/passwd.c:558 +#: src/passwd.c:556 #, c-format msgid "Sorry, the password for %s cannot be changed yet.\n" msgstr "�������, �� ����������� ��� ��� %s ��� ������ �� ������� �����.\n" -#: src/passwd.c:695 +#: src/passwd.c:693 #, c-format msgid "%s: out of memory\n" msgstr "%s: ��� ������� �������� �����\n" -#: src/passwd.c:847 +#: src/passwd.c:845 msgid "Cannot lock the TCFS key database; try again later\n" msgstr "�������� ����������� ��� ����� �������� ��� TCFS. ��������� ��������\n" -#: src/passwd.c:853 +#: src/passwd.c:851 msgid "Cannot open the TCFS key database.\n" msgstr "�������� ���������� ��� ����� �������� ��� TCFS.\n" -#: src/passwd.c:859 +#: src/passwd.c:857 msgid "Error updating the TCFS key database.\n" msgstr "������ ���� ��� �������� ��� ����� �������� ��� TCFS.\n" -#: src/passwd.c:864 +#: src/passwd.c:862 msgid "Cannot commit TCFS changes.\n" msgstr "�������� ���������� ��� ������� ��� TCFS.\n" -#: src/passwd.c:1071 +#: src/passwd.c:1069 #, c-format msgid "%s: Cannot execute %s" msgstr "%s: �������� ��������� ��� %s" -#: src/passwd.c:1178 +#: src/passwd.c:1176 #, c-format msgid "%s: repository %s not supported\n" msgstr "%s: � ������� %s ��� �������������\n" -#: src/passwd.c:1265 +#: src/passwd.c:1263 #, c-format msgid "%s: Permission denied\n" msgstr "%s: ����� �����������\n" -#: src/passwd.c:1289 +#: src/passwd.c:1287 #, c-format msgid "You may not change the password for %s.\n" msgstr "��� �������� �� �������� �� ����������� ��� ��(�) %s.\n" -#: src/passwd.c:1354 +#: src/passwd.c:1352 #, c-format msgid "Changing password for %s\n" msgstr "������ ������������ ��� ��� %s\n" -#: src/passwd.c:1358 +#: src/passwd.c:1356 #, c-format msgid "The password for %s is unchanged.\n" msgstr "�� ����������� ��� ��� %s ��� ������.\n" -#: src/passwd.c:1414 +#: src/passwd.c:1412 msgid "Password changed.\n" msgstr "�� ����������� ������.\n" -#: src/pwck.c:99 +#: src/pwck.c:98 #, c-format msgid "Usage: %s [ -qr ] [ passwd [ shadow ] ]\n" msgstr "�����: %s [ -qr ] [ passwd [ shadow ] ]\n" -#: src/pwck.c:101 +#: src/pwck.c:100 #, c-format msgid "Usage: %s [ -qr ] [ passwd ]\n" msgstr "�����: %s [ -qr ] [ passwd ]\n" @@ -1703,7 +1703,7 @@ msgstr " #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:286 +#: src/pwck.c:285 msgid "invalid password file entry\n" msgstr "�� ������ ���������� ��� ������ ������������\n" @@ -1711,16 +1711,16 @@ msgstr " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:348 +#: src/pwck.c:347 msgid "duplicate password entry\n" msgstr "��������� ����������� ��� ������ ������������\n" -#: src/pwck.c:364 +#: src/pwck.c:363 #, c-format msgid "invalid user name `%s'\n" msgstr "�� ������ ����� ������ `%s'\n" -#: src/pwck.c:374 +#: src/pwck.c:373 #, c-format msgid "user %s: bad UID (%d)\n" msgstr "������� %s: ���������� UID (%d)\n" @@ -1728,7 +1728,7 @@ msgstr " #. #. * No primary group, just give a warning #. -#: src/pwck.c:389 +#: src/pwck.c:388 #, c-format msgid "user %s: no group %d\n" msgstr "������� %s: ����� ����� %d\n" @@ -1736,7 +1736,7 @@ msgstr " #. #. * Home directory doesn't exist, give a warning #. -#: src/pwck.c:404 +#: src/pwck.c:403 #, c-format msgid "user %s: directory %s does not exist\n" msgstr "������� %s: � ��������� %s ��� �������\n" @@ -1744,7 +1744,7 @@ msgstr " #. #. * Login shell doesn't exist, give a warning #. -#: src/pwck.c:419 +#: src/pwck.c:418 #, c-format msgid "user %s: program %s does not exist\n" msgstr "������� %s: �� ��������� %s ��� �������\n" @@ -1753,7 +1753,7 @@ msgstr " #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:455 +#: src/pwck.c:454 msgid "invalid shadow password file entry\n" msgstr "�� ������ ���������� ��� ������ ������� ������������\n" @@ -1761,7 +1761,7 @@ msgstr " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:517 +#: src/pwck.c:516 msgid "duplicate shadow password entry\n" msgstr "��������� ����������� ��� ������ ������� ������������\n" @@ -1769,43 +1769,43 @@ msgstr " #. * Tell the user this entry has no matching #. * /etc/passwd entry and ask them to delete it. #. -#: src/pwck.c:541 +#: src/pwck.c:540 msgid "no matching password file entry\n" msgstr "��� ������� ���������� ��� ������ ������������ ��� �� ���������\n" -#: src/pwck.c:558 +#: src/pwck.c:557 #, c-format msgid "user %s: last password change in the future\n" msgstr "������� %s: ��������� ������ ������������ ��� ������\n" -#: src/pwconv.c:95 src/pwunconv.c:109 +#: src/pwconv.c:94 src/pwunconv.c:108 #, c-format msgid "%s: can't lock passwd file\n" msgstr "%s: �������� ����������� ��� ������� ������������\n" -#: src/pwconv.c:100 src/pwunconv.c:114 +#: src/pwconv.c:99 src/pwunconv.c:113 #, c-format msgid "%s: can't open passwd file\n" msgstr "%s: �������� ���������� ��� ������� ������������\n" -#: src/pwconv.c:127 +#: src/pwconv.c:126 #, c-format msgid "%s: can't remove shadow entry for %s\n" msgstr "" "�������� ��������� ����������� ��� ��� %s, ��� �� ������ ������� " "������������\n" -#: src/pwconv.c:170 +#: src/pwconv.c:169 #, c-format msgid "%s: can't update passwd entry for %s\n" msgstr "%s: �������� ��������� ����������� ������������ ��� ��� %s\n" -#: src/pwconv.c:177 +#: src/pwconv.c:176 #, c-format msgid "%s: can't update shadow file\n" msgstr "%s: �������� ��������� ����������� ��� ������� ������� ������������\n" -#: src/pwconv.c:181 +#: src/pwconv.c:180 #, c-format msgid "%s: can't update passwd file\n" msgstr "%s: �������� ��������� ������� ������������\n" @@ -1815,52 +1815,52 @@ msgstr "%s: msgid "%s: Shadow passwords are not configured.\n" msgstr "%s: �� ������ ����������� ��� ����� �����������.\n" -#: src/pwunconv.c:172 +#: src/pwunconv.c:171 #, c-format msgid "%s: can't update entry for user %s\n" msgstr "%s: �������� ��������� ����������� ��� ��� ������ %s\n" -#: src/pwunconv.c:189 +#: src/pwunconv.c:188 #, c-format msgid "%s: can't delete shadow password file\n" msgstr "%s: ��� ����� ������� �� ��������� �� ������ ������� ������������\n" -#: src/su.c:145 +#: src/su.c:140 msgid "Sorry." msgstr "�������." -#: src/su.c:227 +#: src/su.c:222 #, c-format msgid "%s: must be run from a terminal\n" msgstr "%s: ������ �� ���������� ��� ���������\n" -#: src/su.c:319 +#: src/su.c:311 #, c-format msgid "%s: pam_start: error %d\n" msgstr "%s: pam_start: ������ %d\n" -#: src/su.c:345 +#: src/su.c:337 #, c-format msgid "Unknown id: %s\n" msgstr "������� ���������: %s\n" #. access denied (-1) or unexpected value -#: src/su.c:380 src/su.c:395 +#: src/su.c:372 src/su.c:387 #, c-format msgid "You are not authorized to su %s\n" msgstr "��� ����� ����� ��� su %s\n" #. require own password -#: src/su.c:391 +#: src/su.c:383 msgid "(Enter your own password.)" msgstr "(�������� �� ���� ��� �����������.)" -#: src/su.c:412 +#: src/su.c:404 #, c-format msgid "%s: permission denied (shell).\n" msgstr "%s: ����� ����������� (������)\n" -#: src/su.c:436 +#: src/su.c:428 #, c-format msgid "" "%s: %s\n" @@ -1869,19 +1869,19 @@ msgstr "" "%s: %s\n" "(���������)\n" -#: src/su.c:605 +#: src/su.c:628 msgid "No shell\n" msgstr "��� ������� ������\n" #. must be a password file! -#: src/sulogin.c:138 +#: src/sulogin.c:136 msgid "No password file\n" msgstr "��� ������� ������ ������������\n" #. #. * Fail secure #. -#: src/sulogin.c:180 +#: src/sulogin.c:178 msgid "No password entry for 'root'\n" msgstr "��� ������� ���������� ������������ ��� ��� 'root'\n" @@ -1890,7 +1890,7 @@ msgstr " #. * given we just exit. #. #. get a password for root -#: src/sulogin.c:194 +#: src/sulogin.c:192 msgid "" "\n" "Type control-d to proceed with normal startup,\n" @@ -1901,515 +1901,520 @@ msgstr "" "(� ����� �� ����������� ��� root ��� ��������� ��� ����������):" #. make new environment active -#: src/sulogin.c:243 +#: src/sulogin.c:241 msgid "Entering System Maintenance Mode\n" msgstr "������ ���������� ���������� ����������\n" -#: src/useradd.c:244 +#: src/useradd.c:243 #, c-format msgid "%s: rebuild the group database\n" msgstr "%s: ����������� ��� ���� ��������� ������\n" -#: src/useradd.c:251 +#: src/useradd.c:250 #, c-format msgid "%s: rebuild the shadow group database\n" msgstr "%s: ����������� ��� ���� ��������� ��� ������� ������������ ������\n" -#: src/useradd.c:288 src/usermod.c:941 +#: src/useradd.c:287 src/usermod.c:940 #, c-format msgid "%s: invalid numeric argument `%s'\n" msgstr "%s: �� ������ ���������� ���������� `%s'\n" -#: src/useradd.c:344 +#: src/useradd.c:343 #, c-format msgid "%s: unknown gid %s\n" msgstr "%s: ������� gid %s\n" -#: src/useradd.c:351 src/useradd.c:643 src/useradd.c:1229 src/usermod.c:253 -#: src/usermod.c:1072 +#: src/useradd.c:350 src/useradd.c:642 src/useradd.c:1228 src/usermod.c:252 +#: src/usermod.c:1071 #, c-format msgid "%s: unknown group %s\n" msgstr "%s: ������� ����� %s\n" -#: src/useradd.c:419 +#: src/useradd.c:418 #, c-format msgid "group=%s,%ld basedir=%s skel=%s\n" msgstr "�����=%s,%ld �������_�����=%s ����=%s\n" -#: src/useradd.c:422 +#: src/useradd.c:421 #, c-format msgid "shell=%s " msgstr "������=%s " -#: src/useradd.c:424 +#: src/useradd.c:423 #, c-format msgid "inactive=%ld expire=%s" msgstr "��������=%ld ����=%s" -#: src/useradd.c:428 +#: src/useradd.c:427 #, c-format msgid "GROUP=%ld\n" msgstr "�����=%ld\n" -#: src/useradd.c:429 +#: src/useradd.c:428 #, c-format msgid "HOME=%s\n" msgstr "��������_���������=%s\n" -#: src/useradd.c:431 +#: src/useradd.c:430 #, c-format msgid "INACTIVE=%ld\n" msgstr "���������=%ld\n" -#: src/useradd.c:432 +#: src/useradd.c:431 #, c-format msgid "EXPIRE=%s\n" msgstr "����=%s\n" -#: src/useradd.c:434 +#: src/useradd.c:433 #, c-format msgid "SHELL=%s\n" msgstr "�������=%s\n" -#: src/useradd.c:435 +#: src/useradd.c:434 #, c-format msgid "SKEL=%s\n" msgstr "����=%s\n" -#: src/useradd.c:471 +#: src/useradd.c:470 #, c-format msgid "%s: cannot create new defaults file\n" msgstr "%s: �������� ����������� ���� ������� ��������������� ���������\n" -#: src/useradd.c:565 src/useradd.c:576 +#: src/useradd.c:564 src/useradd.c:575 #, c-format msgid "%s: rename: %s" msgstr "%s: �����������: %s" -#: src/useradd.c:663 src/usermod.c:273 +#: src/useradd.c:662 src/usermod.c:272 #, c-format msgid "%s: group `%s' is a NIS group.\n" msgstr "%s: � ����� `%s' ����� NIS �����.\n" -#: src/useradd.c:671 src/usermod.c:281 +#: src/useradd.c:670 src/usermod.c:280 #, c-format msgid "%s: too many groups specified (max %d).\n" msgstr "%s: ��������������� ����������� ������ (���. %d).\n" -#: src/useradd.c:703 src/usermod.c:313 +#: src/useradd.c:702 src/usermod.c:312 #, c-format msgid "usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n" msgstr "�����: %s\t[-u uid [-o]] [-g �����] [-G �����,...] \n" -#: src/useradd.c:706 +#: src/useradd.c:705 msgid "\t\t[-d home] [-s shell] [-c comment] [-m [-k template]]\n" msgstr "" "\t\t[-d ��������_���������] [-s ������] [-c ������]\n" "\t\t[-m [-k �������]]\n" -#: src/useradd.c:709 src/usermod.c:319 +#: src/useradd.c:708 src/usermod.c:318 msgid "[-f inactive] [-e expire ] " msgstr "[-f ��������] [-e ���� ] " -#: src/useradd.c:712 +#: src/useradd.c:711 msgid "[-A program] " msgstr "[-A ���������] " -#: src/useradd.c:714 src/usermod.c:324 +#: src/useradd.c:713 src/usermod.c:323 msgid "[-p passwd] name\n" msgstr "[-p �����������] �����\n" -#: src/useradd.c:716 +#: src/useradd.c:715 #, c-format msgid " %s\t-D [-g group] [-b base] [-s shell]\n" msgstr " %s\t-D [-g �����] [-b ����] [-s ������]\n" -#: src/useradd.c:719 +#: src/useradd.c:718 msgid "\t\t[-f inactive] [-e expire ]\n" msgstr "\t\t[-f ��������] [-e ���� ]\n" -#: src/useradd.c:816 src/usermod.c:446 +#: src/useradd.c:815 src/usermod.c:445 #, c-format msgid "%s: error locking group file\n" msgstr "%s: ������ ���� �� �������� ��� ������� ������\n" -#: src/useradd.c:820 src/usermod.c:451 +#: src/useradd.c:819 src/usermod.c:450 #, c-format msgid "%s: error opening group file\n" msgstr "%s: ������ ���� �� ������� ��� ������� ������\n" -#: src/useradd.c:825 src/usermod.c:558 +#: src/useradd.c:824 src/usermod.c:557 #, c-format msgid "%s: error locking shadow group file\n" msgstr "%s: ������ ���� �� �������� ��� ������� ������� ������������ ������\n" -#: src/useradd.c:830 src/usermod.c:564 +#: src/useradd.c:829 src/usermod.c:563 #, c-format msgid "%s: error opening shadow group file\n" msgstr "%s: ������ ���� �� ������� ��� ������� ������� ������������ ������\n" -#: src/useradd.c:1002 +#: src/useradd.c:1001 #, c-format msgid "%s: uid %d is not unique\n" msgstr "%s: �� uid %d ��� ����� ��������\n" -#: src/useradd.c:1032 +#: src/useradd.c:1031 #, c-format msgid "%s: can't get unique uid\n" msgstr "%s: �������� ������� ��������� uid\n" -#: src/useradd.c:1140 src/useradd.c:1284 src/usermod.c:1020 src/usermod.c:1031 -#: src/usermod.c:1041 src/usermod.c:1087 src/usermod.c:1122 +#: src/useradd.c:1139 src/useradd.c:1283 src/usermod.c:1019 src/usermod.c:1030 +#: src/usermod.c:1040 src/usermod.c:1086 src/usermod.c:1121 #, c-format msgid "%s: invalid field `%s'\n" msgstr "%s: �� ������ ����� `%s'\n" -#: src/useradd.c:1154 +#: src/useradd.c:1153 #, c-format msgid "%s: invalid base directory `%s'\n" msgstr "%s: �� ������� ��������� ����� `%s'\n" -#: src/useradd.c:1164 +#: src/useradd.c:1163 #, c-format msgid "%s: invalid comment `%s'\n" msgstr "%s: �� ������ ������ `%s'\n" -#: src/useradd.c:1174 +#: src/useradd.c:1173 #, c-format msgid "%s: invalid home directory `%s'\n" msgstr "%s: �� ������� �������� ��������� ������ `%s'\n" -#: src/useradd.c:1192 src/usermod.c:1054 +#: src/useradd.c:1191 src/usermod.c:1053 #, c-format msgid "%s: invalid date `%s'\n" msgstr "%s: �� ������ ���������� `%s'\n" -#: src/useradd.c:1204 +#: src/useradd.c:1203 #, c-format msgid "%s: shadow passwords required for -e\n" msgstr "%s: ������ ����������� ����������� ��� �� -e\n" -#: src/useradd.c:1219 +#: src/useradd.c:1218 #, c-format msgid "%s: shadow passwords required for -f\n" msgstr "%s: ������ ����������� ����������� ��� -f\n" -#: src/useradd.c:1293 +#: src/useradd.c:1292 #, c-format msgid "%s: invalid shell `%s'\n" msgstr "%s: �� ������� ������ `%s'\n" -#: src/useradd.c:1334 +#: src/useradd.c:1333 #, c-format msgid "%s: invalid user name `%s'\n" msgstr "%s: �� ������ ����� ������ `%s'\n" -#: src/useradd.c:1370 src/userdel.c:262 src/usermod.c:1184 +#: src/useradd.c:1369 src/userdel.c:292 src/usermod.c:1183 #, c-format msgid "%s: cannot rewrite password file\n" msgstr "%s: �������� ������������ ��� ������� ������������\n" -#: src/useradd.c:1375 src/userdel.c:265 src/usermod.c:1189 +#: src/useradd.c:1374 src/userdel.c:295 src/usermod.c:1188 #, c-format msgid "%s: cannot rewrite shadow password file\n" msgstr "%s: �������� ������������ ��� ������� ������� ������������\n" -#: src/useradd.c:1415 src/userdel.c:329 src/usermod.c:1224 +#: src/useradd.c:1414 src/userdel.c:359 src/usermod.c:1223 #, c-format msgid "%s: unable to lock password file\n" msgstr "%s: �������� ����������� ��� ������� ������������\n" -#: src/useradd.c:1419 src/userdel.c:333 src/usermod.c:1228 +#: src/useradd.c:1418 src/userdel.c:363 src/usermod.c:1227 #, c-format msgid "%s: unable to open password file\n" msgstr "%s: �������� ���������� ��� ������� ������������\n" -#: src/useradd.c:1425 src/userdel.c:338 src/usermod.c:1233 +#: src/useradd.c:1424 src/userdel.c:368 src/usermod.c:1232 #, c-format msgid "%s: cannot lock shadow password file\n" msgstr "%s: �������� ����������� ��� ������� ������� ������������\n" -#: src/useradd.c:1431 src/userdel.c:343 src/usermod.c:1238 +#: src/useradd.c:1430 src/userdel.c:373 src/usermod.c:1237 #, c-format msgid "%s: cannot open shadow password file\n" msgstr "%s: �������� ���������� ������� ������� ������������\n" -#: src/useradd.c:1530 src/usermod.c:1325 +#: src/useradd.c:1529 src/usermod.c:1324 #, c-format msgid "%s: error adding authentication method\n" msgstr "%s: ������ ���� ��� �������� ������� �����������\n" -#: src/useradd.c:1553 +#: src/useradd.c:1552 #, c-format msgid "%s: error adding new password entry\n" msgstr "" "%s: ������ ���� ��� �������� ���� ����������� ��� ������ ������������\n" -#: src/useradd.c:1568 +#: src/useradd.c:1567 #, c-format msgid "%s: error updating password dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ������������ ��� dbm ������ ������������\n" -#: src/useradd.c:1584 src/usermod.c:1384 +#: src/useradd.c:1583 src/usermod.c:1383 #, c-format msgid "%s: error adding new shadow password entry\n" msgstr "" "%s: ������ ���� ��� �������� ���� ����������� ��� ������ ������� " "������������\n" -#: src/useradd.c:1600 src/usermod.c:1399 +#: src/useradd.c:1599 src/usermod.c:1398 #, c-format msgid "%s: error updating shadow passwd dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ������������ ��� dbm ������ ������� " "������������\n" -#: src/useradd.c:1632 +#: src/useradd.c:1631 #, c-format msgid "%s: cannot create directory %s\n" msgstr "%s: �������� ����������� ��������� %s\n" -#: src/useradd.c:1709 src/usermod.c:1162 +#: src/useradd.c:1708 src/usermod.c:1161 #, c-format msgid "%s: user %s exists\n" msgstr "%s: � ������� %s �������\n" -#: src/useradd.c:1739 +#: src/useradd.c:1738 #, c-format msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n" msgstr "" -#: src/userdel.c:128 +#: src/userdel.c:127 #, c-format msgid "usage: %s [-r] name\n" msgstr "�����: %s [-r] �����\n" -#: src/userdel.c:175 src/userdel.c:230 +#: src/userdel.c:178 src/userdel.c:260 #, c-format msgid "%s: error updating group entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ������\n" -#: src/userdel.c:185 src/userdel.c:239 +#: src/userdel.c:188 src/userdel.c:269 #, c-format msgid "%s: cannot update dbm group entry\n" msgstr "%s: �������� ��������� ��� dbm ����������� ��� ������ ������\n" -#: src/userdel.c:270 +#: src/userdel.c:215 +#, fuzzy, c-format +msgid "%s: cannot remove dbm group entry\n" +msgstr "%s: �������� ��������� ��� dbm ����������� ��� ������ ������\n" + +#: src/userdel.c:300 #, c-format msgid "%s: cannot rewrite TCFS key file\n" msgstr "%s: �������� ������������ ��� ������� �������� ��� TCFS\n" -#: src/userdel.c:350 +#: src/userdel.c:380 #, c-format msgid "%s: cannot lock TCFS key file\n" msgstr "%s: �������� ����������� ��� ������� �������� ��� TCFS\n" -#: src/userdel.c:354 +#: src/userdel.c:384 #, c-format msgid "%s: cannot open TCFS key file\n" msgstr "%s: �������� ���������� ��� ������� �������� ��� TCFS\n" -#: src/userdel.c:363 +#: src/userdel.c:393 #, c-format msgid "%s: cannot open group file\n" msgstr "%s: �������� ���������� ������� ������\n" -#: src/userdel.c:373 +#: src/userdel.c:403 #, c-format msgid "%s: cannot open shadow group file\n" msgstr "%s: �������� ���������� ������� ������� ������������ ������\n" -#: src/userdel.c:404 src/userdel.c:419 +#: src/userdel.c:434 src/userdel.c:449 #, c-format msgid "%s: error deleting authentication\n" msgstr "%s: ������ ���� ��� �������� �����������\n" -#: src/userdel.c:428 +#: src/userdel.c:458 #, c-format msgid "%s: error deleting password entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ��� ������ ������������\n" -#: src/userdel.c:431 +#: src/userdel.c:461 #, c-format msgid "%s: error deleting shadow password entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� ������ ������� ������������\n" -#: src/userdel.c:440 +#: src/userdel.c:470 #, c-format msgid "%s: error deleting TCFS entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ��� TCFS\n" -#: src/userdel.c:453 +#: src/userdel.c:483 #, c-format msgid "%s: error deleting password dbm entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ��� dbm ������ ������������\n" -#: src/userdel.c:472 +#: src/userdel.c:502 #, c-format msgid "%s: error deleting shadow passwd dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� dbm ������ ������� " "������������\n" -#: src/userdel.c:513 +#: src/userdel.c:543 #, c-format msgid "%s: user %s is currently logged in\n" msgstr "%s: � ������� %s ��������� ��� �������\n" -#: src/userdel.c:630 +#: src/userdel.c:660 #, c-format msgid "%s: warning: %s not owned by %s, not removing\n" msgstr "%s: �������������: �� %s ��� ������ ���� %s, ��� �����������\n" -#: src/userdel.c:636 +#: src/userdel.c:666 #, c-format msgid "%s: warning: can't remove " msgstr "%s: �������������: �������� ��������� " -#: src/userdel.c:711 src/usermod.c:968 +#: src/userdel.c:741 src/usermod.c:967 #, c-format msgid "%s: user %s does not exist\n" msgstr "%s: � ������� %s ��� �������\n" -#: src/userdel.c:725 src/usermod.c:984 +#: src/userdel.c:755 src/usermod.c:983 #, c-format msgid "%s: user %s is a NIS user\n" msgstr "%s: � ������� %s ����� NIS �������\n" -#: src/userdel.c:762 +#: src/userdel.c:792 #, c-format msgid "%s: %s not owned by %s, not removing\n" msgstr "%s: �� %s ��� ������ ���� %s, ��� ����������\n" -#: src/userdel.c:785 +#: src/userdel.c:815 #, c-format msgid "%s: not removing directory %s (would remove home of user %s)\n" msgstr "" "%s: ��� ����������� � ��������� %s (�� ��������� ��� ������� �������� ��� " "������ %s)\n" -#: src/userdel.c:798 +#: src/userdel.c:828 #, c-format msgid "%s: error removing directory %s\n" msgstr "%s: ������ ���� ��� �������� ��� ��������� %s\n" -#: src/usermod.c:316 +#: src/usermod.c:315 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n" msgstr "" "\t\t[-d ��������_��������� [-m]] [-s ������] [-c ������]\n" "\t\t[-l ���_�����]\n" -#: src/usermod.c:322 +#: src/usermod.c:321 msgid "[-A {DEFAULT|program},... ] " msgstr "[-A {DEFAULT|���������},... ] " -#: src/usermod.c:478 +#: src/usermod.c:477 #, c-format msgid "%s: out of memory in update_group\n" msgstr "%s: ��� ������� �������� ����� ��� update_group\n" -#: src/usermod.c:601 +#: src/usermod.c:600 #, c-format msgid "%s: out of memory in update_gshadow\n" msgstr "%s: ��� update_gshadow\n" -#: src/usermod.c:1139 +#: src/usermod.c:1138 #, c-format msgid "%s: no flags given\n" msgstr "%s: ��� ������� ���������\n" -#: src/usermod.c:1146 +#: src/usermod.c:1145 #, c-format msgid "%s: shadow passwords required for -e and -f\n" msgstr "%s: ������ ����������� ����������� ��� �� -e ��� -f\n" -#: src/usermod.c:1167 +#: src/usermod.c:1166 #, c-format msgid "%s: uid %ld is not unique\n" msgstr "%s: �� uid %ld ��� ����� ��������\n" -#: src/usermod.c:1315 +#: src/usermod.c:1314 #, c-format msgid "%s: error deleting authentication method\n" msgstr "%s: ������ ���� ��� �������� ������� �����������\n" -#: src/usermod.c:1335 +#: src/usermod.c:1334 #, c-format msgid "%s: error changing authentication method\n" msgstr "%s: ������ ���� ��� ������ ������� �����������\n" -#: src/usermod.c:1352 +#: src/usermod.c:1351 #, c-format msgid "%s: error changing password entry\n" msgstr "%s: ������ ���� ��� ������ ����������� ������������\n" -#: src/usermod.c:1358 +#: src/usermod.c:1357 #, c-format msgid "%s: error removing password entry\n" msgstr "%s: ������ ���� ��� �������� ����������� ��� ������ ������������\n" -#: src/usermod.c:1366 +#: src/usermod.c:1365 #, c-format msgid "%s: error adding password dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ���� ����������� ��� dbm ������ ������������\n" -#: src/usermod.c:1373 +#: src/usermod.c:1372 #, c-format msgid "%s: error removing passwd dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� �� dbm ������ ������������\n" -#: src/usermod.c:1390 +#: src/usermod.c:1389 #, c-format msgid "%s: error removing shadow password entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� ������ ������� ������������\n" -#: src/usermod.c:1405 +#: src/usermod.c:1404 #, c-format msgid "%s: error removing shadow passwd dbm entry\n" msgstr "" "%s: ������ ���� ��� �������� ����������� ��� dbm ������ ������� " "������������\n" -#: src/usermod.c:1436 +#: src/usermod.c:1435 #, c-format msgid "%s: directory %s exists\n" msgstr "%s: � ��������� %s �������\n" -#: src/usermod.c:1443 +#: src/usermod.c:1442 #, c-format msgid "%s: can't create %s\n" msgstr "%s: �������� ����������� ��� %s\n" -#: src/usermod.c:1449 +#: src/usermod.c:1448 #, c-format msgid "%s: can't chown %s\n" msgstr "%s: �������� ������� ���������(chown) ��� %s\n" -#: src/usermod.c:1465 +#: src/usermod.c:1464 #, c-format msgid "%s: cannot rename directory %s to %s\n" msgstr "%s: �������� ������������ ��� ��������� %s �� %s\n" #. better leave it alone -#: src/usermod.c:1562 +#: src/usermod.c:1561 #, c-format msgid "%s: warning: %s not owned by %s\n" msgstr "%s: �������������: �� %s ��� ������ ���� %s\n" -#: src/usermod.c:1568 +#: src/usermod.c:1567 msgid "failed to change mailbox owner" msgstr "�������� ������� ��� ��������� ��� ����������������" -#: src/usermod.c:1575 +#: src/usermod.c:1574 msgid "failed to rename mailbox" msgstr "�������� ������������ ����������������" -#: src/vipw.c:103 +#: src/vipw.c:102 #, c-format msgid "" "\n" @@ -2418,21 +2423,21 @@ msgstr "" "\n" "%s: �� %s ��� ������\n" -#: src/vipw.c:128 +#: src/vipw.c:127 #, fuzzy msgid "Couldn't lock file" msgstr "%s: �������� ������������� �������\n" -#: src/vipw.c:135 +#: src/vipw.c:134 msgid "Couldn't make backup" msgstr "" -#: src/vipw.c:174 +#: src/vipw.c:187 #, c-format msgid "%s: can't restore %s: %s (your changes are in %s)\n" msgstr "%s: �������� ���������� %s: %s (�� ������� ����� ��� %s)\n" -#: src/vipw.c:213 +#: src/vipw.c:226 msgid "" "Usage:\n" "`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n" diff --git a/po/fr.gmo b/po/fr.gmo index 77ad53b8..bb3ab8e0 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 773fcd16..3abfaabe 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 19990709\n" -"POT-Creation-Date: 1999-08-27 21:03+0200\n" +"POT-Creation-Date: 2000-08-26 20:28+0200\n" "PO-Revision-Date: 1999-07-09 20:02+0200\n" "Last-Translator: Vincent Renardias <vincent@ldsol.com>\n" "Language-Team: Vincent Renardias <vincent@ldsol.com>\n" @@ -111,7 +111,7 @@ msgstr "Pas de courier." msgid "You have mail." msgstr "Vous avez du courier." -#: libmisc/obscure.c:281 src/passwd.c:311 +#: libmisc/obscure.c:281 src/passwd.c:309 #, c-format msgid "Bad password: %s. " msgstr "Mauvais mot de passe: %s. " @@ -181,26 +181,26 @@ msgstr " msgid "Dialup Password: " msgstr "Mot de passe dialup : " -#: lib/getdef.c:249 +#: lib/getdef.c:253 msgid "Could not allocate space for config info.\n" msgstr "Impossible d'allouer l'espace pour l'information sur la conf.\n" #. #. * Item was never found. #. -#: lib/getdef.c:303 +#: lib/getdef.c:307 #, c-format msgid "configuration error - unknown item '%s' (notify administrator)\n" msgstr "" "erreur de configuration - �l�ment '%s' inconnu (avertissez " "l'administrateur)\n" -#: lib/getdef.c:390 +#: lib/getdef.c:394 #, c-format msgid "error - lookup '%s' failed\n" msgstr "erreur - �chec de la recherche de '%s'\n" -#: lib/getdef.c:398 +#: lib/getdef.c:402 #, c-format msgid "%s not found\n" msgstr "%s non trouv�\n" @@ -209,7 +209,7 @@ msgstr "%s non trouv #. * get the password from her, and set the salt for #. * the decryption from the group file. #. -#: lib/pwauth.c:54 src/newgrp.c:297 +#: lib/pwauth.c:54 src/newgrp.c:305 msgid "Password: " msgstr "Mot de passe: " @@ -346,82 +346,82 @@ msgstr "Mot de passe d msgid "Account Expires:\t" msgstr "Expiration du mot de passe :\t" -#: src/chage.c:468 +#: src/chage.c:471 #, c-format msgid "%s: do not include \"l\" with other flags\n" msgstr "%s : ne pas include \"l\" avec les autres drapeaux\n" -#: src/chage.c:480 src/chage.c:592 src/login.c:529 +#: src/chage.c:483 src/chage.c:595 src/login.c:529 #, c-format msgid "%s: permission denied\n" msgstr "%s : permission refus�e\n" -#: src/chage.c:492 src/chpasswd.c:122 +#: src/chage.c:495 src/chpasswd.c:120 #, c-format msgid "%s: can't lock password file\n" msgstr "%s: impossible de v�rouiller de fichier de mots de passe\n" -#: src/chage.c:498 src/chpasswd.c:126 +#: src/chage.c:501 src/chpasswd.c:124 #, c-format msgid "%s: can't open password file\n" msgstr "%s: impossible d'ouvrir le fichier de mots de passe\n" -#: src/chage.c:505 +#: src/chage.c:508 #, c-format msgid "%s: unknown user: %s\n" msgstr "%s: utilisateur inconnu: %s\n" -#: src/chage.c:524 +#: src/chage.c:527 #, c-format msgid "%s: can't lock shadow password file\n" msgstr "%s : impossible de v�rouiller le fichier shadow password\n" -#: src/chage.c:531 +#: src/chage.c:534 #, c-format msgid "%s: can't open shadow password file\n" msgstr "%s : impossible d'ouvrir le fichier shadow password\n" -#: src/chage.c:613 +#: src/chage.c:616 #, c-format msgid "Changing the aging information for %s\n" msgstr "Changement des informations sur l'age pour %s\n" -#: src/chage.c:615 +#: src/chage.c:618 #, c-format msgid "%s: error changing fields\n" msgstr "%s : erreur lors du changement des champs\n" -#: src/chage.c:642 src/chage.c:705 src/pwunconv.c:184 +#: src/chage.c:645 src/chage.c:708 src/pwunconv.c:183 #, c-format msgid "%s: can't update password file\n" msgstr "%s : impossible de mettre � jour le fichier passwd\n" -#: src/chage.c:672 src/pwunconv.c:179 +#: src/chage.c:675 src/pwunconv.c:178 #, c-format msgid "%s: can't update shadow password file\n" msgstr "%s : impossible de mettre � jour le fichier shadow password\n" -#: src/chage.c:721 src/chage.c:736 src/chfn.c:572 src/chsh.c:411 -#: src/passwd.c:827 src/passwd.c:928 +#: src/chage.c:724 src/chage.c:739 src/chfn.c:571 src/chsh.c:410 +#: src/passwd.c:825 src/passwd.c:926 msgid "Error updating the DBM password entry.\n" msgstr "Erreur durant la mise � jour de l'entr�e du mot de passe DBM.\n" -#: src/chage.c:753 +#: src/chage.c:756 #, c-format msgid "%s: can't rewrite shadow password file\n" msgstr "%s : impossible de re-�crire le fichier shadow password\n" -#: src/chage.c:767 +#: src/chage.c:770 #, c-format msgid "%s: can't rewrite password file\n" msgstr "%s : impossible de re-�crire le fichier password\n" -#: src/chage.c:816 +#: src/chage.c:821 #, c-format msgid "%s: no aging information present\n" msgstr "%s : aucune information sur l'age\n" -#: src/chfn.c:108 +#: src/chfn.c:107 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ]\n" @@ -430,368 +430,368 @@ msgstr "" "Usage: %s [ -f nom_complet ] [ -r no_bureau ] [ -w tel_bureau ]\n" "\t[ -h tel_perso ] [ -o autre ] [ utilisateur ]\n" -#: src/chfn.c:112 +#: src/chfn.c:111 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]\n" msgstr "Usage: %s [ -f nom_complet ] [ -w no_bureau ] [ -h tel_bureau ]\n" -#: src/chfn.c:164 src/chsh.c:120 +#: src/chfn.c:163 src/chsh.c:119 msgid "Enter the new value, or press return for the default\n" msgstr "Entrez la nouvelle valeur ou tapez Entr�e pour le d�faut\n" -#: src/chfn.c:167 +#: src/chfn.c:166 msgid "Full Name" msgstr "Nom complet" -#: src/chfn.c:169 +#: src/chfn.c:168 #, c-format msgid "\tFull Name: %s\n" msgstr "\tNom complet : %s\n" -#: src/chfn.c:172 +#: src/chfn.c:171 msgid "Room Number" msgstr "No de bureau" -#: src/chfn.c:174 +#: src/chfn.c:173 #, c-format msgid "\tRoom Number: %s\n" msgstr "\tNo de bureau : %s\n" -#: src/chfn.c:177 +#: src/chfn.c:176 msgid "Work Phone" msgstr "T�l�phone travail" -#: src/chfn.c:179 +#: src/chfn.c:178 #, c-format msgid "\tWork Phone: %s\n" msgstr "\tT�l�phone travail : %s\n" -#: src/chfn.c:182 +#: src/chfn.c:181 msgid "Home Phone" msgstr "T�l�phone perso" -#: src/chfn.c:184 +#: src/chfn.c:183 #, c-format msgid "\tHome Phone: %s\n" msgstr "\tT�l�phone perso : %s\n" -#: src/chfn.c:187 +#: src/chfn.c:186 msgid "Other" msgstr "Autre" -#: src/chfn.c:300 src/chfn.c:308 src/chfn.c:316 src/chfn.c:324 src/chfn.c:332 -#: src/chfn.c:393 src/passwd.c:1228 +#: src/chfn.c:299 src/chfn.c:307 src/chfn.c:315 src/chfn.c:323 src/chfn.c:331 +#: src/chfn.c:392 src/passwd.c:1226 #, c-format msgid "%s: Permission denied.\n" msgstr "%s: Permission refus�e.\n" -#: src/chfn.c:353 src/chsh.c:226 src/passwd.c:1279 +#: src/chfn.c:352 src/chsh.c:225 src/passwd.c:1277 #, c-format msgid "%s: Unknown user %s\n" msgstr "%s: Utilisateur %s inconnu\n" -#: src/chfn.c:359 src/chsh.c:234 src/passwd.c:1209 +#: src/chfn.c:358 src/chsh.c:233 src/passwd.c:1207 #, c-format msgid "%s: Cannot determine your user name.\n" msgstr "%s: Impossible de d�terminer votre nom d'utilisateur.\n" -#: src/chfn.c:375 src/chsh.c:252 +#: src/chfn.c:374 src/chsh.c:251 #, c-format msgid "%s: cannot change user `%s' on NIS client.\n" msgstr "%s: impossible de changer l'utilisateur `%' sur le client NIS.\n" -#: src/chfn.c:380 src/chsh.c:259 +#: src/chfn.c:379 src/chsh.c:258 #, c-format msgid "%s: `%s' is the NIS master for this client.\n" msgstr "%s: `%s' est le ma�tre NIS pour ce client.\n" -#: src/chfn.c:455 +#: src/chfn.c:454 #, c-format msgid "Changing the user information for %s\n" msgstr "Changement de l'information utilisateur pour %s\n" -#: src/chfn.c:464 +#: src/chfn.c:463 #, c-format msgid "%s: invalid name: \"%s\"\n" msgstr "%s : nom non valide : \"%s\"\n" -#: src/chfn.c:469 +#: src/chfn.c:468 #, c-format msgid "%s: invalid room number: \"%s\"\n" msgstr "%s : no de bureau non valide : \"%s\"\n" -#: src/chfn.c:474 +#: src/chfn.c:473 #, c-format msgid "%s: invalid work phone: \"%s\"\n" msgstr "%s : t�l�phone du bureau non valide : \"%s\"\n" -#: src/chfn.c:479 +#: src/chfn.c:478 #, c-format msgid "%s: invalid home phone: \"%s\"\n" msgstr "%s : t�l�phone perso non valide : \"%s\"\n" -#: src/chfn.c:484 +#: src/chfn.c:483 #, c-format msgid "%s: \"%s\" contains illegal characters\n" msgstr "%s : \"%s\" contient des caract�res non valide\n" -#: src/chfn.c:496 +#: src/chfn.c:495 #, c-format msgid "%s: fields too long\n" msgstr "%s: champs trop longs\n" -#: src/chfn.c:511 src/chsh.c:349 src/gpasswd.c:583 src/passwd.c:1390 +#: src/chfn.c:510 src/chsh.c:348 src/gpasswd.c:582 src/passwd.c:1388 msgid "Cannot change ID to root.\n" msgstr "Impossible de changer l'ID en root.\n" -#: src/chfn.c:524 src/chsh.c:363 src/passwd.c:737 src/passwd.c:882 +#: src/chfn.c:523 src/chsh.c:362 src/passwd.c:735 src/passwd.c:880 msgid "Cannot lock the password file; try again later.\n" msgstr "" "Impossible de v�rouiller le fichier de mots de passe; essayez plus tard.\n" -#: src/chfn.c:530 src/chsh.c:369 src/passwd.c:742 src/passwd.c:887 +#: src/chfn.c:529 src/chsh.c:368 src/passwd.c:740 src/passwd.c:885 msgid "Cannot open the password file.\n" msgstr "Impossible d'ouvrir le fichier de mots de passe.\n" -#: src/chfn.c:547 src/chsh.c:384 src/passwd.c:748 src/usermod.c:1272 +#: src/chfn.c:546 src/chsh.c:383 src/passwd.c:746 src/usermod.c:1271 #, c-format msgid "%s: %s not found in /etc/passwd\n" msgstr "%s: %s non trouv� dans /etc/passwd\n" -#: src/chfn.c:564 src/chsh.c:403 src/passwd.c:821 src/passwd.c:922 -#: src/passwd.c:962 +#: src/chfn.c:563 src/chsh.c:402 src/passwd.c:819 src/passwd.c:920 +#: src/passwd.c:960 msgid "Error updating the password entry.\n" msgstr "Erreur durant la mise � jour du mot de passe.\n" -#: src/chfn.c:587 src/chsh.c:426 src/passwd.c:834 src/passwd.c:935 +#: src/chfn.c:586 src/chsh.c:425 src/passwd.c:832 src/passwd.c:933 msgid "Cannot commit password file changes.\n" msgstr "Impossible de valider le changement de mot de passe.\n" -#: src/chfn.c:594 src/chsh.c:433 +#: src/chfn.c:593 src/chsh.c:432 msgid "Cannot unlock the password file.\n" msgstr "Impossible de d�v�rouiller le fichier de mots de passe.\n" -#: src/chpasswd.c:78 +#: src/chpasswd.c:76 #, c-format msgid "usage: %s [-e]\n" msgstr "usage: %s [-e]\n" -#: src/chpasswd.c:134 src/pwconv.c:105 +#: src/chpasswd.c:132 src/pwconv.c:104 #, c-format msgid "%s: can't lock shadow file\n" msgstr "%s: impossible de v�rouiller le fichier shadow\n" -#: src/chpasswd.c:139 src/gpasswd.c:609 src/pwconv.c:110 src/pwunconv.c:119 -#: src/pwunconv.c:124 +#: src/chpasswd.c:137 src/gpasswd.c:608 src/pwconv.c:109 src/pwunconv.c:118 +#: src/pwunconv.c:123 #, c-format msgid "%s: can't open shadow file\n" msgstr "%s: impossible d'ouvrir le fichier shadow\n" -#: src/chpasswd.c:161 src/newusers.c:418 +#: src/chpasswd.c:159 src/newusers.c:415 #, c-format msgid "%s: line %d: line too long\n" msgstr "%s: ligne %d: ligne trop longue\n" -#: src/chpasswd.c:181 +#: src/chpasswd.c:179 #, c-format msgid "%s: line %d: missing new password\n" msgstr "%s: ligne %d: nouveau mot de passe manquant\n" -#: src/chpasswd.c:197 +#: src/chpasswd.c:195 #, c-format msgid "%s: line %d: unknown user %s\n" msgstr "%s: ligne %d: utilisateur %s inconnu\n" -#: src/chpasswd.c:249 +#: src/chpasswd.c:247 #, c-format msgid "%s: line %d: cannot update password entry\n" msgstr "%s: ligne %d: impossible de mettre le mot de passe � jour\n" -#: src/chpasswd.c:265 src/newusers.c:538 +#: src/chpasswd.c:263 src/newusers.c:535 #, c-format msgid "%s: error detected, changes ignored\n" msgstr "%s: erreur d�tect�e; changements ignor�s\n" -#: src/chpasswd.c:276 +#: src/chpasswd.c:274 #, c-format msgid "%s: error updating shadow file\n" msgstr "%s: erreur lors de la mise � jour du fichier shadow\n" -#: src/chpasswd.c:284 +#: src/chpasswd.c:282 #, c-format msgid "%s: error updating password file\n" msgstr "%s: erreur lors de la mise � jour du fichier de mots de passe\n" -#: src/chsh.c:106 +#: src/chsh.c:105 #, c-format msgid "Usage: %s [ -s shell ] [ name ]\n" msgstr "Usage: %s [ -s shell ] [ nom ]\n" -#: src/chsh.c:121 +#: src/chsh.c:120 msgid "Login Shell" msgstr "Shell de login" -#: src/chsh.c:275 src/chsh.c:288 +#: src/chsh.c:274 src/chsh.c:287 #, c-format msgid "You may not change the shell for %s.\n" msgstr "Vous ne pouvez pas changer le shell de %s.\n" -#: src/chsh.c:317 +#: src/chsh.c:316 #, c-format msgid "Changing the login shell for %s\n" msgstr "Changement du shell de login pour %s\n" -#: src/chsh.c:329 +#: src/chsh.c:328 #, c-format msgid "%s: Invalid entry: %s\n" msgstr "%s: Entr�e non valide : %s\n" -#: src/chsh.c:334 +#: src/chsh.c:333 #, c-format msgid "%s is an invalid shell.\n" msgstr "%s n'est pas un shell valide.\n" -#: src/dpasswd.c:71 +#: src/dpasswd.c:69 #, c-format msgid "Usage: %s [ -(a|d) ] shell\n" msgstr "Usage: %s [ -(a|d) ] shell\n" -#: src/dpasswd.c:136 +#: src/dpasswd.c:134 msgid "Shell password: " msgstr "Mot de passe shell : " -#: src/dpasswd.c:142 +#: src/dpasswd.c:140 msgid "re-enter Shell password: " msgstr "Confirmez le mot de passe shell : " -#: src/dpasswd.c:149 +#: src/dpasswd.c:147 #, c-format msgid "%s: Passwords do not match, try again.\n" msgstr "%s : Les mots de passe ne correspondent pas, essayez encore.\n" -#: src/dpasswd.c:169 +#: src/dpasswd.c:167 #, c-format msgid "%s: can't create %s" msgstr "%s: impossible de cr�er %s" -#: src/dpasswd.c:174 +#: src/dpasswd.c:172 #, c-format msgid "%s: can't open %s" msgstr "%s : impossible d'ouvrir %s" -#: src/dpasswd.c:202 +#: src/dpasswd.c:200 #, c-format msgid "%s: Shell %s not found.\n" msgstr "%s : Shell %s non trouv�.\n" -#: src/expiry.c:85 +#: src/expiry.c:84 msgid "Usage: expiry { -f | -c }\n" msgstr "Usage : expiry { -f | -c }\n" -#: src/expiry.c:138 +#: src/expiry.c:137 #, c-format msgid "%s: WARNING! Must be set-UID root!\n" msgstr "%s: AVERTISSEMENT! Devrait �tre set-UID root!\n" -#: src/expiry.c:149 +#: src/expiry.c:148 #, c-format msgid "%s: unknown user\n" msgstr "%s : utilisateur inconnu\n" -#: src/faillog.c:80 +#: src/faillog.c:79 #, c-format msgid "usage: %s [-a|-u user] [-m max] [-r] [-t days] [-l locksecs]\n" msgstr "usage: %s [-a|-u utilisateur] [-m max] [-r] [-t jours] [-l sec_ver]\n" -#: src/faillog.c:135 src/lastlog.c:95 +#: src/faillog.c:134 src/lastlog.c:94 #, c-format msgid "Unknown User: %s\n" msgstr "Utilisateur %s inconnu\n" -#: src/faillog.c:216 +#: src/faillog.c:215 msgid "Username Failures Maximum Latest\n" msgstr "Utilisateur �checs Maximum Dernier\n" -#: src/faillog.c:233 +#: src/faillog.c:232 #, c-format msgid " %s on %s" msgstr " %s sur %s" -#: src/faillog.c:237 +#: src/faillog.c:236 #, c-format msgid " [%lds left]" msgstr " [%lds restant]" -#: src/faillog.c:240 +#: src/faillog.c:239 #, c-format msgid " [%lds lock]" msgstr " [%lds verrou]" -#: src/gpasswd.c:91 +#: src/gpasswd.c:89 #, c-format msgid "usage: %s [-r|-R] group\n" msgstr "usage: %s [-r|-R] groupe\n" -#: src/gpasswd.c:92 +#: src/gpasswd.c:90 #, c-format msgid " %s [-a user] group\n" msgstr " %s [-a utilisateur] groupe\n" -#: src/gpasswd.c:93 +#: src/gpasswd.c:91 #, c-format msgid " %s [-d user] group\n" msgstr " %s [-d utilisateur] groupe\n" -#: src/gpasswd.c:95 +#: src/gpasswd.c:93 #, c-format msgid " %s [-A user,...] [-M user,...] group\n" msgstr " %s [-A utilisateur,...] [-M utilisateur,...] groupe\n" -#: src/gpasswd.c:98 +#: src/gpasswd.c:96 #, c-format msgid " %s [-M user,...] group\n" msgstr " %s [-M utilisateur,...] groupe\n" -#: src/gpasswd.c:162 src/gpasswd.c:247 +#: src/gpasswd.c:160 src/gpasswd.c:245 #, c-format msgid "%s: unknown user %s\n" msgstr "%s : utilisateur %s inconnu\n" -#: src/gpasswd.c:174 +#: src/gpasswd.c:172 msgid "Permission denied.\n" msgstr "Permission refus�e.\n" -#: src/gpasswd.c:259 +#: src/gpasswd.c:257 #, c-format msgid "%s: shadow group passwords required for -A\n" msgstr "%s : mots de passe shadow n�cessaires pour -A\n" -#: src/gpasswd.c:310 +#: src/gpasswd.c:308 msgid "Who are you?\n" msgstr "Qui �tes vous?\n" -#: src/gpasswd.c:330 src/newgrp.c:247 +#: src/gpasswd.c:328 src/newgrp.c:251 #, c-format msgid "unknown group: %s\n" msgstr "groupe inconnu : %s\n" -#: src/gpasswd.c:438 +#: src/gpasswd.c:436 #, c-format msgid "Adding user %s to group %s\n" msgstr "Ajout de l'utilisateur %s au groupe %s\n" -#: src/gpasswd.c:455 +#: src/gpasswd.c:453 #, c-format msgid "Removing user %s from group %s\n" msgstr "Retrait de l'utilisateur %s du groupe %s\n" -#: src/gpasswd.c:468 +#: src/gpasswd.c:466 #, c-format msgid "%s: unknown member %s\n" msgstr "%s : membre %s inconnu\n" -#: src/gpasswd.c:515 +#: src/gpasswd.c:513 #, c-format msgid "%s: Not a tty\n" msgstr "%s : N'est pas un tty\n" @@ -803,105 +803,105 @@ msgstr "%s : N'est pas un tty\n" #. * the old password since the invoker is either the group #. * owner, or root. #. -#: src/gpasswd.c:537 +#: src/gpasswd.c:535 #, c-format msgid "Changing the password for group %s\n" msgstr "Changement du mot de passe pour le group %s\n" -#: src/gpasswd.c:540 +#: src/gpasswd.c:538 msgid "New Password: " msgstr "Nouveau mot de passe : " -#: src/gpasswd.c:545 src/passwd.c:424 +#: src/gpasswd.c:543 src/passwd.c:422 msgid "Re-enter new password: " msgstr "Nouveau mot de passe (� nouveau) : " -#: src/gpasswd.c:557 +#: src/gpasswd.c:555 msgid "They don't match; try again" msgstr "Ils ne sont pas identiques; essayez � nouveau" -#: src/gpasswd.c:561 +#: src/gpasswd.c:559 #, c-format msgid "%s: Try again later\n" msgstr "%s: Essayez � nouveau plus tard\n" -#: src/gpasswd.c:591 +#: src/gpasswd.c:590 #, c-format msgid "%s: can't get lock\n" msgstr "%s : impossible d'obtenir le verrou\n" -#: src/gpasswd.c:597 +#: src/gpasswd.c:596 #, c-format msgid "%s: can't get shadow lock\n" msgstr "%s : impossible d'obtenir le verrou sur shadow\n" -#: src/gpasswd.c:603 +#: src/gpasswd.c:602 #, c-format msgid "%s: can't open file\n" msgstr "%s : impossible d'ouvrir le fichier\n" -#: src/gpasswd.c:615 +#: src/gpasswd.c:614 #, c-format msgid "%s: can't update entry\n" msgstr "%s : impossible de mettre � jour l'entr�e\n" -#: src/gpasswd.c:621 +#: src/gpasswd.c:620 #, c-format msgid "%s: can't update shadow entry\n" msgstr "%s : impossible de mettre � jour l'entr�e shadow\n" -#: src/gpasswd.c:627 +#: src/gpasswd.c:626 #, c-format msgid "%s: can't re-write file\n" msgstr "%s : impossible de re-�crire le fichier\n" -#: src/gpasswd.c:633 +#: src/gpasswd.c:632 #, c-format msgid "%s: can't re-write shadow file\n" msgstr "%s : impossible de re-�crire le fichier shadow\n" -#: src/gpasswd.c:641 +#: src/gpasswd.c:640 #, c-format msgid "%s: can't unlock file\n" msgstr "%s : impossible de d�v�rouiller le fichier\n" -#: src/gpasswd.c:646 +#: src/gpasswd.c:645 #, c-format msgid "%s: can't update DBM files\n" msgstr "%s : impossible de mettre � jours les fichiers DBM\n" -#: src/gpasswd.c:653 +#: src/gpasswd.c:652 #, c-format msgid "%s: can't update DBM shadow files\n" msgstr "%s : impossible de mettre � jours les fichiers DBM shadow\n" -#: src/groupadd.c:106 +#: src/groupadd.c:105 msgid "usage: groupadd [-g gid [-o]] group\n" msgstr "usage: groupadd [-g gid [-o]] groupe\n" -#: src/groupadd.c:174 src/groupadd.c:197 src/groupmod.c:184 src/groupmod.c:231 -#: src/useradd.c:932 src/usermod.c:513 src/usermod.c:649 +#: src/groupadd.c:173 src/groupadd.c:196 src/groupmod.c:183 src/groupmod.c:230 +#: src/useradd.c:931 src/usermod.c:512 src/usermod.c:648 #, c-format msgid "%s: error adding new group entry\n" msgstr "%s : erreur durant l'addition du nouveau groupe\n" -#: src/groupadd.c:184 src/groupadd.c:207 src/groupmod.c:200 src/useradd.c:943 -#: src/usermod.c:525 src/usermod.c:661 +#: src/groupadd.c:183 src/groupadd.c:206 src/groupmod.c:199 src/useradd.c:942 +#: src/usermod.c:524 src/usermod.c:660 #, c-format msgid "%s: cannot add new dbm group entry\n" msgstr "%s : impossible d'ajouter une nouvelle entr�e pour le groupe dbm\n" -#: src/groupadd.c:259 src/useradd.c:997 +#: src/groupadd.c:258 src/useradd.c:996 #, c-format msgid "%s: name %s is not unique\n" msgstr "%s : le nom %s n'est pas unique\n" -#: src/groupadd.c:274 +#: src/groupadd.c:273 #, c-format msgid "%s: gid %ld is not unique\n" msgstr "%s : le gid %ld n'est pas unique\n" -#: src/groupadd.c:298 +#: src/groupadd.c:297 #, c-format msgid "%s: can't get unique gid\n" msgstr "%s : impossible d'obtenir un gid unique\n" @@ -909,78 +909,78 @@ msgstr "%s : impossible d'obtenir un gid unique\n" #. #. * All invalid group names land here. #. -#: src/groupadd.c:322 src/groupmod.c:342 +#: src/groupadd.c:321 src/groupmod.c:341 #, c-format msgid "%s: %s is a not a valid group name\n" msgstr "%s : %s n'est pas un nom de groupe valide\n" -#: src/groupadd.c:351 src/groupmod.c:368 +#: src/groupadd.c:350 src/groupmod.c:367 #, c-format msgid "%s: invalid group %s\n" msgstr "%s : groupe %s non valide\n" -#: src/groupadd.c:368 src/useradd.c:1273 +#: src/groupadd.c:367 src/useradd.c:1272 #, c-format msgid "%s: -O requires NAME=VALUE\n" msgstr "%s : -O requiert NAME=VALEUR\n" -#: src/groupadd.c:413 src/groupdel.c:168 src/groupmod.c:404 src/useradd.c:1382 -#: src/userdel.c:273 src/usermod.c:537 +#: src/groupadd.c:412 src/groupdel.c:167 src/groupmod.c:403 src/useradd.c:1381 +#: src/userdel.c:303 src/usermod.c:536 #, c-format msgid "%s: cannot rewrite group file\n" msgstr "%s : impossible de re-�crire le fichier group\n" -#: src/groupadd.c:419 src/groupdel.c:174 src/groupmod.c:410 src/useradd.c:1390 -#: src/userdel.c:279 src/usermod.c:674 +#: src/groupadd.c:418 src/groupdel.c:173 src/groupmod.c:409 src/useradd.c:1389 +#: src/userdel.c:309 src/usermod.c:673 #, c-format msgid "%s: cannot rewrite shadow group file\n" msgstr "%s : impossible de re-�crire le fichier shadow group\n" -#: src/groupadd.c:438 src/groupdel.c:193 src/groupmod.c:429 src/userdel.c:359 +#: src/groupadd.c:437 src/groupdel.c:192 src/groupmod.c:428 src/userdel.c:389 #, c-format msgid "%s: unable to lock group file\n" msgstr "%s : impossible de v�rouiller le fichier group\n" -#: src/groupadd.c:442 src/groupdel.c:197 src/groupmod.c:433 +#: src/groupadd.c:441 src/groupdel.c:196 src/groupmod.c:432 #, c-format msgid "%s: unable to open group file\n" msgstr "%s : impossible d'ouvrir le fichier group\n" -#: src/groupadd.c:447 src/groupdel.c:202 src/groupmod.c:438 src/userdel.c:368 +#: src/groupadd.c:446 src/groupdel.c:201 src/groupmod.c:437 src/userdel.c:398 #, c-format msgid "%s: unable to lock shadow group file\n" msgstr "%s : impossible de v�rouiller le fichier group\n" -#: src/groupadd.c:452 src/groupdel.c:207 src/groupmod.c:443 +#: src/groupadd.c:451 src/groupdel.c:206 src/groupmod.c:442 #, c-format msgid "%s: unable to open shadow group file\n" msgstr "%s : impossible d'ouvrir le fichier shadow group\n" -#: src/groupadd.c:519 +#: src/groupadd.c:518 #, c-format msgid "%s: group %s exists\n" msgstr "%s : le groupe %s existe\n" -#: src/groupdel.c:87 +#: src/groupdel.c:86 msgid "usage: groupdel group\n" msgstr "usage: groupdel groupe\n" -#: src/groupdel.c:105 src/groupmod.c:188 src/groupmod.c:235 +#: src/groupdel.c:104 src/groupmod.c:187 src/groupmod.c:234 #, c-format msgid "%s: error removing group entry\n" msgstr "%s : erreur lors de retrait de l'entr�e du groupe\n" -#: src/groupdel.c:117 src/groupmod.c:207 +#: src/groupdel.c:116 src/groupmod.c:206 #, c-format msgid "%s: error removing group dbm entry\n" msgstr "%s : erreur lors du retrait de l'entr�e dbm du groupe\n" -#: src/groupdel.c:132 +#: src/groupdel.c:131 #, c-format msgid "%s: error removing shadow group entry\n" msgstr "%s : erreur lors du retrait de l'entr�e shadow du groupe\n" -#: src/groupdel.c:145 src/groupmod.c:253 +#: src/groupdel.c:144 src/groupmod.c:252 #, c-format msgid "%s: error removing shadow group dbm entry\n" msgstr "%s : erreur lors du retrait de l'entr�e dbm shadow du groupe\n" @@ -988,76 +988,76 @@ msgstr "%s : erreur lors du retrait de l'entr #. #. * Can't remove the group. #. -#: src/groupdel.c:249 +#: src/groupdel.c:248 #, c-format msgid "%s: cannot remove user's primary group.\n" msgstr "%s : impossible d'enlever l'utilisateur de son groupe primaire.\n" -#: src/groupdel.c:306 src/groupmod.c:502 +#: src/groupdel.c:305 src/groupmod.c:501 #, c-format msgid "%s: group %s does not exist\n" msgstr "%s : le groupe %s n'existe pas\n" -#: src/groupdel.c:320 src/groupmod.c:518 +#: src/groupdel.c:319 src/groupmod.c:517 #, c-format msgid "%s: group %s is a NIS group\n" msgstr "%s : le groupe %s est un groupe NIS\n" -#: src/groupdel.c:326 src/groupmod.c:524 src/userdel.c:731 src/usermod.c:990 +#: src/groupdel.c:325 src/groupmod.c:523 src/userdel.c:761 src/usermod.c:989 #, c-format msgid "%s: %s is the NIS master\n" msgstr "%s : %s est le ma�tre NIS\n" -#: src/groupmod.c:106 +#: src/groupmod.c:105 msgid "usage: groupmod [-g gid [-o]] [-n name] group\n" msgstr "usage : groupmod [-g gid [-o]] [-n nom] groupe\n" -#: src/groupmod.c:166 +#: src/groupmod.c:165 #, c-format msgid "%s: %s not found in /etc/group\n" msgstr "%s : %s non trouv� dans /etc/group\n" -#: src/groupmod.c:247 +#: src/groupmod.c:246 #, c-format msgid "%s: cannot add new dbm shadow group entry\n" msgstr "%s : impossible d'ajouter une nouvelle entr�e dbm shadow group\n" -#: src/groupmod.c:300 +#: src/groupmod.c:299 #, c-format msgid "%s: %ld is not a unique gid\n" msgstr "%s : %ld n'est pas un gid unique\n" -#: src/groupmod.c:331 +#: src/groupmod.c:330 #, c-format msgid "%s: %s is not a unique name\n" msgstr "%s : %s n'est pas un nom unique\n" -#: src/groups.c:63 +#: src/groups.c:62 #, c-format msgid "unknown user %s\n" msgstr "utilisateur %s inconnu\n" -#: src/grpck.c:99 +#: src/grpck.c:98 #, c-format msgid "Usage: %s [ -r ] [ group [ gshadow ] ]\n" msgstr "Usage : %s [ -r ] ] groupe [ gshadow ] ]\n" -#: src/grpck.c:101 +#: src/grpck.c:100 #, c-format msgid "Usage: %s [ -r ] [ group ]\n" msgstr "Usage: %s [ -r ] [ groupe ]\n" -#: src/grpck.c:120 src/pwck.c:120 +#: src/grpck.c:119 src/pwck.c:119 msgid "No" msgstr "Non" -#: src/grpck.c:235 src/grpck.c:243 src/pwck.c:217 src/pwck.c:226 +#: src/grpck.c:234 src/grpck.c:242 src/pwck.c:216 src/pwck.c:225 #, c-format msgid "%s: cannot lock file %s\n" msgstr "%s : impossible de v�rouiller le fichier %s\n" -#: src/grpck.c:258 src/grpck.c:266 src/mkpasswd.c:217 src/pwck.c:242 -#: src/pwck.c:251 +#: src/grpck.c:257 src/grpck.c:265 src/mkpasswd.c:216 src/pwck.c:241 +#: src/pwck.c:250 #, c-format msgid "%s: cannot open file %s\n" msgstr "%s : impossible d'ouvrir le fichier %s\n" @@ -1066,13 +1066,13 @@ msgstr "%s : impossible d'ouvrir le fichier %s\n" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:299 +#: src/grpck.c:298 msgid "invalid group file entry\n" msgstr "entr�e dans le fichier group non valide\n" -#: src/grpck.c:300 src/grpck.c:363 src/grpck.c:455 src/grpck.c:518 -#: src/grpck.c:535 src/pwck.c:287 src/pwck.c:349 src/pwck.c:456 src/pwck.c:518 -#: src/pwck.c:542 +#: src/grpck.c:299 src/grpck.c:362 src/grpck.c:454 src/grpck.c:517 +#: src/grpck.c:534 src/pwck.c:286 src/pwck.c:348 src/pwck.c:455 src/pwck.c:517 +#: src/pwck.c:541 #, c-format msgid "delete line `%s'? " msgstr "effacer la ligne `%s'? " @@ -1081,26 +1081,26 @@ msgstr "effacer la ligne `%s'? " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:362 +#: src/grpck.c:361 msgid "duplicate group entry\n" msgstr "entr�e de groupe dupliqu�e\n" -#: src/grpck.c:379 +#: src/grpck.c:378 #, c-format msgid "invalid group name `%s'\n" msgstr "nom de groupe `%s' non valide\n" -#: src/grpck.c:389 +#: src/grpck.c:388 #, c-format msgid "group %s: bad GID (%d)\n" msgstr "groupe %s : mauvais GID (%d)\n" -#: src/grpck.c:415 +#: src/grpck.c:414 #, c-format msgid "group %s: no user %s\n" msgstr "groupe %s : pas d'utilisateur %s\n" -#: src/grpck.c:417 src/grpck.c:586 +#: src/grpck.c:416 src/grpck.c:585 #, c-format msgid "delete member `%s'? " msgstr "effacer le membre `%s'? " @@ -1109,7 +1109,7 @@ msgstr "effacer le membre `%s'? " #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:454 +#: src/grpck.c:453 msgid "invalid shadow group file entry\n" msgstr "entr�e non valide dans le fichier shadow group\n" @@ -1117,65 +1117,65 @@ msgstr "entr #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:517 +#: src/grpck.c:516 msgid "duplicate shadow group entry\n" msgstr "entr�e dupliqu�e dans le fichier shadow group\n" -#: src/grpck.c:534 +#: src/grpck.c:533 msgid "no matching group file entry\n" msgstr "aucune entr�e dans le fichier group correspondante\n" -#: src/grpck.c:554 +#: src/grpck.c:553 #, c-format msgid "shadow group %s: no administrative user %s\n" msgstr "groupe shadow %s : aucun administrateur %s\n" -#: src/grpck.c:556 +#: src/grpck.c:555 #, c-format msgid "delete administrative member `%s'? " msgstr "effacer le membre administrateur `%s' ?" -#: src/grpck.c:584 +#: src/grpck.c:583 #, c-format msgid "shadow group %s: no user %s\n" msgstr "groupe shadow %s : aucun utilisateur %s\n" -#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581 +#: src/grpck.c:610 src/grpck.c:616 src/pwck.c:572 src/pwck.c:580 #, c-format msgid "%s: cannot update file %s\n" msgstr "%s : impossible de mettre � jour le fichier %s\n" -#: src/grpck.c:641 src/pwck.c:607 +#: src/grpck.c:640 src/pwck.c:606 #, c-format msgid "%s: the files have been updated; run mkpasswd\n" msgstr "%s : les fichiers ont �t� mis � jour; ex�cutez mkpasswd\n" -#: src/grpck.c:642 src/grpck.c:646 src/pwck.c:608 src/pwck.c:612 +#: src/grpck.c:641 src/grpck.c:645 src/pwck.c:607 src/pwck.c:611 #, c-format msgid "%s: no changes\n" msgstr "" -#: src/grpck.c:645 src/pwck.c:611 +#: src/grpck.c:644 src/pwck.c:610 #, c-format msgid "%s: the files have been updated\n" msgstr "" -#: src/grpconv.c:63 src/grpunconv.c:64 +#: src/grpconv.c:62 src/grpunconv.c:63 #, c-format msgid "%s: can't lock group file\n" msgstr "" -#: src/grpconv.c:68 src/grpunconv.c:69 +#: src/grpconv.c:67 src/grpunconv.c:68 #, c-format msgid "%s: can't open group file\n" msgstr "" -#: src/grpconv.c:73 src/grpunconv.c:74 +#: src/grpconv.c:72 src/grpunconv.c:73 #, c-format msgid "%s: can't lock shadow group file\n" msgstr "" -#: src/grpconv.c:78 src/grpunconv.c:79 +#: src/grpconv.c:77 src/grpunconv.c:78 #, c-format msgid "%s: can't open shadow group file\n" msgstr "" @@ -1183,85 +1183,85 @@ msgstr "" #. #. * This shouldn't happen (the entry exists) but... #. -#: src/grpconv.c:94 +#: src/grpconv.c:93 #, c-format msgid "%s: can't remove shadow group %s\n" msgstr "" -#: src/grpconv.c:135 src/pwconv.c:161 +#: src/grpconv.c:134 src/pwconv.c:160 #, c-format msgid "%s: can't update shadow entry for %s\n" msgstr "" -#: src/grpconv.c:144 src/grpunconv.c:95 +#: src/grpconv.c:143 src/grpunconv.c:94 #, c-format msgid "%s: can't update entry for group %s\n" msgstr "" -#: src/grpconv.c:151 src/grpunconv.c:103 +#: src/grpconv.c:150 src/grpunconv.c:102 #, c-format msgid "%s: can't update shadow group file\n" msgstr "" -#: src/grpconv.c:155 src/grpunconv.c:108 +#: src/grpconv.c:154 src/grpunconv.c:107 #, c-format msgid "%s: can't update group file\n" msgstr "" -#: src/grpconv.c:170 src/grpunconv.c:129 +#: src/grpconv.c:169 src/grpunconv.c:128 #, c-format msgid "%s: not configured for shadow group support.\n" msgstr "" -#: src/grpunconv.c:113 +#: src/grpunconv.c:112 #, c-format msgid "%s: can't delete shadow group file\n" msgstr "" -#: src/id.c:57 +#: src/id.c:56 msgid "usage: id [ -a ]\n" msgstr "Usage : id [ -a ]\n" -#: src/id.c:59 +#: src/id.c:58 msgid "usage: id\n" msgstr "Usage : id\n" -#: src/id.c:119 +#: src/id.c:118 #, c-format msgid "uid=%d(%s)" msgstr "uid=%d(%s)" -#: src/id.c:121 +#: src/id.c:120 #, c-format msgid "uid=%d" msgstr "uid=%d" -#: src/id.c:125 +#: src/id.c:124 #, c-format msgid " gid=%d(%s)" msgstr " gid=%d(%s)" -#: src/id.c:127 +#: src/id.c:126 #, c-format msgid " gid=%d" msgstr " gid=%d" -#: src/id.c:137 +#: src/id.c:136 #, c-format msgid " euid=%d(%s)" msgstr " euid=%d(%s)" -#: src/id.c:139 +#: src/id.c:138 #, c-format msgid " euid=%d" msgstr " euid=%d" -#: src/id.c:144 +#: src/id.c:143 #, c-format msgid " egid=%d(%s)" msgstr " egid=%d(%s)" -#: src/id.c:146 +#: src/id.c:145 #, c-format msgid " egid=%d" msgstr " egid=%d" @@ -1274,42 +1274,42 @@ msgstr " egid=%d" #. * where "###" is a numerical value and "aaa" is the #. * corresponding name for each respective numerical value. #. -#: src/id.c:167 +#: src/id.c:166 msgid " groups=" msgstr " groupes=" -#: src/lastlog.c:168 +#: src/lastlog.c:167 msgid "Username Port From Latest\n" msgstr "Utilisateur Port Venant de Derni�re\n" -#: src/lastlog.c:170 +#: src/lastlog.c:169 msgid "Username Port Latest\n" msgstr "Utilisateur Port Derni�re\n" -#: src/lastlog.c:184 +#: src/lastlog.c:183 msgid "**Never logged in**" msgstr "**Jamais connect�**" -#: src/login.c:199 +#: src/login.c:198 #, c-format msgid "usage: %s [-p] [name]\n" msgstr "Usage : %s [-p] [nom]\n" -#: src/login.c:202 +#: src/login.c:201 #, c-format msgid " %s [-p] [-h host] [-f name]\n" msgstr " %s [-p] [-h h�te] [-f nom]\n" -#: src/login.c:204 +#: src/login.c:203 #, c-format msgid " %s [-p] -r host\n" msgstr " %s [-p] -r h�te\n" -#: src/login.c:287 +#: src/login.c:286 msgid "Invalid login time\n" msgstr "Heure de connexion non valide\n" -#: src/login.c:342 +#: src/login.c:341 msgid "" "\n" "System closed for routine maintenance\n" @@ -1317,7 +1317,7 @@ msgstr "" "\n" "Syst�me ferm� pour maintenance\n" -#: src/login.c:352 +#: src/login.c:351 msgid "" "\n" "[Disconnect bypassed -- root login allowed.]\n" @@ -1325,7 +1325,7 @@ msgstr "" "\n" "[Disconnexion court-circuit�e -- login root authoris�.]\n" -#: src/login.c:391 +#: src/login.c:390 #, c-format msgid "" "\n" @@ -1344,7 +1344,7 @@ msgstr " sur `%.100s' msgid " on `%.100s'" msgstr " sur `%.100s'" -#: src/login.c:807 +#: src/login.c:834 #, c-format msgid "" "\n" @@ -1353,34 +1353,34 @@ msgstr "" "\n" "% login: " -#: src/login.c:809 +#: src/login.c:836 msgid "login: " msgstr "login: " -#: src/login.c:991 src/sulogin.c:233 +#: src/login.c:1026 src/sulogin.c:231 msgid "Login incorrect" msgstr "Login incorrect" -#: src/login.c:1163 +#: src/login.c:1213 msgid "Warning: login re-enabled after temporary lockout.\n" msgstr "Avertissement: login r�activ� apr�s une d�sactivation temporaire.\n" -#: src/login.c:1173 +#: src/login.c:1223 #, c-format msgid "Last login: %s on %s" msgstr "Derni�re connexion : le %s sur %s" -#: src/login.c:1176 +#: src/login.c:1226 #, c-format msgid "Last login: %.19s on %s" msgstr "Derni�re connexion : le %.19s sur %s" -#: src/login.c:1181 +#: src/login.c:1231 #, c-format msgid " from %.*s" msgstr " � partir de %.*s" -#: src/login.c:1246 +#: src/login.c:1303 msgid "Starting rad_login\n" msgstr "D�marrage de rad_login\n" @@ -1389,192 +1389,192 @@ msgstr "D msgid "%s: no DBM database on system - no action performed\n" msgstr "%s : pas de base de donn�es DBM sur le syst�me - aucune action prise\n" -#: src/mkpasswd.c:246 src/mkpasswd.c:250 +#: src/mkpasswd.c:245 src/mkpasswd.c:249 #, c-format msgid "%s: cannot overwrite file %s\n" msgstr "%s : impossible d'�craser le fichier %s\n" -#: src/mkpasswd.c:264 +#: src/mkpasswd.c:263 #, c-format msgid "%s: cannot open DBM files for %s\n" msgstr "%s : impossible d'ouvrir les fichiers DBM pour %s\n" -#: src/mkpasswd.c:297 +#: src/mkpasswd.c:296 #, c-format msgid "%s: the beginning with " msgstr "" -#: src/mkpasswd.c:322 +#: src/mkpasswd.c:321 #, c-format msgid "%s: error parsing line \"%s\"\n" msgstr "%s : erreur lors l'analyse de la ligne \"%s\"\n" -#: src/mkpasswd.c:327 src/mkpasswd.c:329 src/mkpasswd.c:331 src/mkpasswd.c:333 +#: src/mkpasswd.c:326 src/mkpasswd.c:328 src/mkpasswd.c:330 src/mkpasswd.c:332 msgid "adding record for name " msgstr "" -#: src/mkpasswd.c:337 src/mkpasswd.c:342 src/mkpasswd.c:346 src/mkpasswd.c:350 +#: src/mkpasswd.c:336 src/mkpasswd.c:341 src/mkpasswd.c:345 src/mkpasswd.c:349 #, c-format msgid "%s: error adding record for " msgstr "" -#: src/mkpasswd.c:368 +#: src/mkpasswd.c:367 #, c-format msgid "added %d entries, longest was %d\n" msgstr "%d entr�es ajout�es, la plus longue fut %d\n" -#: src/mkpasswd.c:383 +#: src/mkpasswd.c:382 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp|sg ] file\n" msgstr "Usage : %s [ -vf ] [ -p|g|sp|sg ] fichier\n" -#: src/mkpasswd.c:385 +#: src/mkpasswd.c:384 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp ] file\n" msgstr "Usage : %s [ -vf ] [ -p|g|sp ] fichier\n" -#: src/mkpasswd.c:388 +#: src/mkpasswd.c:387 #, c-format msgid "Usage: %s [ -vf ] [ -p|g ] file\n" msgstr "Usage : %s [ -vf ] [ -p|g ] fichier\n" -#: src/newgrp.c:67 +#: src/newgrp.c:66 msgid "usage: newgrp [ - ] [ group ]\n" msgstr "Usage : newgrp [ - ] [ groupe ]\n" -#: src/newgrp.c:69 +#: src/newgrp.c:68 #, fuzzy msgid "usage: sg group [[-c] command ]\n" msgstr "Usage : sg groupe [ commande ]\n" -#: src/newgrp.c:122 +#: src/newgrp.c:125 #, c-format msgid "unknown uid: %d\n" msgstr "uid inconnue : %d\n" -#: src/newgrp.c:198 +#: src/newgrp.c:201 #, c-format msgid "unknown gid: %ld\n" msgstr "gid inconnu : %ld\n" -#: src/newgrp.c:242 +#: src/newgrp.c:245 #, c-format msgid "unknown gid: %d\n" msgstr "gid inconnu : %d\n" -#: src/newgrp.c:315 src/newgrp.c:324 +#: src/newgrp.c:323 src/newgrp.c:332 msgid "Sorry.\n" msgstr "D�sol� ;-)\n" -#: src/newgrp.c:356 +#: src/newgrp.c:364 msgid "too many groups\n" msgstr "trop de groupes\n" -#: src/newusers.c:79 +#: src/newusers.c:76 #, c-format msgid "Usage: %s [ input ]\n" msgstr "Usage : %s [ entr�e ] \n" -#: src/newusers.c:367 +#: src/newusers.c:364 #, c-format msgid "%s: can't lock /etc/passwd.\n" msgstr "%s : impossible de v�rouiller /etc/passwd.\n" -#: src/newusers.c:378 +#: src/newusers.c:375 #, c-format msgid "%s: can't lock files, try again later\n" msgstr "%s : impossible de v�rouiller les fichiers, essayez plus tard\n" -#: src/newusers.c:393 +#: src/newusers.c:390 #, c-format msgid "%s: can't open files\n" msgstr "%s : impossible d'ouvrir les fichiers\n" -#: src/newusers.c:438 +#: src/newusers.c:435 #, c-format msgid "%s: line %d: invalid line\n" msgstr "%s : ligne %d : ligne non valide\n" -#: src/newusers.c:456 +#: src/newusers.c:453 #, c-format msgid "%s: line %d: can't create GID\n" msgstr "%s : ligne %d : impossible de cr�er le GID\n" -#: src/newusers.c:472 +#: src/newusers.c:469 #, c-format msgid "%s: line %d: can't create UID\n" msgstr "%s : ligne %d : impossible de cr�er le GID\n" -#: src/newusers.c:484 +#: src/newusers.c:481 #, c-format msgid "%s: line %d: cannot find user %s\n" msgstr "%s : ligne %d : impossible de trouver l'utilisateur %s\n" -#: src/newusers.c:492 +#: src/newusers.c:489 #, c-format msgid "%s: line %d: can't update password\n" msgstr "%s : ligne %d : impossible de mettre le mot de passe � jour\n" -#: src/newusers.c:509 +#: src/newusers.c:506 #, c-format msgid "%s: line %d: mkdir failed\n" msgstr "%s : ligne %d : �chec de mkdir\n" -#: src/newusers.c:513 +#: src/newusers.c:510 #, c-format msgid "%s: line %d: chown failed\n" msgstr "%s : ligne %d : �chec de chown\n" -#: src/newusers.c:522 +#: src/newusers.c:519 #, c-format msgid "%s: line %d: can't update entry\n" msgstr "%s : ligne %d : impossible de mettre l'entr�e � jour\n" -#: src/newusers.c:553 +#: src/newusers.c:550 #, c-format msgid "%s: error updating files\n" msgstr "%s : erreur lors de la mise � jour des fichiers\n" -#: src/passwd.c:241 +#: src/passwd.c:239 #, c-format msgid "usage: %s [ -f | -s ] [ name ]\n" msgstr "Usage : %s [ -f | -s ] [ nom ]\n" -#: src/passwd.c:244 +#: src/passwd.c:242 #, c-format msgid " %s [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name\n" msgstr " %s [ -x max ] [ -n min ] [ -w avert ] [ -i inact ] nom\n" -#: src/passwd.c:247 +#: src/passwd.c:245 #, c-format msgid " %s { -l | -u | -d | -S | -e } name\n" msgstr " %s { -l | -u | -d | -S | -e } nom\n" -#: src/passwd.c:349 +#: src/passwd.c:347 #, c-format msgid "User %s has a TCFS key, his old password is required.\n" msgstr "" "L'utilisateur %s a une cl� TCFS, son ancien mot de passe est n�cessaire.\n" -#: src/passwd.c:350 +#: src/passwd.c:348 msgid "You can use -t option to force the change.\n" msgstr "Vous pouvez utiliser l'option -t pour forcer le changement.\n" -#: src/passwd.c:356 +#: src/passwd.c:354 msgid "Old password: " msgstr "Ancien mot de passe : " -#: src/passwd.c:363 +#: src/passwd.c:361 #, c-format msgid "Incorrect password for `%s'\n" msgstr "Mot de passe incorrect pour `%s'\n" -#: src/passwd.c:376 +#: src/passwd.c:374 #, c-format msgid "Warning: user %s has a TCFS key.\n" msgstr "Avertissement : l'utilisateur %s a une cl� TCFS.\n" -#: src/passwd.c:394 +#: src/passwd.c:392 #, c-format msgid "" "Enter the new password (minimum of %d, maximum of %d characters)\n" @@ -1584,15 +1584,15 @@ msgstr "" "caract�res). Utilisez une combinaison de lettres en majuscule/minuscule\n" "et de nombres.\n" -#: src/passwd.c:401 +#: src/passwd.c:399 msgid "New password: " msgstr "Nouveau mot de passe : " -#: src/passwd.c:411 +#: src/passwd.c:409 msgid "Try again.\n" msgstr "Essaye encore...\n" -#: src/passwd.c:420 +#: src/passwd.c:418 msgid "" "\n" "Warning: weak password (enter it again to use it anyway).\n" @@ -1601,83 +1601,83 @@ msgstr "" "Avertissement : mot de passe simpliste (tapez le � nouveau pour l'utiliser\n" "quand m�me).\n" -#: src/passwd.c:429 +#: src/passwd.c:427 msgid "They don't match; try again.\n" msgstr "Ils ne sont pas identique; essaye encore...\n" -#: src/passwd.c:514 src/passwd.c:530 +#: src/passwd.c:512 src/passwd.c:528 #, c-format msgid "The password for %s cannot be changed.\n" msgstr "Le mot de passe pour %s ne peut �tre chang�.\n" -#: src/passwd.c:558 +#: src/passwd.c:556 #, c-format msgid "Sorry, the password for %s cannot be changed yet.\n" msgstr "D�sol�, le mot de passe pour %s ne peux pas encore �tre chang�.\n" -#: src/passwd.c:695 +#: src/passwd.c:693 #, c-format msgid "%s: out of memory\n" msgstr "%s : plus de m�moire\n" -#: src/passwd.c:847 +#: src/passwd.c:845 msgid "Cannot lock the TCFS key database; try again later\n" msgstr "" "Impossible de v�rouiller la base de donn�es de cl�s TCFS; essayez �\n" "nouveau plus tard\n" -#: src/passwd.c:853 +#: src/passwd.c:851 msgid "Cannot open the TCFS key database.\n" msgstr "Impossible d'ouvrir la base de cl�s TCFS.\n" -#: src/passwd.c:859 +#: src/passwd.c:857 msgid "Error updating the TCFS key database.\n" msgstr "Erreur lors de la mise � jour de la base de cl�s TCFS.\n" -#: src/passwd.c:864 +#: src/passwd.c:862 msgid "Cannot commit TCFS changes.\n" msgstr "Impossible de valider les changements TCFS.\n" -#: src/passwd.c:1071 +#: src/passwd.c:1069 #, c-format msgid "%s: Cannot execute %s" msgstr "%s : Impossible d'ex�cuter %s" -#: src/passwd.c:1178 +#: src/passwd.c:1176 #, c-format msgid "%s: repository %s not supported\n" msgstr "" -#: src/passwd.c:1265 +#: src/passwd.c:1263 #, c-format msgid "%s: Permission denied\n" msgstr "%s : Permission refus�e\n" -#: src/passwd.c:1289 +#: src/passwd.c:1287 #, c-format msgid "You may not change the password for %s.\n" msgstr "Vous ne pouvez pas changer le mot de passe de %s.\n" -#: src/passwd.c:1354 +#: src/passwd.c:1352 #, c-format msgid "Changing password for %s\n" msgstr "Changement du mot de passe de %s\n" -#: src/passwd.c:1358 +#: src/passwd.c:1356 #, c-format msgid "The password for %s is unchanged.\n" msgstr "Le mot de passe pour %s est inchang�.\n" -#: src/passwd.c:1414 +#: src/passwd.c:1412 msgid "Password changed.\n" msgstr "Mot de passe chang�.\n" -#: src/pwck.c:99 +#: src/pwck.c:98 #, c-format msgid "Usage: %s [ -qr ] [ passwd [ shadow ] ]\n" msgstr "Usage : %s [ -qr ] [ passwd [ shadow ] ]\n" -#: src/pwck.c:101 +#: src/pwck.c:100 #, c-format msgid "Usage: %s [ -qr ] [ passwd ]\n" msgstr "Usage : %s [ -qr ] [ passwd ]\n" @@ -1686,7 +1686,7 @@ msgstr "Usage : %s [ -qr ] [ passwd ]\n" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:286 +#: src/pwck.c:285 msgid "invalid password file entry\n" msgstr "entr�e non valide dans le fichier password\n" @@ -1694,16 +1694,16 @@ msgstr "entr #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:348 +#: src/pwck.c:347 msgid "duplicate password entry\n" msgstr "entr�e dupliqu�e dans password\n" -#: src/pwck.c:364 +#: src/pwck.c:363 #, c-format msgid "invalid user name `%s'\n" msgstr "nom d'utilisateur `%s' non valide\n" -#: src/pwck.c:374 +#: src/pwck.c:373 #, c-format msgid "user %s: bad UID (%d)\n" msgstr "utilisateur %s : mauvais UID (%d)\n" @@ -1711,7 +1711,7 @@ msgstr "utilisateur %s : mauvais UID (%d)\n" #. #. * No primary group, just give a warning #. -#: src/pwck.c:389 +#: src/pwck.c:388 #, c-format msgid "user %s: no group %d\n" msgstr "utilisateur %s : aucun groupe %d\n" @@ -1719,7 +1719,7 @@ msgstr "utilisateur %s : aucun groupe %d\n" #. #. * Home directory doesn't exist, give a warning #. -#: src/pwck.c:404 +#: src/pwck.c:403 #, c-format msgid "user %s: directory %s does not exist\n" msgstr "utilisateur %s : le r�pertoire %s n'existe pas\n" @@ -1727,7 +1727,7 @@ msgstr "utilisateur %s : le r #. #. * Login shell doesn't exist, give a warning #. -#: src/pwck.c:419 +#: src/pwck.c:418 #, c-format msgid "user %s: program %s does not exist\n" msgstr "utilisateur %s : le programme %s n'existe pas\n" @@ -1736,7 +1736,7 @@ msgstr "utilisateur %s : le programme %s n'existe pas\n" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:455 +#: src/pwck.c:454 msgid "invalid shadow password file entry\n" msgstr "entr�e shadow password non valide\n" @@ -1744,7 +1744,7 @@ msgstr "entr #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:517 +#: src/pwck.c:516 msgid "duplicate shadow password entry\n" msgstr "entr�e shadow password dupliqu�e\n" @@ -1752,42 +1752,42 @@ msgstr "entr #. * Tell the user this entry has no matching #. * /etc/passwd entry and ask them to delete it. #. -#: src/pwck.c:541 +#: src/pwck.c:540 msgid "no matching password file entry\n" msgstr "aucune entr�e correspondante dans le fichier password\n" -#: src/pwck.c:558 +#: src/pwck.c:557 #, c-format msgid "user %s: last password change in the future\n" msgstr "" "utilisateur %s : date du dernier changement de mot de passe dans le futur\n" -#: src/pwconv.c:95 src/pwunconv.c:109 +#: src/pwconv.c:94 src/pwunconv.c:108 #, c-format msgid "%s: can't lock passwd file\n" msgstr "%s : impossible de v�rouiller le fichier passwd\n" -#: src/pwconv.c:100 src/pwunconv.c:114 +#: src/pwconv.c:99 src/pwunconv.c:113 #, c-format msgid "%s: can't open passwd file\n" msgstr "%s : impossible d'ouvrir le fichier passwd\n" -#: src/pwconv.c:127 +#: src/pwconv.c:126 #, c-format msgid "%s: can't remove shadow entry for %s\n" msgstr "%s : impossible d'enlever l'entr�e shadow pour %s\n" -#: src/pwconv.c:170 +#: src/pwconv.c:169 #, c-format msgid "%s: can't update passwd entry for %s\n" msgstr "%s : impossible de mettre � jour le mot de passe de %s\n" -#: src/pwconv.c:177 +#: src/pwconv.c:176 #, c-format msgid "%s: can't update shadow file\n" msgstr "%s : impossible de mettre � jour le fichier shadow\n" -#: src/pwconv.c:181 +#: src/pwconv.c:180 #, c-format msgid "%s: can't update passwd file\n" msgstr "%s : impossible de mettre � jour le fichier passwd\n" @@ -1797,52 +1797,52 @@ msgstr "%s : impossible de mettre msgid "%s: Shadow passwords are not configured.\n" msgstr "%s : Les mots de passe shadow ne sont pas configur�s.\n" -#: src/pwunconv.c:172 +#: src/pwunconv.c:171 #, c-format msgid "%s: can't update entry for user %s\n" msgstr "%s : impossible de mettre � jour l'entr�e %s\n" -#: src/pwunconv.c:189 +#: src/pwunconv.c:188 #, c-format msgid "%s: can't delete shadow password file\n" msgstr "%s : impossible d'effacer le fichier shadow\n" -#: src/su.c:145 +#: src/su.c:140 msgid "Sorry." msgstr "D�sol� ;-)" -#: src/su.c:227 +#: src/su.c:222 #, c-format msgid "%s: must be run from a terminal\n" msgstr "%s : doit �tre lanc� � partir d'un terminal\n" -#: src/su.c:319 +#: src/su.c:311 #, c-format msgid "%s: pam_start: error %d\n" msgstr "%s : pam_start : erreur %d\n" -#: src/su.c:345 +#: src/su.c:337 #, c-format msgid "Unknown id: %s\n" msgstr "ID inconnue : %s\n" #. access denied (-1) or unexpected value -#: src/su.c:380 src/su.c:395 +#: src/su.c:372 src/su.c:387 #, fuzzy, c-format msgid "You are not authorized to su %s\n" msgstr "Vous n'�tes pas authoris�s " #. require own password -#: src/su.c:391 +#: src/su.c:383 msgid "(Enter your own password.)" msgstr "(Entrez votre propre mot de passe.)" -#: src/su.c:412 +#: src/su.c:404 #, c-format msgid "%s: permission denied (shell).\n" msgstr "%s : permission refus�e (shell).\n" -#: src/su.c:436 +#: src/su.c:428 #, c-format msgid "" "%s: %s\n" @@ -1851,19 +1851,19 @@ msgstr "" "%s: %s\n" "(Ignor�)\n" -#: src/su.c:605 +#: src/su.c:628 msgid "No shell\n" msgstr "Pas de shell\n" #. must be a password file! -#: src/sulogin.c:138 +#: src/sulogin.c:136 msgid "No password file\n" msgstr "Pas de fichier de mot de passe\n" #. #. * Fail secure #. -#: src/sulogin.c:180 +#: src/sulogin.c:178 msgid "No password entry for 'root'\n" msgstr "Pas d'entr�e pour le mot de passe de 'root'\n" @@ -1872,7 +1872,7 @@ msgstr "Pas d'entr #. * given we just exit. #. #. get a password for root -#: src/sulogin.c:194 +#: src/sulogin.c:192 msgid "" "\n" "Type control-d to proceed with normal startup,\n" @@ -1883,498 +1883,503 @@ msgstr "" "(ou donnez le mot de passe de root pour la maintenance) : " #. make new environment active -#: src/sulogin.c:243 +#: src/sulogin.c:241 msgid "Entering System Maintenance Mode\n" msgstr "Entr�e du syst�me en mode maintenance\n" -#: src/useradd.c:244 +#: src/useradd.c:243 #, c-format msgid "%s: rebuild the group database\n" msgstr "%s : reconstruction de la base de donn�es des groupes\n" -#: src/useradd.c:251 +#: src/useradd.c:250 #, c-format msgid "%s: rebuild the shadow group database\n" msgstr "%s : reconstruction de la base de donn�es des groupes shadow\n" -#: src/useradd.c:288 src/usermod.c:941 +#: src/useradd.c:287 src/usermod.c:940 #, c-format msgid "%s: invalid numeric argument `%s'\n" msgstr "%s : argument num�rique `%s' non valide\n" -#: src/useradd.c:344 +#: src/useradd.c:343 #, c-format msgid "%s: unknown gid %s\n" msgstr "%s : gid %s inconnu\n" -#: src/useradd.c:351 src/useradd.c:643 src/useradd.c:1229 src/usermod.c:253 -#: src/usermod.c:1072 +#: src/useradd.c:350 src/useradd.c:642 src/useradd.c:1228 src/usermod.c:252 +#: src/usermod.c:1071 #, c-format msgid "%s: unknown group %s\n" msgstr "%s : groupe %s inconnu\n" -#: src/useradd.c:419 +#: src/useradd.c:418 #, c-format msgid "group=%s,%ld basedir=%s skel=%s\n" msgstr "group=%s,%ld r�p_base=%s skel=%s\n" -#: src/useradd.c:422 +#: src/useradd.c:421 #, c-format msgid "shell=%s " msgstr "shell=%s " -#: src/useradd.c:424 +#: src/useradd.c:423 #, c-format msgid "inactive=%ld expire=%s" msgstr "inactif=%ld expire=%s" -#: src/useradd.c:428 +#: src/useradd.c:427 #, c-format msgid "GROUP=%ld\n" msgstr "GROUP=%ld\n" -#: src/useradd.c:429 +#: src/useradd.c:428 #, c-format msgid "HOME=%s\n" msgstr "HOME=%s\n" -#: src/useradd.c:431 +#: src/useradd.c:430 #, c-format msgid "INACTIVE=%ld\n" msgstr "INACTIVE=%ld\n" -#: src/useradd.c:432 +#: src/useradd.c:431 #, c-format msgid "EXPIRE=%s\n" msgstr "EXPIRE=%s\n" -#: src/useradd.c:434 +#: src/useradd.c:433 #, c-format msgid "SHELL=%s\n" msgstr "SHELL=%s\n" -#: src/useradd.c:435 +#: src/useradd.c:434 #, c-format msgid "SKEL=%s\n" msgstr "SKEL=%s\n" -#: src/useradd.c:471 +#: src/useradd.c:470 #, c-format msgid "%s: cannot create new defaults file\n" msgstr "%s : impossible de cr�er un nouveau fichier de d�fauts\n" -#: src/useradd.c:565 src/useradd.c:576 +#: src/useradd.c:564 src/useradd.c:575 #, c-format msgid "%s: rename: %s" msgstr "%s : rename : %s" -#: src/useradd.c:663 src/usermod.c:273 +#: src/useradd.c:662 src/usermod.c:272 #, c-format msgid "%s: group `%s' is a NIS group.\n" msgstr "%s : le groupe `%s' est un groupe NIS.\n" -#: src/useradd.c:671 src/usermod.c:281 +#: src/useradd.c:670 src/usermod.c:280 #, c-format msgid "%s: too many groups specified (max %d).\n" msgstr "%s : trop de groupes sp�cifi�s (max %d).\n" -#: src/useradd.c:703 src/usermod.c:313 +#: src/useradd.c:702 src/usermod.c:312 #, c-format msgid "usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n" msgstr "Usage : %s\t[-u uid [-o]] [-g groupe] [-G groupe,...] \n" -#: src/useradd.c:706 +#: src/useradd.c:705 msgid "\t\t[-d home] [-s shell] [-c comment] [-m [-k template]]\n" msgstr "\t\t[-d home] [-s shell] [-c commentaire] [-m [-k template]]\n" -#: src/useradd.c:709 src/usermod.c:319 +#: src/useradd.c:708 src/usermod.c:318 msgid "[-f inactive] [-e expire ] " msgstr "[-f inactif] [-e expire ] " -#: src/useradd.c:712 +#: src/useradd.c:711 msgid "[-A program] " msgstr "[-A program] " -#: src/useradd.c:714 src/usermod.c:324 +#: src/useradd.c:713 src/usermod.c:323 msgid "[-p passwd] name\n" msgstr "[-p mot-de-passe] nom\n" -#: src/useradd.c:716 +#: src/useradd.c:715 #, c-format msgid " %s\t-D [-g group] [-b base] [-s shell]\n" msgstr " %s\t-D [-g groupe] [-b base] [-s shell]\n" -#: src/useradd.c:719 +#: src/useradd.c:718 msgid "\t\t[-f inactive] [-e expire ]\n" msgstr "\t\t[-f inactif] [-e expire ]\n" -#: src/useradd.c:816 src/usermod.c:446 +#: src/useradd.c:815 src/usermod.c:445 #, c-format msgid "%s: error locking group file\n" msgstr "%s : erreur lors du v�rouillage du fichier de groupe\n" -#: src/useradd.c:820 src/usermod.c:451 +#: src/useradd.c:819 src/usermod.c:450 #, c-format msgid "%s: error opening group file\n" msgstr "%s : erreur lors d'ouverture du fichier de groupe\n" -#: src/useradd.c:825 src/usermod.c:558 +#: src/useradd.c:824 src/usermod.c:557 #, c-format msgid "%s: error locking shadow group file\n" msgstr "%s : erreur lors du v�rouillage du fichier shadow group\n" -#: src/useradd.c:830 src/usermod.c:564 +#: src/useradd.c:829 src/usermod.c:563 #, c-format msgid "%s: error opening shadow group file\n" msgstr "%s : erreur lors de l'ouverture du fichier shadow group\n" -#: src/useradd.c:1002 +#: src/useradd.c:1001 #, c-format msgid "%s: uid %d is not unique\n" msgstr "%s : l'uid %d n'est pas unique\n" -#: src/useradd.c:1032 +#: src/useradd.c:1031 #, c-format msgid "%s: can't get unique uid\n" msgstr "%s : impossible d'obtenir un uid unique\n" -#: src/useradd.c:1140 src/useradd.c:1284 src/usermod.c:1020 src/usermod.c:1031 -#: src/usermod.c:1041 src/usermod.c:1087 src/usermod.c:1122 +#: src/useradd.c:1139 src/useradd.c:1283 src/usermod.c:1019 src/usermod.c:1030 +#: src/usermod.c:1040 src/usermod.c:1086 src/usermod.c:1121 #, c-format msgid "%s: invalid field `%s'\n" msgstr "%s : champs `%s' non valide\n" -#: src/useradd.c:1154 +#: src/useradd.c:1153 #, c-format msgid "%s: invalid base directory `%s'\n" msgstr "%s : r�pertoire de base non valide `%s'\n" -#: src/useradd.c:1164 +#: src/useradd.c:1163 #, c-format msgid "%s: invalid comment `%s'\n" msgstr "%s : commentaire `%s' non valide\n" -#: src/useradd.c:1174 +#: src/useradd.c:1173 #, c-format msgid "%s: invalid home directory `%s'\n" msgstr "%s : r�pertoire personnel `%s' non valide\n" -#: src/useradd.c:1192 src/usermod.c:1054 +#: src/useradd.c:1191 src/usermod.c:1053 #, c-format msgid "%s: invalid date `%s'\n" msgstr "%s : date `%s' non valide\n" -#: src/useradd.c:1204 +#: src/useradd.c:1203 #, c-format msgid "%s: shadow passwords required for -e\n" msgstr "%s : mots de passe shadow n�cessaires pour -e\n" -#: src/useradd.c:1219 +#: src/useradd.c:1218 #, c-format msgid "%s: shadow passwords required for -f\n" msgstr "%s : mots de passe shadow n�cessaires pour -f\n" -#: src/useradd.c:1293 +#: src/useradd.c:1292 #, c-format msgid "%s: invalid shell `%s'\n" msgstr "%s : shell `%s' non valide\n" -#: src/useradd.c:1334 +#: src/useradd.c:1333 #, c-format msgid "%s: invalid user name `%s'\n" msgstr "%s : nom d'utilisateur `%s' non valide\n" -#: src/useradd.c:1370 src/userdel.c:262 src/usermod.c:1184 +#: src/useradd.c:1369 src/userdel.c:292 src/usermod.c:1183 #, c-format msgid "%s: cannot rewrite password file\n" msgstr "%s : impossible de re�crire le fichier de mots de passe\n" -#: src/useradd.c:1375 src/userdel.c:265 src/usermod.c:1189 +#: src/useradd.c:1374 src/userdel.c:295 src/usermod.c:1188 #, c-format msgid "%s: cannot rewrite shadow password file\n" msgstr "%s : impossible de re�crire le fichier shadow\n" -#: src/useradd.c:1415 src/userdel.c:329 src/usermod.c:1224 +#: src/useradd.c:1414 src/userdel.c:359 src/usermod.c:1223 #, c-format msgid "%s: unable to lock password file\n" msgstr "%s : impossible de v�rouiller le fichier de mots de passe\n" -#: src/useradd.c:1419 src/userdel.c:333 src/usermod.c:1228 +#: src/useradd.c:1418 src/userdel.c:363 src/usermod.c:1227 #, c-format msgid "%s: unable to open password file\n" msgstr "%s : impossible d'ouvrir le fichier de mots de passe\n" -#: src/useradd.c:1425 src/userdel.c:338 src/usermod.c:1233 +#: src/useradd.c:1424 src/userdel.c:368 src/usermod.c:1232 #, c-format msgid "%s: cannot lock shadow password file\n" msgstr "%s : impossible de v�rouiller le fichier de mots de passe\n" -#: src/useradd.c:1431 src/userdel.c:343 src/usermod.c:1238 +#: src/useradd.c:1430 src/userdel.c:373 src/usermod.c:1237 #, c-format msgid "%s: cannot open shadow password file\n" msgstr "%s : impossible d'ouvrir le fichier shadow\n" -#: src/useradd.c:1530 src/usermod.c:1325 +#: src/useradd.c:1529 src/usermod.c:1324 #, c-format msgid "%s: error adding authentication method\n" msgstr "%s : erreur lors de l'ajout de la m�thode d'authentification\n" -#: src/useradd.c:1553 +#: src/useradd.c:1552 #, c-format msgid "%s: error adding new password entry\n" msgstr "%s : erreur lors de l'ajout de la nouvelle entr�e\n" -#: src/useradd.c:1568 +#: src/useradd.c:1567 #, c-format msgid "%s: error updating password dbm entry\n" msgstr "%s : erreur lors de la mise � jour de l'entr�e dbm\n" -#: src/useradd.c:1584 src/usermod.c:1384 +#: src/useradd.c:1583 src/usermod.c:1383 #, c-format msgid "%s: error adding new shadow password entry\n" msgstr "%s : erreur lors de l'ajout de la nouvelle entr�e shadow\n" -#: src/useradd.c:1600 src/usermod.c:1399 +#: src/useradd.c:1599 src/usermod.c:1398 #, c-format msgid "%s: error updating shadow passwd dbm entry\n" msgstr "%s : erreur lors de la mise � jour de l'entr�e shadow passwd dbm\n" -#: src/useradd.c:1632 +#: src/useradd.c:1631 #, c-format msgid "%s: cannot create directory %s\n" msgstr "%s : impossible de cr�er le r�pertoire %s\n" -#: src/useradd.c:1709 src/usermod.c:1162 +#: src/useradd.c:1708 src/usermod.c:1161 #, c-format msgid "%s: user %s exists\n" msgstr "%s : l'utilisateur %s existe\n" -#: src/useradd.c:1739 +#: src/useradd.c:1738 #, c-format msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n" msgstr "" "%s : avertissement : CREATE_HOME non support�, utilisez -m � la place.\n" -#: src/userdel.c:128 +#: src/userdel.c:127 #, c-format msgid "usage: %s [-r] name\n" msgstr "Usage : %s [-r] nom\n" -#: src/userdel.c:175 src/userdel.c:230 +#: src/userdel.c:178 src/userdel.c:260 #, c-format msgid "%s: error updating group entry\n" msgstr "%s : erreur lors de la mise � jour de l'entr�e group\n" -#: src/userdel.c:185 src/userdel.c:239 +#: src/userdel.c:188 src/userdel.c:269 #, c-format msgid "%s: cannot update dbm group entry\n" msgstr "%s : impossible de mettre � jour l'entr�e dbm group\n" -#: src/userdel.c:270 +#: src/userdel.c:215 +#, fuzzy, c-format +msgid "%s: cannot remove dbm group entry\n" +msgstr "%s : impossible de mettre � jour l'entr�e dbm group\n" + +#: src/userdel.c:300 #, c-format msgid "%s: cannot rewrite TCFS key file\n" msgstr "%s : impossible de re�crire le fichier de cl�s TCFS\n" -#: src/userdel.c:350 +#: src/userdel.c:380 #, c-format msgid "%s: cannot lock TCFS key file\n" msgstr "%s : impossible de v�rouiller le fichier de cl�s TCFS\n" -#: src/userdel.c:354 +#: src/userdel.c:384 #, c-format msgid "%s: cannot open TCFS key file\n" msgstr "%s : impossible d'ouvrir le fichier de cl�s TCFS\n" -#: src/userdel.c:363 +#: src/userdel.c:393 #, c-format msgid "%s: cannot open group file\n" msgstr "%s : impossible d'ouvrir le fichier group\n" -#: src/userdel.c:373 +#: src/userdel.c:403 #, c-format msgid "%s: cannot open shadow group file\n" msgstr "%s : impossible d'ouvrir le fichier shadow group\n" -#: src/userdel.c:404 src/userdel.c:419 +#: src/userdel.c:434 src/userdel.c:449 #, c-format msgid "%s: error deleting authentication\n" msgstr "%s : erreur lors de l'effacement de l'authentification\n" -#: src/userdel.c:428 +#: src/userdel.c:458 #, c-format msgid "%s: error deleting password entry\n" msgstr "%s : erreur lors de la suppression de l'entr�e dans /etc/passwd\n" -#: src/userdel.c:431 +#: src/userdel.c:461 #, c-format msgid "%s: error deleting shadow password entry\n" msgstr "%s : erreur lors de la suppression de l'entr�e dans /etc/shadow\n" -#: src/userdel.c:440 +#: src/userdel.c:470 #, c-format msgid "%s: error deleting TCFS entry\n" msgstr "%s : erreur lors de l'effacement de l'entr�e TCFS\n" -#: src/userdel.c:453 +#: src/userdel.c:483 #, c-format msgid "%s: error deleting password dbm entry\n" msgstr "%s : erreur lors de l'effacement de l'entr�e dbm du mot de passe\n" -#: src/userdel.c:472 +#: src/userdel.c:502 #, c-format msgid "%s: error deleting shadow passwd dbm entry\n" msgstr "%s : erreur lors de l'effacement de l'entr�e shadow passwd dbm\n" -#: src/userdel.c:513 +#: src/userdel.c:543 #, c-format msgid "%s: user %s is currently logged in\n" msgstr "%s : l'utilisateur %s est connect�\n" -#: src/userdel.c:630 +#: src/userdel.c:660 #, c-format msgid "%s: warning: %s not owned by %s, not removing\n" msgstr "%s : avertissement : %s n'appartient pas � %s, non enlev�\n" -#: src/userdel.c:636 +#: src/userdel.c:666 #, c-format msgid "%s: warning: can't remove " msgstr "%s : impossible d'enlever " -#: src/userdel.c:711 src/usermod.c:968 +#: src/userdel.c:741 src/usermod.c:967 #, c-format msgid "%s: user %s does not exist\n" msgstr "%s : l'utilisateur %s n'existe pas\n" -#: src/userdel.c:725 src/usermod.c:984 +#: src/userdel.c:755 src/usermod.c:983 #, c-format msgid "%s: user %s is a NIS user\n" msgstr "%s : le compte %s est un compte NIS\n" -#: src/userdel.c:762 +#: src/userdel.c:792 #, c-format msgid "%s: %s not owned by %s, not removing\n" msgstr "%s : %s n'appartient pas � %s, non enlev�\n" -#: src/userdel.c:785 +#: src/userdel.c:815 #, c-format msgid "%s: not removing directory %s (would remove home of user %s)\n" msgstr "" "%s : r�pertoire %s non enlev� (cela enl�verait le r�pertoire personnel de " "%s)\n" -#: src/userdel.c:798 +#: src/userdel.c:828 #, c-format msgid "%s: error removing directory %s\n" msgstr "%s : erreur lors de l'effacement du r�pertoire %s\n" -#: src/usermod.c:316 +#: src/usermod.c:315 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n" msgstr "\t\t[-d home [-m]] [-s shell] [-c commentaire] [-l nouveau_nom]\n" -#: src/usermod.c:322 +#: src/usermod.c:321 msgid "[-A {DEFAULT|program},... ] " msgstr "[-A {D�FAUT|programme},... ] " -#: src/usermod.c:478 +#: src/usermod.c:477 #, c-format msgid "%s: out of memory in update_group\n" msgstr "%s : plus de m�moire pour update_group\n" -#: src/usermod.c:601 +#: src/usermod.c:600 #, c-format msgid "%s: out of memory in update_gshadow\n" msgstr "%s : plus de m�moire pour update_gshadow\n" -#: src/usermod.c:1139 +#: src/usermod.c:1138 #, c-format msgid "%s: no flags given\n" msgstr "%s : aucun drapeau donn�\n" -#: src/usermod.c:1146 +#: src/usermod.c:1145 #, c-format msgid "%s: shadow passwords required for -e and -f\n" msgstr "%s : mots de passe shadow n�cessaires pour -e ou -f\n" -#: src/usermod.c:1167 +#: src/usermod.c:1166 #, c-format msgid "%s: uid %ld is not unique\n" msgstr "%s : l'uid %ld n'est pas unique\n" -#: src/usermod.c:1315 +#: src/usermod.c:1314 #, c-format msgid "%s: error deleting authentication method\n" msgstr "%s : erreur lors de l'effacement de la m�thode d'authentification\n" -#: src/usermod.c:1335 +#: src/usermod.c:1334 #, c-format msgid "%s: error changing authentication method\n" msgstr "%s : erreur lors du changement de la m�thode d'authentification\n" -#: src/usermod.c:1352 +#: src/usermod.c:1351 #, c-format msgid "%s: error changing password entry\n" msgstr "%s : erreur lors du changement de l'entr�e dans /etc/passwd\n" -#: src/usermod.c:1358 +#: src/usermod.c:1357 #, c-format msgid "%s: error removing password entry\n" msgstr "%s : erreur lors de l'effacement du mot de passe\n" -#: src/usermod.c:1366 +#: src/usermod.c:1365 #, c-format msgid "%s: error adding password dbm entry\n" msgstr "" -#: src/usermod.c:1373 +#: src/usermod.c:1372 #, c-format msgid "%s: error removing passwd dbm entry\n" msgstr "" -#: src/usermod.c:1390 +#: src/usermod.c:1389 #, c-format msgid "%s: error removing shadow password entry\n" msgstr "" -#: src/usermod.c:1405 +#: src/usermod.c:1404 #, c-format msgid "%s: error removing shadow passwd dbm entry\n" msgstr "" -#: src/usermod.c:1436 +#: src/usermod.c:1435 #, c-format msgid "%s: directory %s exists\n" msgstr "%s : le r�pertoire %s existe\n" -#: src/usermod.c:1443 +#: src/usermod.c:1442 #, c-format msgid "%s: can't create %s\n" msgstr "%s : impossible de cr�er %s\n" -#: src/usermod.c:1449 +#: src/usermod.c:1448 #, c-format msgid "%s: can't chown %s\n" msgstr "%s : impossible de changer le propri�taire de %s\n" -#: src/usermod.c:1465 +#: src/usermod.c:1464 #, c-format msgid "%s: cannot rename directory %s to %s\n" msgstr "%s : impossible de renommer le r�pertoire %s en %s\n" #. better leave it alone -#: src/usermod.c:1562 +#: src/usermod.c:1561 #, c-format msgid "%s: warning: %s not owned by %s\n" msgstr "%s : avertissement : %s n'appartient pas � %s\n" -#: src/usermod.c:1568 +#: src/usermod.c:1567 msgid "failed to change mailbox owner" msgstr "�chec du changement de propri�taire de la mailbox" -#: src/usermod.c:1575 +#: src/usermod.c:1574 msgid "failed to rename mailbox" msgstr "�chec du renommage de la mailbox" -#: src/vipw.c:103 +#: src/vipw.c:102 #, c-format msgid "" "\n" @@ -2383,20 +2388,20 @@ msgstr "" "\n" "%s : %s est inchang�\n" -#: src/vipw.c:128 +#: src/vipw.c:127 msgid "Couldn't lock file" msgstr "Impossible de v�rouiller le fichier" -#: src/vipw.c:135 +#: src/vipw.c:134 msgid "Couldn't make backup" msgstr "Impossible de faire une sauvegarde" -#: src/vipw.c:174 +#: src/vipw.c:187 #, c-format msgid "%s: can't restore %s: %s (your changes are in %s)\n" msgstr "%s : impossible de restaurer %s : %s (vos changements sont dans %s)\n" -#: src/vipw.c:213 +#: src/vipw.c:226 msgid "" "Usage:\n" "`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n" diff --git a/po/pl.gmo b/po/pl.gmo index 98b3c7f4..5e395ff7 100644 Binary files a/po/pl.gmo and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index 3719a5de..f0f89c04 100644 --- a/po/pl.po +++ b/po/pl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow-981228\n" -"POT-Creation-Date: 1999-08-27 21:03+0200\n" +"POT-Creation-Date: 2000-08-26 20:28+0200\n" "PO-Revision-Date: 1999-03-02 22:29+01:00\n" "Last-Translator: Arkadiusz Mi�kiewicz <misiek@misiek.eu.org>\n" "Language-Team: PL <pl@li.org>\n" @@ -110,7 +110,7 @@ msgstr "Nie masz poczty." msgid "You have mail." msgstr "Masz poczt�." -#: libmisc/obscure.c:281 src/passwd.c:311 +#: libmisc/obscure.c:281 src/passwd.c:309 #, c-format msgid "Bad password: %s. " msgstr "Z�e has�o: %s. " @@ -180,25 +180,25 @@ msgstr "malloc(%d) nie powiod msgid "Dialup Password: " msgstr "Has�o dost�pu modemowego: " -#: lib/getdef.c:249 +#: lib/getdef.c:253 msgid "Could not allocate space for config info.\n" msgstr "Nie mog� przydzieli� miejsca dla informacji o konfiguracji.\n" #. #. * Item was never found. #. -#: lib/getdef.c:303 +#: lib/getdef.c:307 #, c-format msgid "configuration error - unknown item '%s' (notify administrator)\n" msgstr "" "b��d w konfiguracji - nieznana pozycja '%s' (powiadom administratora)\n" -#: lib/getdef.c:390 +#: lib/getdef.c:394 #, c-format msgid "error - lookup '%s' failed\n" msgstr "b��d - wyszukiwanie '%s' niepowiod�o si�\n" -#: lib/getdef.c:398 +#: lib/getdef.c:402 #, c-format msgid "%s not found\n" msgstr "%s nie znaleziony\n" @@ -207,7 +207,7 @@ msgstr "%s nie znaleziony\n" #. * get the password from her, and set the salt for #. * the decryption from the group file. #. -#: lib/pwauth.c:54 src/newgrp.c:297 +#: lib/pwauth.c:54 src/newgrp.c:305 msgid "Password: " msgstr "Has�o: " @@ -343,82 +343,82 @@ msgstr "Has msgid "Account Expires:\t" msgstr "Has�o traci wa�no��:\t" -#: src/chage.c:468 +#: src/chage.c:471 #, c-format msgid "%s: do not include \"l\" with other flags\n" msgstr "%s: nie ��cz \"l\" z innymi flagami\n" -#: src/chage.c:480 src/chage.c:592 src/login.c:529 +#: src/chage.c:483 src/chage.c:595 src/login.c:529 #, c-format msgid "%s: permission denied\n" msgstr "%s: odmowa dost�pu\n" -#: src/chage.c:492 src/chpasswd.c:122 +#: src/chage.c:495 src/chpasswd.c:120 #, c-format msgid "%s: can't lock password file\n" msgstr "%s: nie mog� zablokowa� pliku z has�ami\n" -#: src/chage.c:498 src/chpasswd.c:126 +#: src/chage.c:501 src/chpasswd.c:124 #, c-format msgid "%s: can't open password file\n" msgstr "%s: nie mog� otworzy� pliku z has�ami\n" -#: src/chage.c:505 +#: src/chage.c:508 #, c-format msgid "%s: unknown user: %s\n" msgstr "%s: nieznany u�ytkownik: %s\n" -#: src/chage.c:524 +#: src/chage.c:527 #, c-format msgid "%s: can't lock shadow password file\n" msgstr "%s: nie mog� zablokowa� pliku z ukrytymi has�ami\n" -#: src/chage.c:531 +#: src/chage.c:534 #, c-format msgid "%s: can't open shadow password file\n" msgstr "%s: nie mog� otworzy� pliku z ukrytymi has�ami\n" -#: src/chage.c:613 +#: src/chage.c:616 #, c-format msgid "Changing the aging information for %s\n" msgstr "Zmieniam informacj� o u�ytkowniku %s\n" -#: src/chage.c:615 +#: src/chage.c:618 #, c-format msgid "%s: error changing fields\n" msgstr "%s: b��d podczas zmieniania p�l\n" -#: src/chage.c:642 src/chage.c:705 src/pwunconv.c:184 +#: src/chage.c:645 src/chage.c:708 src/pwunconv.c:183 #, c-format msgid "%s: can't update password file\n" msgstr "%s: nie mog� zaktualizowa� pliku z has�ami\n" -#: src/chage.c:672 src/pwunconv.c:179 +#: src/chage.c:675 src/pwunconv.c:178 #, c-format msgid "%s: can't update shadow password file\n" msgstr "%s: nie mog� zaktualizowa� pliku z ukrytymi has�ami\n" -#: src/chage.c:721 src/chage.c:736 src/chfn.c:572 src/chsh.c:411 -#: src/passwd.c:827 src/passwd.c:928 +#: src/chage.c:724 src/chage.c:739 src/chfn.c:571 src/chsh.c:410 +#: src/passwd.c:825 src/passwd.c:926 msgid "Error updating the DBM password entry.\n" msgstr "B��d podczas aktualizacki bazy hase� DBM.\n" -#: src/chage.c:753 +#: src/chage.c:756 #, c-format msgid "%s: can't rewrite shadow password file\n" msgstr "%s: nie mog� przepisa� pliku z ukrytymi has�ami\n" -#: src/chage.c:767 +#: src/chage.c:770 #, c-format msgid "%s: can't rewrite password file\n" msgstr "%s: nie mog� przepisa� pliku z has�ami\n" -#: src/chage.c:816 +#: src/chage.c:821 #, c-format msgid "%s: no aging information present\n" msgstr "%s: brak informacji\n" -#: src/chfn.c:108 +#: src/chfn.c:107 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ]\n" @@ -427,7 +427,7 @@ msgstr "" "U�ycie: %s [ -f imi�_nazwisko ] [ -r nr_pokoju ] [ -w tel_praca ]\n" "\t[ -h tel_dom ] [ -o inne ] [ u�ytkownik ]\n" -#: src/chfn.c:112 +#: src/chfn.c:111 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]\n" @@ -435,361 +435,361 @@ msgstr "" "U�ycie: %s [ -f imi�_nazwisko ] [ -r nr_pokoju ] [ -w tel_praca ] [ -h " "tel_dom ]\n" -#: src/chfn.c:164 src/chsh.c:120 +#: src/chfn.c:163 src/chsh.c:119 msgid "Enter the new value, or press return for the default\n" msgstr "Wpisz now� warto�� lub wci�nij return by przyj�c warto�� standardow�\n" -#: src/chfn.c:167 +#: src/chfn.c:166 msgid "Full Name" msgstr "Imi� i nazwisko" -#: src/chfn.c:169 +#: src/chfn.c:168 #, c-format msgid "\tFull Name: %s\n" msgstr "\tImi� i nazwisko: %s\n" -#: src/chfn.c:172 +#: src/chfn.c:171 msgid "Room Number" msgstr "Numer pokoju" -#: src/chfn.c:174 +#: src/chfn.c:173 #, c-format msgid "\tRoom Number: %s\n" msgstr "\tNumer pokoju: %s\n" -#: src/chfn.c:177 +#: src/chfn.c:176 msgid "Work Phone" msgstr "Telefon do pracy" -#: src/chfn.c:179 +#: src/chfn.c:178 #, c-format msgid "\tWork Phone: %s\n" msgstr "\tTelefon do pracy: %s\n" -#: src/chfn.c:182 +#: src/chfn.c:181 msgid "Home Phone" msgstr "Telefon domowy" -#: src/chfn.c:184 +#: src/chfn.c:183 #, c-format msgid "\tHome Phone: %s\n" msgstr "\tTelefon domowy: %s\n" -#: src/chfn.c:187 +#: src/chfn.c:186 msgid "Other" msgstr "Inne" -#: src/chfn.c:300 src/chfn.c:308 src/chfn.c:316 src/chfn.c:324 src/chfn.c:332 -#: src/chfn.c:393 src/passwd.c:1228 +#: src/chfn.c:299 src/chfn.c:307 src/chfn.c:315 src/chfn.c:323 src/chfn.c:331 +#: src/chfn.c:392 src/passwd.c:1226 #, c-format msgid "%s: Permission denied.\n" msgstr "%s: Brak praw dost�pu.\n" -#: src/chfn.c:353 src/chsh.c:226 src/passwd.c:1279 +#: src/chfn.c:352 src/chsh.c:225 src/passwd.c:1277 #, c-format msgid "%s: Unknown user %s\n" msgstr "%s: Nieznany u�ytkownik %s\n" -#: src/chfn.c:359 src/chsh.c:234 src/passwd.c:1209 +#: src/chfn.c:358 src/chsh.c:233 src/passwd.c:1207 #, c-format msgid "%s: Cannot determine your user name.\n" msgstr "%s: Nie mog� ustali� twojej nazwy u�ytkownika.\n" -#: src/chfn.c:375 src/chsh.c:252 +#: src/chfn.c:374 src/chsh.c:251 #, c-format msgid "%s: cannot change user `%s' on NIS client.\n" msgstr "%s: nie mog� zmieni� u�ytkownika `%s' na kliencie NIS.\n" -#: src/chfn.c:380 src/chsh.c:259 +#: src/chfn.c:379 src/chsh.c:258 #, c-format msgid "%s: `%s' is the NIS master for this client.\n" msgstr "%s: `%s' jest nadrz�dnym serwerm NIS dla tego klienta.\n" -#: src/chfn.c:455 +#: src/chfn.c:454 #, c-format msgid "Changing the user information for %s\n" msgstr "Zmieniam informacj� o u�ytkowniku %s\n" -#: src/chfn.c:464 +#: src/chfn.c:463 #, c-format msgid "%s: invalid name: \"%s\"\n" msgstr "%s: nieprawid�owa nazwa: \"%s\"\n" -#: src/chfn.c:469 +#: src/chfn.c:468 #, c-format msgid "%s: invalid room number: \"%s\"\n" msgstr "%s: nieprawid�owy numer pokoju: \"%s\"\n" -#: src/chfn.c:474 +#: src/chfn.c:473 #, c-format msgid "%s: invalid work phone: \"%s\"\n" msgstr "%s: nieprawid�owy numer telefonu do pracy: \"%s\"\n" -#: src/chfn.c:479 +#: src/chfn.c:478 #, c-format msgid "%s: invalid home phone: \"%s\"\n" msgstr "%s: nieprawid�owy numer telefonu domowego: \"%s\"\n" -#: src/chfn.c:484 +#: src/chfn.c:483 #, c-format msgid "%s: \"%s\" contains illegal characters\n" msgstr "%s: \"%s\" zawiera nieprawid�owe znaki\n" -#: src/chfn.c:496 +#: src/chfn.c:495 #, c-format msgid "%s: fields too long\n" msgstr "%s: pola zbyt d�ugie\n" -#: src/chfn.c:511 src/chsh.c:349 src/gpasswd.c:583 src/passwd.c:1390 +#: src/chfn.c:510 src/chsh.c:348 src/gpasswd.c:582 src/passwd.c:1388 msgid "Cannot change ID to root.\n" msgstr "Nie mog� zmieni� ID na root.\n" -#: src/chfn.c:524 src/chsh.c:363 src/passwd.c:737 src/passwd.c:882 +#: src/chfn.c:523 src/chsh.c:362 src/passwd.c:735 src/passwd.c:880 msgid "Cannot lock the password file; try again later.\n" msgstr "Nie mog� zablokowa� pliku z has�ami; spr�buj p�niej.\n" -#: src/chfn.c:530 src/chsh.c:369 src/passwd.c:742 src/passwd.c:887 +#: src/chfn.c:529 src/chsh.c:368 src/passwd.c:740 src/passwd.c:885 msgid "Cannot open the password file.\n" msgstr "Nie mog� otworzy� pliku z has�ami.\n" -#: src/chfn.c:547 src/chsh.c:384 src/passwd.c:748 src/usermod.c:1272 +#: src/chfn.c:546 src/chsh.c:383 src/passwd.c:746 src/usermod.c:1271 #, c-format msgid "%s: %s not found in /etc/passwd\n" msgstr "%s: %s nie znaleziony w /etc/passwd\n" -#: src/chfn.c:564 src/chsh.c:403 src/passwd.c:821 src/passwd.c:922 -#: src/passwd.c:962 +#: src/chfn.c:563 src/chsh.c:402 src/passwd.c:819 src/passwd.c:920 +#: src/passwd.c:960 msgid "Error updating the password entry.\n" msgstr "B��d podczas aktualizacji wpisu do bazy hase�.\n" -#: src/chfn.c:587 src/chsh.c:426 src/passwd.c:834 src/passwd.c:935 +#: src/chfn.c:586 src/chsh.c:425 src/passwd.c:832 src/passwd.c:933 msgid "Cannot commit password file changes.\n" msgstr "Wprowadzenie zmian do pliku passwd jest niemo�liwe.\n" -#: src/chfn.c:594 src/chsh.c:433 +#: src/chfn.c:593 src/chsh.c:432 msgid "Cannot unlock the password file.\n" msgstr "Nie mog� usun�c blokady z pliku z has�ami.\n" -#: src/chpasswd.c:78 +#: src/chpasswd.c:76 #, c-format msgid "usage: %s [-e]\n" msgstr "u�ycie: %s [-e]\n" -#: src/chpasswd.c:134 src/pwconv.c:105 +#: src/chpasswd.c:132 src/pwconv.c:104 #, c-format msgid "%s: can't lock shadow file\n" msgstr "%s: nie mog� zablokowa� pliku z ukrytymi has�ami\n" -#: src/chpasswd.c:139 src/gpasswd.c:609 src/pwconv.c:110 src/pwunconv.c:119 -#: src/pwunconv.c:124 +#: src/chpasswd.c:137 src/gpasswd.c:608 src/pwconv.c:109 src/pwunconv.c:118 +#: src/pwunconv.c:123 #, c-format msgid "%s: can't open shadow file\n" msgstr "%s: nie mog� otworzy� pliku z ukrytymi has�ami\n" -#: src/chpasswd.c:161 src/newusers.c:418 +#: src/chpasswd.c:159 src/newusers.c:415 #, c-format msgid "%s: line %d: line too long\n" msgstr "%s: linia %d: linia zbyt d�uga\n" -#: src/chpasswd.c:181 +#: src/chpasswd.c:179 #, c-format msgid "%s: line %d: missing new password\n" msgstr "%s: linia %d: brakuje nowego has�a\n" -#: src/chpasswd.c:197 +#: src/chpasswd.c:195 #, c-format msgid "%s: line %d: unknown user %s\n" msgstr "%s: linia %d: nieznany u�ytkownik %s\n" -#: src/chpasswd.c:249 +#: src/chpasswd.c:247 #, c-format msgid "%s: line %d: cannot update password entry\n" msgstr "%s: linia %d: nie mog� zaktualizowa� wpisu do bazy hase�\n" -#: src/chpasswd.c:265 src/newusers.c:538 +#: src/chpasswd.c:263 src/newusers.c:535 #, c-format msgid "%s: error detected, changes ignored\n" msgstr "%s: wykryto b��d, zignorowano modyfikacje\n" -#: src/chpasswd.c:276 +#: src/chpasswd.c:274 #, c-format msgid "%s: error updating shadow file\n" msgstr "%s: b��d podczas aktualizacji pliku z ukrytymi has�ami\n" -#: src/chpasswd.c:284 +#: src/chpasswd.c:282 #, c-format msgid "%s: error updating password file\n" msgstr "%s: b��d podczas aktualizacji pliku z has�ami\n" -#: src/chsh.c:106 +#: src/chsh.c:105 #, c-format msgid "Usage: %s [ -s shell ] [ name ]\n" msgstr "U�ycie: %s [ -s pow�oka ] [ nazwa ]\n" -#: src/chsh.c:121 +#: src/chsh.c:120 msgid "Login Shell" msgstr "Pow�oka logowania" -#: src/chsh.c:275 src/chsh.c:288 +#: src/chsh.c:274 src/chsh.c:287 #, c-format msgid "You may not change the shell for %s.\n" msgstr "Nie mo�esz zmienia� pow�oki dla %s.\n" -#: src/chsh.c:317 +#: src/chsh.c:316 #, c-format msgid "Changing the login shell for %s\n" msgstr "Zmieniam pow�ok� logowania dla %s\n" -#: src/chsh.c:329 +#: src/chsh.c:328 #, c-format msgid "%s: Invalid entry: %s\n" msgstr "%s: Nieprawid�owy wpis: %s\n" -#: src/chsh.c:334 +#: src/chsh.c:333 #, c-format msgid "%s is an invalid shell.\n" msgstr "%s jest nieprawid�ow� pow�ok�.\n" -#: src/dpasswd.c:71 +#: src/dpasswd.c:69 #, c-format msgid "Usage: %s [ -(a|d) ] shell\n" msgstr "U�ycie: %s [ -(a|d) ] pow�oka\n" -#: src/dpasswd.c:136 +#: src/dpasswd.c:134 msgid "Shell password: " msgstr "Has�o pow�oki: " -#: src/dpasswd.c:142 +#: src/dpasswd.c:140 msgid "re-enter Shell password: " msgstr "Wpisz ponownie has�o pow�oki: " -#: src/dpasswd.c:149 +#: src/dpasswd.c:147 #, c-format msgid "%s: Passwords do not match, try again.\n" msgstr "%s: Has�a nie pasuj�, spr�buj ponownie.\n" -#: src/dpasswd.c:169 +#: src/dpasswd.c:167 #, c-format msgid "%s: can't create %s" msgstr "%s: nie mog� utworzy� %s" -#: src/dpasswd.c:174 +#: src/dpasswd.c:172 #, c-format msgid "%s: can't open %s" msgstr "%s: nie mog� otworzy� %s" -#: src/dpasswd.c:202 +#: src/dpasswd.c:200 #, c-format msgid "%s: Shell %s not found.\n" msgstr "%s: Pow�oka %s nie znaleziona.\n" -#: src/expiry.c:85 +#: src/expiry.c:84 msgid "Usage: expiry { -f | -c }\n" msgstr "U�ycie: expiry { -f | -c }\n" -#: src/expiry.c:138 +#: src/expiry.c:137 #, c-format msgid "%s: WARNING! Must be set-UID root!\n" msgstr "%s: OSTRZE�ENIE! Program musi posiada� SUID root!\n" -#: src/expiry.c:149 +#: src/expiry.c:148 #, c-format msgid "%s: unknown user\n" msgstr "%s: nieznany u�ytkownik\n" -#: src/faillog.c:80 +#: src/faillog.c:79 #, c-format msgid "usage: %s [-a|-u user] [-m max] [-r] [-t days] [-l locksecs]\n" msgstr "u�ycie: %s [-a|-u u�ytkownik] [-m maks] [-r] [-t dni] [-l bloksek]\n" -#: src/faillog.c:135 src/lastlog.c:95 +#: src/faillog.c:134 src/lastlog.c:94 #, c-format msgid "Unknown User: %s\n" msgstr "Nieznany u�ytkownik: %s\n" -#: src/faillog.c:216 +#: src/faillog.c:215 msgid "Username Failures Maximum Latest\n" msgstr "U�ytkownik Niepowodzenia Maksymalnie Ostatnio\n" -#: src/faillog.c:233 +#: src/faillog.c:232 #, c-format msgid " %s on %s" msgstr " %s na %s" -#: src/faillog.c:237 +#: src/faillog.c:236 #, c-format msgid " [%lds left]" msgstr " [%lds pozosta�o]" -#: src/faillog.c:240 +#: src/faillog.c:239 #, c-format msgid " [%lds lock]" msgstr " [%lds blokada]" -#: src/gpasswd.c:91 +#: src/gpasswd.c:89 #, c-format msgid "usage: %s [-r|-R] group\n" msgstr "u�ycie: %s [-r|-R] grupa\n" -#: src/gpasswd.c:92 +#: src/gpasswd.c:90 #, c-format msgid " %s [-a user] group\n" msgstr " %s [-a u�ytkownik] grupa\n" -#: src/gpasswd.c:93 +#: src/gpasswd.c:91 #, c-format msgid " %s [-d user] group\n" msgstr " %s [-d u�ytkownik] grupa\n" -#: src/gpasswd.c:95 +#: src/gpasswd.c:93 #, c-format msgid " %s [-A user,...] [-M user,...] group\n" msgstr " %s [-A u�ytkownik,...] [-M u�ytkownik,...] grupa\n" -#: src/gpasswd.c:98 +#: src/gpasswd.c:96 #, c-format msgid " %s [-M user,...] group\n" msgstr " %s [-M u�ytkownik,...] grupa\n" -#: src/gpasswd.c:162 src/gpasswd.c:247 +#: src/gpasswd.c:160 src/gpasswd.c:245 #, c-format msgid "%s: unknown user %s\n" msgstr "%s: nieznany u�ytkownik %s\n" -#: src/gpasswd.c:174 +#: src/gpasswd.c:172 msgid "Permission denied.\n" msgstr "Dost�p zabroniony.\n" -#: src/gpasswd.c:259 +#: src/gpasswd.c:257 #, c-format msgid "%s: shadow group passwords required for -A\n" msgstr "%s: plik z ukrytymi has�ami grup wymagany dla -A\n" -#: src/gpasswd.c:310 +#: src/gpasswd.c:308 msgid "Who are you?\n" msgstr "Kim jeste�?\n" -#: src/gpasswd.c:330 src/newgrp.c:247 +#: src/gpasswd.c:328 src/newgrp.c:251 #, c-format msgid "unknown group: %s\n" msgstr "nieznana grupa: %s\n" -#: src/gpasswd.c:438 +#: src/gpasswd.c:436 #, c-format msgid "Adding user %s to group %s\n" msgstr "Dodaj� nowego u�ytkownika %s do grupy %s\n" -#: src/gpasswd.c:455 +#: src/gpasswd.c:453 #, c-format msgid "Removing user %s from group %s\n" msgstr "Usuwam u�ytkownika %s z grupy %s\n" -#: src/gpasswd.c:468 +#: src/gpasswd.c:466 #, c-format msgid "%s: unknown member %s\n" msgstr "%s: nieznany cz�onek %s\n" -#: src/gpasswd.c:515 +#: src/gpasswd.c:513 #, c-format msgid "%s: Not a tty\n" msgstr "%s: To nie tty\n" @@ -801,105 +801,105 @@ msgstr "%s: To nie tty\n" #. * the old password since the invoker is either the group #. * owner, or root. #. -#: src/gpasswd.c:537 +#: src/gpasswd.c:535 #, c-format msgid "Changing the password for group %s\n" msgstr "Zmieniam has�o dla grupy %s\n" -#: src/gpasswd.c:540 +#: src/gpasswd.c:538 msgid "New Password: " msgstr "Nowe has�o: " -#: src/gpasswd.c:545 src/passwd.c:424 +#: src/gpasswd.c:543 src/passwd.c:422 msgid "Re-enter new password: " msgstr "Wpisz has�o ponownie: " -#: src/gpasswd.c:557 +#: src/gpasswd.c:555 msgid "They don't match; try again" msgstr "Nie pasuj�; spr�buj ponownie" -#: src/gpasswd.c:561 +#: src/gpasswd.c:559 #, c-format msgid "%s: Try again later\n" msgstr "%s: Spr�buj ponownie p�niej\n" -#: src/gpasswd.c:591 +#: src/gpasswd.c:590 #, c-format msgid "%s: can't get lock\n" msgstr "%s: nie mog� zablokowa�\n" -#: src/gpasswd.c:597 +#: src/gpasswd.c:596 #, c-format msgid "%s: can't get shadow lock\n" msgstr "%s: nie mog� zablokowa� pliku z ukrytymi has�ami\n" -#: src/gpasswd.c:603 +#: src/gpasswd.c:602 #, c-format msgid "%s: can't open file\n" msgstr "%s: nie mog� otworzy� pliku\n" -#: src/gpasswd.c:615 +#: src/gpasswd.c:614 #, c-format msgid "%s: can't update entry\n" msgstr "%s: nie mog� zaktualizowa� wpisu\n" -#: src/gpasswd.c:621 +#: src/gpasswd.c:620 #, c-format msgid "%s: can't update shadow entry\n" msgstr "%s: nie mog� zaktualizowa� wpisu do pliku z ukrytymi has�ami\n" -#: src/gpasswd.c:627 +#: src/gpasswd.c:626 #, c-format msgid "%s: can't re-write file\n" msgstr "%s: nie mog� przepisa� pliku\n" -#: src/gpasswd.c:633 +#: src/gpasswd.c:632 #, c-format msgid "%s: can't re-write shadow file\n" msgstr "%s: nie mog� przepisa� pliku z ukrytymi has�ami\n" -#: src/gpasswd.c:641 +#: src/gpasswd.c:640 #, c-format msgid "%s: can't unlock file\n" msgstr "%s: nie mog� usun�c blokady z pliku\n" -#: src/gpasswd.c:646 +#: src/gpasswd.c:645 #, c-format msgid "%s: can't update DBM files\n" msgstr "%s: nie mog� zaktualizwoa� plik�w DBM\n" -#: src/gpasswd.c:653 +#: src/gpasswd.c:652 #, c-format msgid "%s: can't update DBM shadow files\n" msgstr "%s: nie mog� zaktualizowa� pliku DBM z ukrytymi has�ami\n" -#: src/groupadd.c:106 +#: src/groupadd.c:105 msgid "usage: groupadd [-g gid [-o]] group\n" msgstr "u�ycie: groupadd [-g gid [-o]] grupa\n" -#: src/groupadd.c:174 src/groupadd.c:197 src/groupmod.c:184 src/groupmod.c:231 -#: src/useradd.c:932 src/usermod.c:513 src/usermod.c:649 +#: src/groupadd.c:173 src/groupadd.c:196 src/groupmod.c:183 src/groupmod.c:230 +#: src/useradd.c:931 src/usermod.c:512 src/usermod.c:648 #, c-format msgid "%s: error adding new group entry\n" msgstr "%s: b��d podczas dodawania nowej grupy\n" -#: src/groupadd.c:184 src/groupadd.c:207 src/groupmod.c:200 src/useradd.c:943 -#: src/usermod.c:525 src/usermod.c:661 +#: src/groupadd.c:183 src/groupadd.c:206 src/groupmod.c:199 src/useradd.c:942 +#: src/usermod.c:524 src/usermod.c:660 #, c-format msgid "%s: cannot add new dbm group entry\n" msgstr "%s: nie mog� doda� nowego wpisu do bazy dbm grup\n" -#: src/groupadd.c:259 src/useradd.c:997 +#: src/groupadd.c:258 src/useradd.c:996 #, c-format msgid "%s: name %s is not unique\n" msgstr "%s: nazwa %s nie jest niepowtarzalny\n" -#: src/groupadd.c:274 +#: src/groupadd.c:273 #, c-format msgid "%s: gid %ld is not unique\n" msgstr "%s: gid %ld nie jest niepowtarzalny\n" -#: src/groupadd.c:298 +#: src/groupadd.c:297 #, c-format msgid "%s: can't get unique gid\n" msgstr "%s: nie mog� uzyska� niepowtarzalnego gid\n" @@ -907,78 +907,78 @@ msgstr "%s: nie mog #. #. * All invalid group names land here. #. -#: src/groupadd.c:322 src/groupmod.c:342 +#: src/groupadd.c:321 src/groupmod.c:341 #, c-format msgid "%s: %s is a not a valid group name\n" msgstr "%s: %s: nie jest prawid�ow� nazw� grupy\n" -#: src/groupadd.c:351 src/groupmod.c:368 +#: src/groupadd.c:350 src/groupmod.c:367 #, c-format msgid "%s: invalid group %s\n" msgstr "%s: nieprawid�owa grupa %s\n" -#: src/groupadd.c:368 src/useradd.c:1273 +#: src/groupadd.c:367 src/useradd.c:1272 #, c-format msgid "%s: -O requires NAME=VALUE\n" msgstr "%s: -O wymaga ZMIENNA=WARTO��\n" -#: src/groupadd.c:413 src/groupdel.c:168 src/groupmod.c:404 src/useradd.c:1382 -#: src/userdel.c:273 src/usermod.c:537 +#: src/groupadd.c:412 src/groupdel.c:167 src/groupmod.c:403 src/useradd.c:1381 +#: src/userdel.c:303 src/usermod.c:536 #, c-format msgid "%s: cannot rewrite group file\n" msgstr "%s: nie mog� przepisa� pliku z grupami\n" -#: src/groupadd.c:419 src/groupdel.c:174 src/groupmod.c:410 src/useradd.c:1390 -#: src/userdel.c:279 src/usermod.c:674 +#: src/groupadd.c:418 src/groupdel.c:173 src/groupmod.c:409 src/useradd.c:1389 +#: src/userdel.c:309 src/usermod.c:673 #, c-format msgid "%s: cannot rewrite shadow group file\n" msgstr "%s: nie mog� przepisa� pliku z ukrytymi grupami\n" -#: src/groupadd.c:438 src/groupdel.c:193 src/groupmod.c:429 src/userdel.c:359 +#: src/groupadd.c:437 src/groupdel.c:192 src/groupmod.c:428 src/userdel.c:389 #, c-format msgid "%s: unable to lock group file\n" msgstr "%s: nie mog� zablokowa� pliku z grupami\n" -#: src/groupadd.c:442 src/groupdel.c:197 src/groupmod.c:433 +#: src/groupadd.c:441 src/groupdel.c:196 src/groupmod.c:432 #, c-format msgid "%s: unable to open group file\n" msgstr "%s: nie mog� otworzy� pliku z grupami\n" -#: src/groupadd.c:447 src/groupdel.c:202 src/groupmod.c:438 src/userdel.c:368 +#: src/groupadd.c:446 src/groupdel.c:201 src/groupmod.c:437 src/userdel.c:398 #, c-format msgid "%s: unable to lock shadow group file\n" msgstr "%s: nie mog� zablokowa� pliku z ukrytymi grupami\n" -#: src/groupadd.c:452 src/groupdel.c:207 src/groupmod.c:443 +#: src/groupadd.c:451 src/groupdel.c:206 src/groupmod.c:442 #, c-format msgid "%s: unable to open shadow group file\n" msgstr "%s: nie mog� otworzy� pliku z ukrytymi grupami\n" -#: src/groupadd.c:519 +#: src/groupadd.c:518 #, c-format msgid "%s: group %s exists\n" msgstr "%s: grupa %s istnieje\n" -#: src/groupdel.c:87 +#: src/groupdel.c:86 msgid "usage: groupdel group\n" msgstr "u�ycie: groupdel grupa\n" -#: src/groupdel.c:105 src/groupmod.c:188 src/groupmod.c:235 +#: src/groupdel.c:104 src/groupmod.c:187 src/groupmod.c:234 #, c-format msgid "%s: error removing group entry\n" msgstr "%s: b��d podczas usuwania grupy\n" -#: src/groupdel.c:117 src/groupmod.c:207 +#: src/groupdel.c:116 src/groupmod.c:206 #, c-format msgid "%s: error removing group dbm entry\n" msgstr "%s: b��d podczas usuwania wpisu dbm o grupie\n" -#: src/groupdel.c:132 +#: src/groupdel.c:131 #, c-format msgid "%s: error removing shadow group entry\n" msgstr "%s: b��d podczas usuwania wpisu o ukrytej grupie\n" -#: src/groupdel.c:145 src/groupmod.c:253 +#: src/groupdel.c:144 src/groupmod.c:252 #, c-format msgid "%s: error removing shadow group dbm entry\n" msgstr "%s: b��d podczas usuwania wpisu dbm z pliku ukrytych grup\n" @@ -986,76 +986,76 @@ msgstr "%s: b #. #. * Can't remove the group. #. -#: src/groupdel.c:249 +#: src/groupdel.c:248 #, c-format msgid "%s: cannot remove user's primary group.\n" msgstr "%s: nie mog� usun�� podstawowej grupy u�ytkownik�w.\n" -#: src/groupdel.c:306 src/groupmod.c:502 +#: src/groupdel.c:305 src/groupmod.c:501 #, c-format msgid "%s: group %s does not exist\n" msgstr "%s: grupa %s nie isnieje\n" -#: src/groupdel.c:320 src/groupmod.c:518 +#: src/groupdel.c:319 src/groupmod.c:517 #, c-format msgid "%s: group %s is a NIS group\n" msgstr "%s: grupa %s jest grup� NIS\n" -#: src/groupdel.c:326 src/groupmod.c:524 src/userdel.c:731 src/usermod.c:990 +#: src/groupdel.c:325 src/groupmod.c:523 src/userdel.c:761 src/usermod.c:989 #, c-format msgid "%s: %s is the NIS master\n" msgstr "%s: %s jest g��wnym serwerem NIS\n" -#: src/groupmod.c:106 +#: src/groupmod.c:105 msgid "usage: groupmod [-g gid [-o]] [-n name] group\n" msgstr "u�ycie: groupmod [-g gid [-o]] [-n nazwa] grupa\n" -#: src/groupmod.c:166 +#: src/groupmod.c:165 #, fuzzy, c-format msgid "%s: %s not found in /etc/group\n" msgstr "%s: %s nie znaleziony w /etc/passwd\n" -#: src/groupmod.c:247 +#: src/groupmod.c:246 #, c-format msgid "%s: cannot add new dbm shadow group entry\n" msgstr "%s: nie mog� doda� nowego wpisu dbm do pliku z ukrytymi grupami\n" -#: src/groupmod.c:300 +#: src/groupmod.c:299 #, c-format msgid "%s: %ld is not a unique gid\n" msgstr "%s: %ld nie jest niepowtarzalnym gid\n" -#: src/groupmod.c:331 +#: src/groupmod.c:330 #, c-format msgid "%s: %s is not a unique name\n" msgstr "%s: %s nie jest niepowtarzaln� nazw�\n" -#: src/groups.c:63 +#: src/groups.c:62 #, c-format msgid "unknown user %s\n" msgstr "nieznany u�ytkownik %s\n" -#: src/grpck.c:99 +#: src/grpck.c:98 #, c-format msgid "Usage: %s [ -r ] [ group [ gshadow ] ]\n" msgstr "U�ycie: %s [ -r ] [ grupa [ gshadow ] ]\n" -#: src/grpck.c:101 +#: src/grpck.c:100 #, c-format msgid "Usage: %s [ -r ] [ group ]\n" msgstr "U�ycie: %s [ -r ] [ grupa ]\n" -#: src/grpck.c:120 src/pwck.c:120 +#: src/grpck.c:119 src/pwck.c:119 msgid "No" msgstr "Nie" -#: src/grpck.c:235 src/grpck.c:243 src/pwck.c:217 src/pwck.c:226 +#: src/grpck.c:234 src/grpck.c:242 src/pwck.c:216 src/pwck.c:225 #, c-format msgid "%s: cannot lock file %s\n" msgstr "%s: nie mog� zablokowa� pliku %s\n" -#: src/grpck.c:258 src/grpck.c:266 src/mkpasswd.c:217 src/pwck.c:242 -#: src/pwck.c:251 +#: src/grpck.c:257 src/grpck.c:265 src/mkpasswd.c:216 src/pwck.c:241 +#: src/pwck.c:250 #, c-format msgid "%s: cannot open file %s\n" msgstr "%s: nie mog� otworzy� pliku %s\n" @@ -1064,13 +1064,13 @@ msgstr "%s: nie mog #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:299 +#: src/grpck.c:298 msgid "invalid group file entry\n" msgstr "nieprawid�owy wpis do pliku grup\n" -#: src/grpck.c:300 src/grpck.c:363 src/grpck.c:455 src/grpck.c:518 -#: src/grpck.c:535 src/pwck.c:287 src/pwck.c:349 src/pwck.c:456 src/pwck.c:518 -#: src/pwck.c:542 +#: src/grpck.c:299 src/grpck.c:362 src/grpck.c:454 src/grpck.c:517 +#: src/grpck.c:534 src/pwck.c:286 src/pwck.c:348 src/pwck.c:455 src/pwck.c:517 +#: src/pwck.c:541 #, c-format msgid "delete line `%s'? " msgstr "usun�c lini� `%s'? " @@ -1079,26 +1079,26 @@ msgstr "usun #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:362 +#: src/grpck.c:361 msgid "duplicate group entry\n" msgstr "duplikat wpisu grup\n" -#: src/grpck.c:379 +#: src/grpck.c:378 #, c-format msgid "invalid group name `%s'\n" msgstr "nieprawid�owa nazwa grupy `%s'\n" -#: src/grpck.c:389 +#: src/grpck.c:388 #, c-format msgid "group %s: bad GID (%d)\n" msgstr "grupa %s: z�y GID (%d)\n" -#: src/grpck.c:415 +#: src/grpck.c:414 #, c-format msgid "group %s: no user %s\n" msgstr "grupa %s: nie ma u�ytkownika %s\n" -#: src/grpck.c:417 src/grpck.c:586 +#: src/grpck.c:416 src/grpck.c:585 #, c-format msgid "delete member `%s'? " msgstr "skasowa� cz�onka `%s'? " @@ -1107,7 +1107,7 @@ msgstr "skasowa #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:454 +#: src/grpck.c:453 msgid "invalid shadow group file entry\n" msgstr "nieprawid�owy wpis do pliku z ukrytymi has�ami\n" @@ -1115,65 +1115,65 @@ msgstr "nieprawid #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:517 +#: src/grpck.c:516 msgid "duplicate shadow group entry\n" msgstr "duplikuj�cy si� wpis w pliku ukrytych grup\n" -#: src/grpck.c:534 +#: src/grpck.c:533 msgid "no matching group file entry\n" msgstr "brak pasuj�cego wpisu w pliku grup\n" -#: src/grpck.c:554 +#: src/grpck.c:553 #, c-format msgid "shadow group %s: no administrative user %s\n" msgstr "ukryta grupa %s: brak u�ytkownika administracyjnego %s\n" -#: src/grpck.c:556 +#: src/grpck.c:555 #, c-format msgid "delete administrative member `%s'? " msgstr "usun�� cz�onka administracyjnego `%s'? " -#: src/grpck.c:584 +#: src/grpck.c:583 #, c-format msgid "shadow group %s: no user %s\n" msgstr "ukryta grupa %s: nie ma u�ytkownika %s\n" -#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581 +#: src/grpck.c:610 src/grpck.c:616 src/pwck.c:572 src/pwck.c:580 #, c-format msgid "%s: cannot update file %s\n" msgstr "%s: nie mog� zaktualizowa� pliku %s\n" -#: src/grpck.c:641 src/pwck.c:607 +#: src/grpck.c:640 src/pwck.c:606 #, c-format msgid "%s: the files have been updated; run mkpasswd\n" msgstr "%s: pliki zosta�y zaktualizowane; uruchom mkpasswd\n" -#: src/grpck.c:642 src/grpck.c:646 src/pwck.c:608 src/pwck.c:612 +#: src/grpck.c:641 src/grpck.c:645 src/pwck.c:607 src/pwck.c:611 #, c-format msgid "%s: no changes\n" msgstr "%s: bez zmian\n" -#: src/grpck.c:645 src/pwck.c:611 +#: src/grpck.c:644 src/pwck.c:610 #, c-format msgid "%s: the files have been updated\n" msgstr "%s: pliku zost�y zaktualizowane\n" -#: src/grpconv.c:63 src/grpunconv.c:64 +#: src/grpconv.c:62 src/grpunconv.c:63 #, c-format msgid "%s: can't lock group file\n" msgstr "%s: nie mog� zablokowa� pliku z grupami\n" -#: src/grpconv.c:68 src/grpunconv.c:69 +#: src/grpconv.c:67 src/grpunconv.c:68 #, c-format msgid "%s: can't open group file\n" msgstr "%s: nie mog� otworzy� pliku z grupami\n" -#: src/grpconv.c:73 src/grpunconv.c:74 +#: src/grpconv.c:72 src/grpunconv.c:73 #, c-format msgid "%s: can't lock shadow group file\n" msgstr "%s: nie mog� zablokowa� pliku z przes�oni�tymi grupami\n" -#: src/grpconv.c:78 src/grpunconv.c:79 +#: src/grpconv.c:77 src/grpunconv.c:78 #, c-format msgid "%s: can't open shadow group file\n" msgstr "%s: nie mog� otworzy� pliku z przes�oni�tymi grupami\n" @@ -1181,85 +1181,85 @@ msgstr "%s: nie mog #. #. * This shouldn't happen (the entry exists) but... #. -#: src/grpconv.c:94 +#: src/grpconv.c:93 #, c-format msgid "%s: can't remove shadow group %s\n" msgstr "%s: nie mog� usun�� ukrytej grupy %s\n" -#: src/grpconv.c:135 src/pwconv.c:161 +#: src/grpconv.c:134 src/pwconv.c:160 #, c-format msgid "%s: can't update shadow entry for %s\n" msgstr "%s: nie mog� zaktualizowa� wpisu ukrytej grupy dla %s\n" -#: src/grpconv.c:144 src/grpunconv.c:95 +#: src/grpconv.c:143 src/grpunconv.c:94 #, c-format msgid "%s: can't update entry for group %s\n" msgstr "%s: nie mog� zaktualizowa� wpisu dla grupy %s\n" -#: src/grpconv.c:151 src/grpunconv.c:103 +#: src/grpconv.c:150 src/grpunconv.c:102 #, c-format msgid "%s: can't update shadow group file\n" msgstr "%s: nie mog� zaktualizowa� pliku z ukrytymi grupami\n" -#: src/grpconv.c:155 src/grpunconv.c:108 +#: src/grpconv.c:154 src/grpunconv.c:107 #, c-format msgid "%s: can't update group file\n" msgstr "%s: nie mog� zaktualizowa� pliku z grupami\n" -#: src/grpconv.c:170 src/grpunconv.c:129 +#: src/grpconv.c:169 src/grpunconv.c:128 #, c-format msgid "%s: not configured for shadow group support.\n" msgstr "%s: nie skonfigurowany dla wsparcia ukrytych grup.\n" -#: src/grpunconv.c:113 +#: src/grpunconv.c:112 #, c-format msgid "%s: can't delete shadow group file\n" msgstr "%s: nie mog� skasowa� pliku z ukrytymi grupami\n" -#: src/id.c:57 +#: src/id.c:56 msgid "usage: id [ -a ]\n" msgstr "u�ycie: id [ -a ]\n" -#: src/id.c:59 +#: src/id.c:58 msgid "usage: id\n" msgstr "u�ycie: id\n" -#: src/id.c:119 +#: src/id.c:118 #, c-format msgid "uid=%d(%s)" msgstr "uid=%d(%s)" -#: src/id.c:121 +#: src/id.c:120 #, c-format msgid "uid=%d" msgstr "uid=%d" -#: src/id.c:125 +#: src/id.c:124 #, c-format msgid " gid=%d(%s)" msgstr " gid=%d(%s)" -#: src/id.c:127 +#: src/id.c:126 #, c-format msgid " gid=%d" msgstr " gid=%d" -#: src/id.c:137 +#: src/id.c:136 #, c-format msgid " euid=%d(%s)" msgstr " euid=%d(%s)" -#: src/id.c:139 +#: src/id.c:138 #, c-format msgid " euid=%d" msgstr " euid=%d" -#: src/id.c:144 +#: src/id.c:143 #, c-format msgid " egid=%d(%s)" msgstr " egid=%d(%s)" -#: src/id.c:146 +#: src/id.c:145 #, c-format msgid " egid=%d" msgstr " egid=%d" @@ -1272,42 +1272,42 @@ msgstr " egid=%d" #. * where "###" is a numerical value and "aaa" is the #. * corresponding name for each respective numerical value. #. -#: src/id.c:167 +#: src/id.c:166 msgid " groups=" msgstr " grupy=" -#: src/lastlog.c:168 +#: src/lastlog.c:167 msgid "Username Port From Latest\n" msgstr "U�ytkownik Port Z Ostatnio\n" -#: src/lastlog.c:170 +#: src/lastlog.c:169 msgid "Username Port Latest\n" msgstr "U�ytkownik Port Ostatnio\n" -#: src/lastlog.c:184 +#: src/lastlog.c:183 msgid "**Never logged in**" msgstr "**Nigdy nie zalogowany**" -#: src/login.c:199 +#: src/login.c:198 #, c-format msgid "usage: %s [-p] [name]\n" msgstr "u�ycie: %s [-p] [nazwa]\n" -#: src/login.c:202 +#: src/login.c:201 #, c-format msgid " %s [-p] [-h host] [-f name]\n" msgstr " %s [-p] [-h host] [-f nazwa]\n" -#: src/login.c:204 +#: src/login.c:203 #, c-format msgid " %s [-p] -r host\n" msgstr " %s [-p] -r host\n" -#: src/login.c:287 +#: src/login.c:286 msgid "Invalid login time\n" msgstr "Nieprawid�owy czas logowania\n" -#: src/login.c:342 +#: src/login.c:341 msgid "" "\n" "System closed for routine maintenance\n" @@ -1315,7 +1315,7 @@ msgstr "" "\n" "System zamkni�ty do rutynowej konserwacji.\n" -#: src/login.c:352 +#: src/login.c:351 msgid "" "\n" "[Disconnect bypassed -- root login allowed.]\n" @@ -1323,7 +1323,7 @@ msgstr "" "\n" "[Roz��czenie pomini�te -- zezwolenie na logowanie si� root-a.]\n" -#: src/login.c:391 +#: src/login.c:390 #, c-format msgid "" "\n" @@ -1342,7 +1342,7 @@ msgstr " na `%s.100s' z `%.200s'" msgid " on `%.100s'" msgstr " na `%.100s'" -#: src/login.c:807 +#: src/login.c:834 #, c-format msgid "" "\n" @@ -1351,34 +1351,34 @@ msgstr "" "\n" "%s login: " -#: src/login.c:809 +#: src/login.c:836 msgid "login: " msgstr "login: " -#: src/login.c:991 src/sulogin.c:233 +#: src/login.c:1026 src/sulogin.c:231 msgid "Login incorrect" msgstr "Nieprawid�owe logowanie" -#: src/login.c:1163 +#: src/login.c:1213 msgid "Warning: login re-enabled after temporary lockout.\n" msgstr "Ostrze�enie: logowanie ponownie odblokowanie po czasowej blokadzie.\n" -#: src/login.c:1173 +#: src/login.c:1223 #, c-format msgid "Last login: %s on %s" msgstr "Ostatnie logowanie: %s na %s" -#: src/login.c:1176 +#: src/login.c:1226 #, c-format msgid "Last login: %.19s on %s" msgstr "Ostatnie logowanie: %s na %s" -#: src/login.c:1181 +#: src/login.c:1231 #, c-format msgid " from %.*s" msgstr " z %.*s" -#: src/login.c:1246 +#: src/login.c:1303 msgid "Starting rad_login\n" msgstr "Startuj� rad_login\n" @@ -1388,191 +1388,191 @@ msgid "%s: no DBM database on system - no action performed\n" msgstr "" "%s: nie ma bazy DBM na tym systemie - �adna akcja nie zosta�a podj�ta\n" -#: src/mkpasswd.c:246 src/mkpasswd.c:250 +#: src/mkpasswd.c:245 src/mkpasswd.c:249 #, c-format msgid "%s: cannot overwrite file %s\n" msgstr "%s: nie mog� nadpisa� pliku %s\n" -#: src/mkpasswd.c:264 +#: src/mkpasswd.c:263 #, c-format msgid "%s: cannot open DBM files for %s\n" msgstr "%s: nie mog� otworzy� plik�w DBM dla %s\n" -#: src/mkpasswd.c:297 +#: src/mkpasswd.c:296 #, c-format msgid "%s: the beginning with " msgstr "%s: rozpoczyna si� od " -#: src/mkpasswd.c:322 +#: src/mkpasswd.c:321 #, c-format msgid "%s: error parsing line \"%s\"\n" msgstr "%s: b��d podczas przetwarzania lini \"%s\"\n" -#: src/mkpasswd.c:327 src/mkpasswd.c:329 src/mkpasswd.c:331 src/mkpasswd.c:333 +#: src/mkpasswd.c:326 src/mkpasswd.c:328 src/mkpasswd.c:330 src/mkpasswd.c:332 msgid "adding record for name " msgstr "dodaj� rekord do nazwy " -#: src/mkpasswd.c:337 src/mkpasswd.c:342 src/mkpasswd.c:346 src/mkpasswd.c:350 +#: src/mkpasswd.c:336 src/mkpasswd.c:341 src/mkpasswd.c:345 src/mkpasswd.c:349 #, c-format msgid "%s: error adding record for " msgstr "%s: b��d podczas dodawania rekordu dla " -#: src/mkpasswd.c:368 +#: src/mkpasswd.c:367 #, c-format msgid "added %d entries, longest was %d\n" msgstr "dodano %d wpis�w, najd�u�szy by� %d\n" -#: src/mkpasswd.c:383 +#: src/mkpasswd.c:382 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp|sg ] file\n" msgstr "U�ycie: %s [ -vf ] [ -p|g|sp|sg ] plik\n" -#: src/mkpasswd.c:385 +#: src/mkpasswd.c:384 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp ] file\n" msgstr "U�ycie: %s [ -vf ] [ -p|g|sp ] plik\n" -#: src/mkpasswd.c:388 +#: src/mkpasswd.c:387 #, c-format msgid "Usage: %s [ -vf ] [ -p|g ] file\n" msgstr "U�ycie: %s [ -vf ] [ -p|g ] plik\n" -#: src/newgrp.c:67 +#: src/newgrp.c:66 msgid "usage: newgrp [ - ] [ group ]\n" msgstr "u�ycie: newgrp [ - ] [ grupa ]\n" -#: src/newgrp.c:69 +#: src/newgrp.c:68 #, fuzzy msgid "usage: sg group [[-c] command ]\n" msgstr "u�ycie: sg grupa [ komenda ]\n" -#: src/newgrp.c:122 +#: src/newgrp.c:125 #, c-format msgid "unknown uid: %d\n" msgstr "nieznany uid: %d\n" -#: src/newgrp.c:198 +#: src/newgrp.c:201 #, c-format msgid "unknown gid: %ld\n" msgstr "nieznany gid: %ld\n" -#: src/newgrp.c:242 +#: src/newgrp.c:245 #, c-format msgid "unknown gid: %d\n" msgstr "nieznany gid: %d\n" -#: src/newgrp.c:315 src/newgrp.c:324 +#: src/newgrp.c:323 src/newgrp.c:332 msgid "Sorry.\n" msgstr "Wybacz.\n" -#: src/newgrp.c:356 +#: src/newgrp.c:364 msgid "too many groups\n" msgstr "zbyt wiele grup\n" -#: src/newusers.c:79 +#: src/newusers.c:76 #, c-format msgid "Usage: %s [ input ]\n" msgstr "U�ycie: %s [ wej�cie ]\n" -#: src/newusers.c:367 +#: src/newusers.c:364 #, c-format msgid "%s: can't lock /etc/passwd.\n" msgstr "%s: nie mog� zablokowa� /etc/passwd.\n" -#: src/newusers.c:378 +#: src/newusers.c:375 #, c-format msgid "%s: can't lock files, try again later\n" msgstr "%s: nie mog� zablokowa� plik�w, spr�buj p�niej\n" -#: src/newusers.c:393 +#: src/newusers.c:390 #, c-format msgid "%s: can't open files\n" msgstr "%s: nie mog� otworzy� plik�w\n" -#: src/newusers.c:438 +#: src/newusers.c:435 #, c-format msgid "%s: line %d: invalid line\n" msgstr "%s: linia %d: nieprawid�owa linia\n" -#: src/newusers.c:456 +#: src/newusers.c:453 #, c-format msgid "%s: line %d: can't create GID\n" msgstr "%s: linia %d: nie mog� utworzy� GID\n" -#: src/newusers.c:472 +#: src/newusers.c:469 #, c-format msgid "%s: line %d: can't create UID\n" msgstr "%s: linia %d: nie mog� utworzy� UID\n" -#: src/newusers.c:484 +#: src/newusers.c:481 #, c-format msgid "%s: line %d: cannot find user %s\n" msgstr "%s: linia %d: nie mog� znale�� u�ytkownika %s\n" -#: src/newusers.c:492 +#: src/newusers.c:489 #, c-format msgid "%s: line %d: can't update password\n" msgstr "%s: linia %d: nie mog� zaktualizowa� pliku z has�ami\n" -#: src/newusers.c:509 +#: src/newusers.c:506 #, c-format msgid "%s: line %d: mkdir failed\n" msgstr "%s: linia %d: mkdir nie powiod�o si�\n" -#: src/newusers.c:513 +#: src/newusers.c:510 #, c-format msgid "%s: line %d: chown failed\n" msgstr "%s: linia %d: chown nie powiod�o si�\n" -#: src/newusers.c:522 +#: src/newusers.c:519 #, c-format msgid "%s: line %d: can't update entry\n" msgstr "%s: linia %d: nie mog� zaktualizowa� wpisu\n" -#: src/newusers.c:553 +#: src/newusers.c:550 #, c-format msgid "%s: error updating files\n" msgstr "%s: b��d podczas aktualizowania plik�w\n" -#: src/passwd.c:241 +#: src/passwd.c:239 #, c-format msgid "usage: %s [ -f | -s ] [ name ]\n" msgstr "u�ycie: %s [ -f | -s ] [ nazwa ]\n" -#: src/passwd.c:244 +#: src/passwd.c:242 #, c-format msgid " %s [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name\n" msgstr " %s [ -x maks ] [ -n min ] [ -w ostrz ] [ -i nieakty ] nazwa\n" -#: src/passwd.c:247 +#: src/passwd.c:245 #, c-format msgid " %s { -l | -u | -d | -S | -e } name\n" msgstr " %s { -l | -u | -d | -S | -e } nazwa\n" -#: src/passwd.c:349 +#: src/passwd.c:347 #, c-format msgid "User %s has a TCFS key, his old password is required.\n" msgstr "U�ytkownik %s posiada klucz TCFS, jego stare has�o jest wymagane.\n" -#: src/passwd.c:350 +#: src/passwd.c:348 msgid "You can use -t option to force the change.\n" msgstr "Nie mo�esz u�ywa� opcji -t by wymusi� zmian�.\n" -#: src/passwd.c:356 +#: src/passwd.c:354 msgid "Old password: " msgstr "Stare has�o: " -#: src/passwd.c:363 +#: src/passwd.c:361 #, c-format msgid "Incorrect password for `%s'\n" msgstr "Nieprawid�owe has�o `%s'\n" -#: src/passwd.c:376 +#: src/passwd.c:374 #, c-format msgid "Warning: user %s has a TCFS key.\n" msgstr "Ostrze�enie: u�ytkownik %s posiada klucz TCFS.\n" -#: src/passwd.c:394 +#: src/passwd.c:392 #, c-format msgid "" "Enter the new password (minimum of %d, maximum of %d characters)\n" @@ -1581,15 +1581,15 @@ msgstr "" "Wpisz nowe has�o (minimum %d, maksimum %d znak�w)\n" "Prosz� u�yj kombinacji wielkich i ma�ych znak�w oraz cyfr.\n" -#: src/passwd.c:401 +#: src/passwd.c:399 msgid "New password: " msgstr "Nowe has�o: " -#: src/passwd.c:411 +#: src/passwd.c:409 msgid "Try again.\n" msgstr "Spr�buj ponownie.\n" -#: src/passwd.c:420 +#: src/passwd.c:418 msgid "" "\n" "Warning: weak password (enter it again to use it anyway).\n" @@ -1597,81 +1597,81 @@ msgstr "" "\n" "Ostrze�enie: s�abe has�o (jednak wpisz je ponowie je�li chcesz go u�y�).\n" -#: src/passwd.c:429 +#: src/passwd.c:427 msgid "They don't match; try again.\n" msgstr "Nie pasuj�; spr�buj ponownie.\n" -#: src/passwd.c:514 src/passwd.c:530 +#: src/passwd.c:512 src/passwd.c:528 #, c-format msgid "The password for %s cannot be changed.\n" msgstr "Has�o dla %s nie mo�e by� zmienione.\n" -#: src/passwd.c:558 +#: src/passwd.c:556 #, c-format msgid "Sorry, the password for %s cannot be changed yet.\n" msgstr "Wybacz, has�o dla %s nie mo�e by� jeszcze zmienione.\n" -#: src/passwd.c:695 +#: src/passwd.c:693 #, c-format msgid "%s: out of memory\n" msgstr "%s: brak pami�ci\n" -#: src/passwd.c:847 +#: src/passwd.c:845 msgid "Cannot lock the TCFS key database; try again later\n" msgstr "Nie mog� zablokowa� bazy kluczy TCFS; spr�buj ponownie\n" -#: src/passwd.c:853 +#: src/passwd.c:851 msgid "Cannot open the TCFS key database.\n" msgstr "Nie mog� otworzy� bazy kluczy TCFS.\n" -#: src/passwd.c:859 +#: src/passwd.c:857 msgid "Error updating the TCFS key database.\n" msgstr "B��d podczas aktualizacji bazy kluczy TCFS.\n" -#: src/passwd.c:864 +#: src/passwd.c:862 msgid "Cannot commit TCFS changes.\n" msgstr "Nie mog� potwierdzi� zmian TCFS.\n" -#: src/passwd.c:1071 +#: src/passwd.c:1069 #, c-format msgid "%s: Cannot execute %s" msgstr "%s: Nie mog� wykona� %s" -#: src/passwd.c:1178 +#: src/passwd.c:1176 #, c-format msgid "%s: repository %s not supported\n" msgstr "%s: ropozytorium %s nie jest obs�ugiwane\n" -#: src/passwd.c:1265 +#: src/passwd.c:1263 #, c-format msgid "%s: Permission denied\n" msgstr "%s: Dost�p zabroniony\n" -#: src/passwd.c:1289 +#: src/passwd.c:1287 #, c-format msgid "You may not change the password for %s.\n" msgstr "Nie mo�esz zmienia� has�a dla %s.\n" -#: src/passwd.c:1354 +#: src/passwd.c:1352 #, c-format msgid "Changing password for %s\n" msgstr "Zmieniam has�o dla %s\n" -#: src/passwd.c:1358 +#: src/passwd.c:1356 #, c-format msgid "The password for %s is unchanged.\n" msgstr "Has�o dla %s pozostaje niezmienione.\n" -#: src/passwd.c:1414 +#: src/passwd.c:1412 msgid "Password changed.\n" msgstr "Has�o zmienione.\n" -#: src/pwck.c:99 +#: src/pwck.c:98 #, c-format msgid "Usage: %s [ -qr ] [ passwd [ shadow ] ]\n" msgstr "U�ycie: %s [ -qr ] [ has�o [ shadow ] ]\n" -#: src/pwck.c:101 +#: src/pwck.c:100 #, c-format msgid "Usage: %s [ -qr ] [ passwd ]\n" msgstr "U�ycie: %s [ -qr ] [ has�o ]\n" @@ -1680,7 +1680,7 @@ msgstr "U #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:286 +#: src/pwck.c:285 msgid "invalid password file entry\n" msgstr "nieprawid�owy wpis do pliku z has�ami\n" @@ -1688,16 +1688,16 @@ msgstr "nieprawid #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:348 +#: src/pwck.c:347 msgid "duplicate password entry\n" msgstr "duplikuj�cy si� wpis w pliku z has�ami\n" -#: src/pwck.c:364 +#: src/pwck.c:363 #, c-format msgid "invalid user name `%s'\n" msgstr "nieprawid�owa nazwa u�ytkownika `%s'\n" -#: src/pwck.c:374 +#: src/pwck.c:373 #, c-format msgid "user %s: bad UID (%d)\n" msgstr "u�ytkownik %s: z�y UID (%d)\n" @@ -1705,7 +1705,7 @@ msgstr "u #. #. * No primary group, just give a warning #. -#: src/pwck.c:389 +#: src/pwck.c:388 #, c-format msgid "user %s: no group %d\n" msgstr "u�ytkownik %s: brak grupy %d\n" @@ -1713,7 +1713,7 @@ msgstr "u #. #. * Home directory doesn't exist, give a warning #. -#: src/pwck.c:404 +#: src/pwck.c:403 #, c-format msgid "user %s: directory %s does not exist\n" msgstr "u�ytkownik %s: katalog %s nie istnieje\n" @@ -1721,7 +1721,7 @@ msgstr "u #. #. * Login shell doesn't exist, give a warning #. -#: src/pwck.c:419 +#: src/pwck.c:418 #, c-format msgid "user %s: program %s does not exist\n" msgstr "u�ytkownik %s: program %s nie istnieje\n" @@ -1730,7 +1730,7 @@ msgstr "u #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:455 +#: src/pwck.c:454 msgid "invalid shadow password file entry\n" msgstr "nieprawid�owy wpis w pliku z has�ami\n" @@ -1738,7 +1738,7 @@ msgstr "nieprawid #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:517 +#: src/pwck.c:516 msgid "duplicate shadow password entry\n" msgstr "duplikuj�cy si� wpis w pliku z ukrytymi has�ami\n" @@ -1746,41 +1746,41 @@ msgstr "duplikuj #. * Tell the user this entry has no matching #. * /etc/passwd entry and ask them to delete it. #. -#: src/pwck.c:541 +#: src/pwck.c:540 msgid "no matching password file entry\n" msgstr "brak pasuj�cego wpisu w pliku z has�ami\n" -#: src/pwck.c:558 +#: src/pwck.c:557 #, c-format msgid "user %s: last password change in the future\n" msgstr "u�ytkownik %s: ostatnia zmiana has�a w przysz�o�ci\n" -#: src/pwconv.c:95 src/pwunconv.c:109 +#: src/pwconv.c:94 src/pwunconv.c:108 #, c-format msgid "%s: can't lock passwd file\n" msgstr "%s: nie mog� zablokowa� pliku z has�ami\n" -#: src/pwconv.c:100 src/pwunconv.c:114 +#: src/pwconv.c:99 src/pwunconv.c:113 #, c-format msgid "%s: can't open passwd file\n" msgstr "%s: nie mog� otworzy� pliku z has�ami\n" -#: src/pwconv.c:127 +#: src/pwconv.c:126 #, c-format msgid "%s: can't remove shadow entry for %s\n" msgstr "%s: nie mog� usun�� wpisu z pliku z ukrytymi has�ami dla %s\n" -#: src/pwconv.c:170 +#: src/pwconv.c:169 #, c-format msgid "%s: can't update passwd entry for %s\n" msgstr "%s: nie mog� zaktualizowa� wpisu do pliku z has�ami dla %s\n" -#: src/pwconv.c:177 +#: src/pwconv.c:176 #, c-format msgid "%s: can't update shadow file\n" msgstr "%s: nie mog� zaktualizowa� pliku z ukrytymi has�ami\n" -#: src/pwconv.c:181 +#: src/pwconv.c:180 #, c-format msgid "%s: can't update passwd file\n" msgstr "%s: nie mog� zaktualizowa� pliku z has�ami\n" @@ -1790,52 +1790,52 @@ msgstr "%s: nie mog msgid "%s: Shadow passwords are not configured.\n" msgstr "%s: Przes�oni�te has�a nie s� skonfigurowane.\n" -#: src/pwunconv.c:172 +#: src/pwunconv.c:171 #, c-format msgid "%s: can't update entry for user %s\n" msgstr "%s: nie mog� zaktualizowa� wpisu dla u�ytkownika %s\n" -#: src/pwunconv.c:189 +#: src/pwunconv.c:188 #, c-format msgid "%s: can't delete shadow password file\n" msgstr "%s: nie mog� skasowa� pliku z ukrytymi has�ami\n" -#: src/su.c:145 +#: src/su.c:140 msgid "Sorry." msgstr "Wybacz." -#: src/su.c:227 +#: src/su.c:222 #, c-format msgid "%s: must be run from a terminal\n" msgstr "%s: musisz uruchamia� z terminala\n" -#: src/su.c:319 +#: src/su.c:311 #, c-format msgid "%s: pam_start: error %d\n" msgstr "%s: pam_start: b��d %d\n" -#: src/su.c:345 +#: src/su.c:337 #, c-format msgid "Unknown id: %s\n" msgstr "Nieznany id: %s\n" #. access denied (-1) or unexpected value -#: src/su.c:380 src/su.c:395 +#: src/su.c:372 src/su.c:387 #, c-format msgid "You are not authorized to su %s\n" msgstr "Nie masz autoryzacji by u�ywa� su %s\n" #. require own password -#: src/su.c:391 +#: src/su.c:383 msgid "(Enter your own password.)" msgstr "(Wpisz swoje w�asne has�o.)" -#: src/su.c:412 +#: src/su.c:404 #, c-format msgid "%s: permission denied (shell).\n" msgstr "%s: dost�p zabroniony (pow�oka).\n" -#: src/su.c:436 +#: src/su.c:428 #, c-format msgid "" "%s: %s\n" @@ -1844,19 +1844,19 @@ msgstr "" "%s: %s\n" "(Zignorowano)\n" -#: src/su.c:605 +#: src/su.c:628 msgid "No shell\n" msgstr "Brak pow�oki\n" #. must be a password file! -#: src/sulogin.c:138 +#: src/sulogin.c:136 msgid "No password file\n" msgstr "Brak pliku z has�ami\n" #. #. * Fail secure #. -#: src/sulogin.c:180 +#: src/sulogin.c:178 msgid "No password entry for 'root'\n" msgstr "Brak wpisu do bazy hase� dla 'root'\n" @@ -1865,7 +1865,7 @@ msgstr "Brak wpisu do bazy hase #. * given we just exit. #. #. get a password for root -#: src/sulogin.c:194 +#: src/sulogin.c:192 msgid "" "\n" "Type control-d to proceed with normal startup,\n" @@ -1876,495 +1876,500 @@ msgstr "" "(lub podaj has�o root-a by przej�� do trybu utrzymania systemu):" #. make new environment active -#: src/sulogin.c:243 +#: src/sulogin.c:241 msgid "Entering System Maintenance Mode\n" msgstr "Wchodz� w tryb utrzymania systemu\n" -#: src/useradd.c:244 +#: src/useradd.c:243 #, c-format msgid "%s: rebuild the group database\n" msgstr "%s: przebuduj baz� grup\n" -#: src/useradd.c:251 +#: src/useradd.c:250 #, c-format msgid "%s: rebuild the shadow group database\n" msgstr "%s: przebuduj baz� przes�oni�tych hase�\n" -#: src/useradd.c:288 src/usermod.c:941 +#: src/useradd.c:287 src/usermod.c:940 #, c-format msgid "%s: invalid numeric argument `%s'\n" msgstr "%s: nieprawid�owy argument numeryczny `%s'\n" -#: src/useradd.c:344 +#: src/useradd.c:343 #, c-format msgid "%s: unknown gid %s\n" msgstr "%s: nieznany gid %s\n" -#: src/useradd.c:351 src/useradd.c:643 src/useradd.c:1229 src/usermod.c:253 -#: src/usermod.c:1072 +#: src/useradd.c:350 src/useradd.c:642 src/useradd.c:1228 src/usermod.c:252 +#: src/usermod.c:1071 #, c-format msgid "%s: unknown group %s\n" msgstr "%s: nieznana grupa %s\n" -#: src/useradd.c:419 +#: src/useradd.c:418 #, c-format msgid "group=%s,%ld basedir=%s skel=%s\n" msgstr "grupa=%s,%ld kat_baz=%s skel=%s\n" -#: src/useradd.c:422 +#: src/useradd.c:421 #, c-format msgid "shell=%s " msgstr "pow�oka=%s " -#: src/useradd.c:424 +#: src/useradd.c:423 #, c-format msgid "inactive=%ld expire=%s" msgstr "nieaktywne=%ld wyga�ni�cie=%s" -#: src/useradd.c:428 +#: src/useradd.c:427 #, c-format msgid "GROUP=%ld\n" msgstr "GRUPA=%ld\n" -#: src/useradd.c:429 +#: src/useradd.c:428 #, c-format msgid "HOME=%s\n" msgstr "KAT_DOM=%s\n" -#: src/useradd.c:431 +#: src/useradd.c:430 #, c-format msgid "INACTIVE=%ld\n" msgstr "NIEAKTYWNE=%ld\n" -#: src/useradd.c:432 +#: src/useradd.c:431 #, c-format msgid "EXPIRE=%s\n" msgstr "WYGA�NI�CIE=%s\n" -#: src/useradd.c:434 +#: src/useradd.c:433 #, c-format msgid "SHELL=%s\n" msgstr "POW�OKA=%s\n" -#: src/useradd.c:435 +#: src/useradd.c:434 #, c-format msgid "SKEL=%s\n" msgstr "SKEL=%s\n" -#: src/useradd.c:471 +#: src/useradd.c:470 #, c-format msgid "%s: cannot create new defaults file\n" msgstr "%s: nie mog� utworzy� nowego pliku ze standardowymi ustawieniami\n" -#: src/useradd.c:565 src/useradd.c:576 +#: src/useradd.c:564 src/useradd.c:575 #, c-format msgid "%s: rename: %s" msgstr "%s: zmiana nazwy: %s" -#: src/useradd.c:663 src/usermod.c:273 +#: src/useradd.c:662 src/usermod.c:272 #, c-format msgid "%s: group `%s' is a NIS group.\n" msgstr "%s: grupa `%s' jest grup� NIS.\n" -#: src/useradd.c:671 src/usermod.c:281 +#: src/useradd.c:670 src/usermod.c:280 #, c-format msgid "%s: too many groups specified (max %d).\n" msgstr "%s: podano zbyt wiele grup (maks %d).\n" -#: src/useradd.c:703 src/usermod.c:313 +#: src/useradd.c:702 src/usermod.c:312 #, c-format msgid "usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n" msgstr "u�ycie: %s\t[-u uid [-o]] [-g grupa] [-G grupa,...] \n" -#: src/useradd.c:706 +#: src/useradd.c:705 msgid "\t\t[-d home] [-s shell] [-c comment] [-m [-k template]]\n" msgstr "\t\t[-d kat_dom] [-s pow�oka] [-c komentarz] [-m [-k wz�r]]\n" -#: src/useradd.c:709 src/usermod.c:319 +#: src/useradd.c:708 src/usermod.c:318 msgid "[-f inactive] [-e expire ] " msgstr "[-f nieaktywne] [-e utrata_wa�no�ci ]" -#: src/useradd.c:712 +#: src/useradd.c:711 msgid "[-A program] " msgstr "[-A program] " -#: src/useradd.c:714 src/usermod.c:324 +#: src/useradd.c:713 src/usermod.c:323 msgid "[-p passwd] name\n" msgstr "[-p has�o] nazwa\n" -#: src/useradd.c:716 +#: src/useradd.c:715 #, c-format msgid " %s\t-D [-g group] [-b base] [-s shell]\n" msgstr " %s\t-D [-g grupa] [-b baza] [-s pow�oka]\n" -#: src/useradd.c:719 +#: src/useradd.c:718 msgid "\t\t[-f inactive] [-e expire ]\n" msgstr "\t\t[-f nieaktywne] [-e utrata_wa�no�ci ]\n" -#: src/useradd.c:816 src/usermod.c:446 +#: src/useradd.c:815 src/usermod.c:445 #, c-format msgid "%s: error locking group file\n" msgstr "%s: b��d podczas blokowania pliku z grupami\n" -#: src/useradd.c:820 src/usermod.c:451 +#: src/useradd.c:819 src/usermod.c:450 #, c-format msgid "%s: error opening group file\n" msgstr "%s: b��d podczas otwierania pliku z grupami\n" -#: src/useradd.c:825 src/usermod.c:558 +#: src/useradd.c:824 src/usermod.c:557 #, c-format msgid "%s: error locking shadow group file\n" msgstr "%s: b��d podczas blokowania pliku z ukrytymi has�ami\n" -#: src/useradd.c:830 src/usermod.c:564 +#: src/useradd.c:829 src/usermod.c:563 #, c-format msgid "%s: error opening shadow group file\n" msgstr "%s: b��d podczas otwierania pliku z ukrytymi grupami\n" -#: src/useradd.c:1002 +#: src/useradd.c:1001 #, c-format msgid "%s: uid %d is not unique\n" msgstr "%s: uid %d nie jest niepowtarzalny\n" -#: src/useradd.c:1032 +#: src/useradd.c:1031 #, c-format msgid "%s: can't get unique uid\n" msgstr "%s: nie mog� uzyska� niepowtarzalnego uid\n" -#: src/useradd.c:1140 src/useradd.c:1284 src/usermod.c:1020 src/usermod.c:1031 -#: src/usermod.c:1041 src/usermod.c:1087 src/usermod.c:1122 +#: src/useradd.c:1139 src/useradd.c:1283 src/usermod.c:1019 src/usermod.c:1030 +#: src/usermod.c:1040 src/usermod.c:1086 src/usermod.c:1121 #, c-format msgid "%s: invalid field `%s'\n" msgstr "%s: nieprawid�owe pole `%s'\n" -#: src/useradd.c:1154 +#: src/useradd.c:1153 #, c-format msgid "%s: invalid base directory `%s'\n" msgstr "%s: nieprawid�owy katalog bazowy `%s'\n" -#: src/useradd.c:1164 +#: src/useradd.c:1163 #, c-format msgid "%s: invalid comment `%s'\n" msgstr "%s: nieprawid�owy komentarz `%s'\n" -#: src/useradd.c:1174 +#: src/useradd.c:1173 #, c-format msgid "%s: invalid home directory `%s'\n" msgstr "%s: nieprawid�owy katalog domowy `%s'\n" -#: src/useradd.c:1192 src/usermod.c:1054 +#: src/useradd.c:1191 src/usermod.c:1053 #, c-format msgid "%s: invalid date `%s'\n" msgstr "%s: nieprawid�owa data `%s'\n" -#: src/useradd.c:1204 +#: src/useradd.c:1203 #, c-format msgid "%s: shadow passwords required for -e\n" msgstr "%s: ukryte has�a wymagane dla -e\n" -#: src/useradd.c:1219 +#: src/useradd.c:1218 #, c-format msgid "%s: shadow passwords required for -f\n" msgstr "%s: ukryte has�a wymagane dla -f\n" -#: src/useradd.c:1293 +#: src/useradd.c:1292 #, c-format msgid "%s: invalid shell `%s'\n" msgstr "%s: nieprawid�owa pow�oka `%s'\n" -#: src/useradd.c:1334 +#: src/useradd.c:1333 #, c-format msgid "%s: invalid user name `%s'\n" msgstr "%s: nieprawid�owa nazwa u�ytkownika `%s'\n" -#: src/useradd.c:1370 src/userdel.c:262 src/usermod.c:1184 +#: src/useradd.c:1369 src/userdel.c:292 src/usermod.c:1183 #, c-format msgid "%s: cannot rewrite password file\n" msgstr "%s: nie mog� przepisa� pliku z has�ami\n" -#: src/useradd.c:1375 src/userdel.c:265 src/usermod.c:1189 +#: src/useradd.c:1374 src/userdel.c:295 src/usermod.c:1188 #, c-format msgid "%s: cannot rewrite shadow password file\n" msgstr "%s: nie mog� przepisa� pliku z ukrytymi has�ami\n" -#: src/useradd.c:1415 src/userdel.c:329 src/usermod.c:1224 +#: src/useradd.c:1414 src/userdel.c:359 src/usermod.c:1223 #, c-format msgid "%s: unable to lock password file\n" msgstr "%s: nie mog� zablokowa� pliku z has�ami\n" -#: src/useradd.c:1419 src/userdel.c:333 src/usermod.c:1228 +#: src/useradd.c:1418 src/userdel.c:363 src/usermod.c:1227 #, c-format msgid "%s: unable to open password file\n" msgstr "%s: nie mog� otworzy� pliku z has�ami\n" -#: src/useradd.c:1425 src/userdel.c:338 src/usermod.c:1233 +#: src/useradd.c:1424 src/userdel.c:368 src/usermod.c:1232 #, c-format msgid "%s: cannot lock shadow password file\n" msgstr "%s: nie mog� zablokowa� pliku z ukrytymi has�ami\n" -#: src/useradd.c:1431 src/userdel.c:343 src/usermod.c:1238 +#: src/useradd.c:1430 src/userdel.c:373 src/usermod.c:1237 #, c-format msgid "%s: cannot open shadow password file\n" msgstr "%s: nie mog� otworzy� pliku z ukrytymi has�ami\n" -#: src/useradd.c:1530 src/usermod.c:1325 +#: src/useradd.c:1529 src/usermod.c:1324 #, c-format msgid "%s: error adding authentication method\n" msgstr "%s: b��d podczas dodawania metody uwierzytelniania\n" -#: src/useradd.c:1553 +#: src/useradd.c:1552 #, c-format msgid "%s: error adding new password entry\n" msgstr "%s: b��d podczas dodawania nowego wpisu do pliku z has�ami\n" -#: src/useradd.c:1568 +#: src/useradd.c:1567 #, c-format msgid "%s: error updating password dbm entry\n" msgstr "%s: b��d podczas aktualizacji wpisu dbm do pliku z has�ami\n" -#: src/useradd.c:1584 src/usermod.c:1384 +#: src/useradd.c:1583 src/usermod.c:1383 #, c-format msgid "%s: error adding new shadow password entry\n" msgstr "%s: b��d podczas dodawania nowego wpisu do pliku z ukrytymi has�ami\n" -#: src/useradd.c:1600 src/usermod.c:1399 +#: src/useradd.c:1599 src/usermod.c:1398 #, c-format msgid "%s: error updating shadow passwd dbm entry\n" msgstr "%s: b��d podczas aktualizacji wpisu dbm do pliku z ukrytymi has�ami\n" -#: src/useradd.c:1632 +#: src/useradd.c:1631 #, c-format msgid "%s: cannot create directory %s\n" msgstr "%s: nie mog� utworzy� katalogu %s\n" -#: src/useradd.c:1709 src/usermod.c:1162 +#: src/useradd.c:1708 src/usermod.c:1161 #, c-format msgid "%s: user %s exists\n" msgstr "%s: u�ytkownik %s istnieje\n" -#: src/useradd.c:1739 +#: src/useradd.c:1738 #, c-format msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n" msgstr "" -#: src/userdel.c:128 +#: src/userdel.c:127 #, c-format msgid "usage: %s [-r] name\n" msgstr "u�ycie: %s [-r] nazwa\n" -#: src/userdel.c:175 src/userdel.c:230 +#: src/userdel.c:178 src/userdel.c:260 #, c-format msgid "%s: error updating group entry\n" msgstr "%s: b��d podczas aktualizacji wpisu grupy\n" -#: src/userdel.c:185 src/userdel.c:239 +#: src/userdel.c:188 src/userdel.c:269 #, c-format msgid "%s: cannot update dbm group entry\n" msgstr "%s: nie mog� zaktualizowa� wpisu dbm do pliku z grupami\n" -#: src/userdel.c:270 +#: src/userdel.c:215 +#, fuzzy, c-format +msgid "%s: cannot remove dbm group entry\n" +msgstr "%s: nie mog� zaktualizowa� wpisu dbm do pliku z grupami\n" + +#: src/userdel.c:300 #, c-format msgid "%s: cannot rewrite TCFS key file\n" msgstr "%s: nie mog� przepisa� pliku klucza TCFS\n" -#: src/userdel.c:350 +#: src/userdel.c:380 #, c-format msgid "%s: cannot lock TCFS key file\n" msgstr "%s: nie mog� zablokowa� pliku klucza TCFS\n" -#: src/userdel.c:354 +#: src/userdel.c:384 #, c-format msgid "%s: cannot open TCFS key file\n" msgstr "%s: nie mog� otworzy� pliku klucza TCFS\n" -#: src/userdel.c:363 +#: src/userdel.c:393 #, c-format msgid "%s: cannot open group file\n" msgstr "%s: nie mog� otworzy� pliku z grupami\n" -#: src/userdel.c:373 +#: src/userdel.c:403 #, c-format msgid "%s: cannot open shadow group file\n" msgstr "%s: nie mog� otworzy� pliku z przes�oni�tymi grupami\n" -#: src/userdel.c:404 src/userdel.c:419 +#: src/userdel.c:434 src/userdel.c:449 #, c-format msgid "%s: error deleting authentication\n" msgstr "%s: b��d podczas usuwania informacji uwierzytelniaj�cej\n" -#: src/userdel.c:428 +#: src/userdel.c:458 #, c-format msgid "%s: error deleting password entry\n" msgstr "%s: b��d podczas usuwania wpisu do pliku z has�ami\n" -#: src/userdel.c:431 +#: src/userdel.c:461 #, c-format msgid "%s: error deleting shadow password entry\n" msgstr "%s: b��d podczas usuwania wpisu do pliku z ukrytymi has�ami\n" -#: src/userdel.c:440 +#: src/userdel.c:470 #, c-format msgid "%s: error deleting TCFS entry\n" msgstr "%s: b��d podczas usuwania wpisu TCFS\n" -#: src/userdel.c:453 +#: src/userdel.c:483 #, c-format msgid "%s: error deleting password dbm entry\n" msgstr "%s: b��d podczas usuwania wpisu dbm do pliku z has�ami\n" -#: src/userdel.c:472 +#: src/userdel.c:502 #, c-format msgid "%s: error deleting shadow passwd dbm entry\n" msgstr "%s: b��d podczas usuwania wpisy dbm z pliku z ukrytymi has�ami\n" -#: src/userdel.c:513 +#: src/userdel.c:543 #, c-format msgid "%s: user %s is currently logged in\n" msgstr "%s: u�ytkownik %s jest aktualnie zalogowany\n" -#: src/userdel.c:630 +#: src/userdel.c:660 #, c-format msgid "%s: warning: %s not owned by %s, not removing\n" msgstr "%s: ostrze�enie: w�a�cicielem %s nie jest %s, nie usuwam\n" -#: src/userdel.c:636 +#: src/userdel.c:666 #, c-format msgid "%s: warning: can't remove " msgstr "%s: ostrze�enie: nie mog� usun�� " -#: src/userdel.c:711 src/usermod.c:968 +#: src/userdel.c:741 src/usermod.c:967 #, c-format msgid "%s: user %s does not exist\n" msgstr "%s: u�ytkownik %s nie istnieje\n" -#: src/userdel.c:725 src/usermod.c:984 +#: src/userdel.c:755 src/usermod.c:983 #, c-format msgid "%s: user %s is a NIS user\n" msgstr "%s: u�ytkownik %s jest u�ytkownikiem NIS\n" -#: src/userdel.c:762 +#: src/userdel.c:792 #, c-format msgid "%s: %s not owned by %s, not removing\n" msgstr "%s: w�a�cicielem %s nie jest %s, nie usuwam\n" -#: src/userdel.c:785 +#: src/userdel.c:815 #, c-format msgid "%s: not removing directory %s (would remove home of user %s)\n" msgstr "%s: nie usuwam katalogu %s (would remove home of user %s)\n" -#: src/userdel.c:798 +#: src/userdel.c:828 #, c-format msgid "%s: error removing directory %s\n" msgstr "%s: b��d podczas usuwania katalogu %s\n" -#: src/usermod.c:316 +#: src/usermod.c:315 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n" msgstr "\t\t[-d kat_dom [-m]] [-s pow�oka] [-c komentarz] [-l nowa_nazwa]\n" -#: src/usermod.c:322 +#: src/usermod.c:321 msgid "[-A {DEFAULT|program},... ] " msgstr "[-A {DEFAULT|program},... ] " -#: src/usermod.c:478 +#: src/usermod.c:477 #, c-format msgid "%s: out of memory in update_group\n" msgstr "%s: zabrak�o pami�ci w pdate_group\n" -#: src/usermod.c:601 +#: src/usermod.c:600 #, c-format msgid "%s: out of memory in update_gshadow\n" msgstr "%s: zabrak�o pami�ci w update_gshadow\n" -#: src/usermod.c:1139 +#: src/usermod.c:1138 #, c-format msgid "%s: no flags given\n" msgstr "%s: nie podano flag\n" -#: src/usermod.c:1146 +#: src/usermod.c:1145 #, c-format msgid "%s: shadow passwords required for -e and -f\n" msgstr "%s: ukryte has�a wymagane dla -e i -f\n" -#: src/usermod.c:1167 +#: src/usermod.c:1166 #, c-format msgid "%s: uid %ld is not unique\n" msgstr "%s: uid %ld nie jest niepowtarzalny\n" -#: src/usermod.c:1315 +#: src/usermod.c:1314 #, c-format msgid "%s: error deleting authentication method\n" msgstr "%s: b��d podczas usuwania metody uwierzytelniania\n" -#: src/usermod.c:1335 +#: src/usermod.c:1334 #, c-format msgid "%s: error changing authentication method\n" msgstr "%s: b��d podczas zmiany metody uwierzytelniania\n" -#: src/usermod.c:1352 +#: src/usermod.c:1351 #, c-format msgid "%s: error changing password entry\n" msgstr "%s: b��d podczas zmiany wpisu w pliku z has�ami\n" -#: src/usermod.c:1358 +#: src/usermod.c:1357 #, c-format msgid "%s: error removing password entry\n" msgstr "%s: b��d podczas usuwania wpisu z pliku z has�ami\n" -#: src/usermod.c:1366 +#: src/usermod.c:1365 #, c-format msgid "%s: error adding password dbm entry\n" msgstr "%s: b��d podczas dodawania wpisu dbm do pliku z has�ami\n" -#: src/usermod.c:1373 +#: src/usermod.c:1372 #, c-format msgid "%s: error removing passwd dbm entry\n" msgstr "%s: b��d podczas usuwania wpisu dbm z pliku z has�ami\n" -#: src/usermod.c:1390 +#: src/usermod.c:1389 #, c-format msgid "%s: error removing shadow password entry\n" msgstr "%s: b��d podczas usuwania wpisu z pliku z ukrytymi has�ami\n" -#: src/usermod.c:1405 +#: src/usermod.c:1404 #, c-format msgid "%s: error removing shadow passwd dbm entry\n" msgstr "%s: b��d podczas usuwania wpisu dbm z pliku z ukrytymi has�ami\n" -#: src/usermod.c:1436 +#: src/usermod.c:1435 #, c-format msgid "%s: directory %s exists\n" msgstr "%s: katalog %s isnieje\n" -#: src/usermod.c:1443 +#: src/usermod.c:1442 #, c-format msgid "%s: can't create %s\n" msgstr "%s: nie mog� utworzy� %s\n" -#: src/usermod.c:1449 +#: src/usermod.c:1448 #, c-format msgid "%s: can't chown %s\n" msgstr "%s: nie mog� zmieni� w�a�ciciela %s\n" -#: src/usermod.c:1465 +#: src/usermod.c:1464 #, c-format msgid "%s: cannot rename directory %s to %s\n" msgstr "%s: nie mog� zmieni� nazwy katalogu z %s na %s\n" #. better leave it alone -#: src/usermod.c:1562 +#: src/usermod.c:1561 #, c-format msgid "%s: warning: %s not owned by %s\n" msgstr "%s: ostrze�enie: w�a�cicielem %s nie jest %s\n" -#: src/usermod.c:1568 +#: src/usermod.c:1567 msgid "failed to change mailbox owner" msgstr "nie powiod�a si� zmiana w�a�ciciela skrzynki pocztowej" -#: src/usermod.c:1575 +#: src/usermod.c:1574 msgid "failed to rename mailbox" msgstr "zmiana nazwy skrzynki pocztowej nie powiod�a si�" -#: src/vipw.c:103 +#: src/vipw.c:102 #, c-format msgid "" "\n" @@ -2373,21 +2378,21 @@ msgstr "" "\n" "%s: %s jest niezmieniony\n" -#: src/vipw.c:128 +#: src/vipw.c:127 #, fuzzy msgid "Couldn't lock file" msgstr "%s: nie mog� usun�c blokady z pliku\n" -#: src/vipw.c:135 +#: src/vipw.c:134 msgid "Couldn't make backup" msgstr "" -#: src/vipw.c:174 +#: src/vipw.c:187 #, c-format msgid "%s: can't restore %s: %s (your changes are in %s)\n" msgstr "%s: nie mog� odzyska� %s: %s (twoje zmiany s� w %s)\n" -#: src/vipw.c:213 +#: src/vipw.c:226 msgid "" "Usage:\n" "`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n" diff --git a/po/shadow.pot b/po/shadow.pot index d525967a..8756bdba 100644 --- a/po/shadow.pot +++ b/po/shadow.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-08-27 21:03+0200\n" +"POT-Creation-Date: 2000-08-26 20:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -109,7 +109,7 @@ msgstr "" msgid "You have mail." msgstr "" -#: libmisc/obscure.c:281 src/passwd.c:311 +#: libmisc/obscure.c:281 src/passwd.c:309 #, c-format msgid "Bad password: %s. " msgstr "" @@ -179,24 +179,24 @@ msgstr "" msgid "Dialup Password: " msgstr "" -#: lib/getdef.c:249 +#: lib/getdef.c:253 msgid "Could not allocate space for config info.\n" msgstr "" #. #. * Item was never found. #. -#: lib/getdef.c:303 +#: lib/getdef.c:307 #, c-format msgid "configuration error - unknown item '%s' (notify administrator)\n" msgstr "" -#: lib/getdef.c:390 +#: lib/getdef.c:394 #, c-format msgid "error - lookup '%s' failed\n" msgstr "" -#: lib/getdef.c:398 +#: lib/getdef.c:402 #, c-format msgid "%s not found\n" msgstr "" @@ -205,7 +205,7 @@ msgstr "" #. * get the password from her, and set the salt for #. * the decryption from the group file. #. -#: lib/pwauth.c:54 src/newgrp.c:297 +#: lib/pwauth.c:54 src/newgrp.c:305 msgid "Password: " msgstr "" @@ -333,449 +333,449 @@ msgstr "" msgid "Account Expires:\t" msgstr "" -#: src/chage.c:468 +#: src/chage.c:471 #, c-format msgid "%s: do not include \"l\" with other flags\n" msgstr "" -#: src/chage.c:480 src/chage.c:592 src/login.c:529 +#: src/chage.c:483 src/chage.c:595 src/login.c:529 #, c-format msgid "%s: permission denied\n" msgstr "" -#: src/chage.c:492 src/chpasswd.c:122 +#: src/chage.c:495 src/chpasswd.c:120 #, c-format msgid "%s: can't lock password file\n" msgstr "" -#: src/chage.c:498 src/chpasswd.c:126 +#: src/chage.c:501 src/chpasswd.c:124 #, c-format msgid "%s: can't open password file\n" msgstr "" -#: src/chage.c:505 +#: src/chage.c:508 #, c-format msgid "%s: unknown user: %s\n" msgstr "" -#: src/chage.c:524 +#: src/chage.c:527 #, c-format msgid "%s: can't lock shadow password file\n" msgstr "" -#: src/chage.c:531 +#: src/chage.c:534 #, c-format msgid "%s: can't open shadow password file\n" msgstr "" -#: src/chage.c:613 +#: src/chage.c:616 #, c-format msgid "Changing the aging information for %s\n" msgstr "" -#: src/chage.c:615 +#: src/chage.c:618 #, c-format msgid "%s: error changing fields\n" msgstr "" -#: src/chage.c:642 src/chage.c:705 src/pwunconv.c:184 +#: src/chage.c:645 src/chage.c:708 src/pwunconv.c:183 #, c-format msgid "%s: can't update password file\n" msgstr "" -#: src/chage.c:672 src/pwunconv.c:179 +#: src/chage.c:675 src/pwunconv.c:178 #, c-format msgid "%s: can't update shadow password file\n" msgstr "" -#: src/chage.c:721 src/chage.c:736 src/chfn.c:572 src/chsh.c:411 -#: src/passwd.c:827 src/passwd.c:928 +#: src/chage.c:724 src/chage.c:739 src/chfn.c:571 src/chsh.c:410 +#: src/passwd.c:825 src/passwd.c:926 msgid "Error updating the DBM password entry.\n" msgstr "" -#: src/chage.c:753 +#: src/chage.c:756 #, c-format msgid "%s: can't rewrite shadow password file\n" msgstr "" -#: src/chage.c:767 +#: src/chage.c:770 #, c-format msgid "%s: can't rewrite password file\n" msgstr "" -#: src/chage.c:816 +#: src/chage.c:821 #, c-format msgid "%s: no aging information present\n" msgstr "" -#: src/chfn.c:108 +#: src/chfn.c:107 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ]\n" "\t[ -h home_ph ] [ -o other ] [ user ]\n" msgstr "" -#: src/chfn.c:112 +#: src/chfn.c:111 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]\n" msgstr "" -#: src/chfn.c:164 src/chsh.c:120 +#: src/chfn.c:163 src/chsh.c:119 msgid "Enter the new value, or press return for the default\n" msgstr "" -#: src/chfn.c:167 +#: src/chfn.c:166 msgid "Full Name" msgstr "" -#: src/chfn.c:169 +#: src/chfn.c:168 #, c-format msgid "\tFull Name: %s\n" msgstr "" -#: src/chfn.c:172 +#: src/chfn.c:171 msgid "Room Number" msgstr "" -#: src/chfn.c:174 +#: src/chfn.c:173 #, c-format msgid "\tRoom Number: %s\n" msgstr "" -#: src/chfn.c:177 +#: src/chfn.c:176 msgid "Work Phone" msgstr "" -#: src/chfn.c:179 +#: src/chfn.c:178 #, c-format msgid "\tWork Phone: %s\n" msgstr "" -#: src/chfn.c:182 +#: src/chfn.c:181 msgid "Home Phone" msgstr "" -#: src/chfn.c:184 +#: src/chfn.c:183 #, c-format msgid "\tHome Phone: %s\n" msgstr "" -#: src/chfn.c:187 +#: src/chfn.c:186 msgid "Other" msgstr "" -#: src/chfn.c:300 src/chfn.c:308 src/chfn.c:316 src/chfn.c:324 src/chfn.c:332 -#: src/chfn.c:393 src/passwd.c:1228 +#: src/chfn.c:299 src/chfn.c:307 src/chfn.c:315 src/chfn.c:323 src/chfn.c:331 +#: src/chfn.c:392 src/passwd.c:1226 #, c-format msgid "%s: Permission denied.\n" msgstr "" -#: src/chfn.c:353 src/chsh.c:226 src/passwd.c:1279 +#: src/chfn.c:352 src/chsh.c:225 src/passwd.c:1277 #, c-format msgid "%s: Unknown user %s\n" msgstr "" -#: src/chfn.c:359 src/chsh.c:234 src/passwd.c:1209 +#: src/chfn.c:358 src/chsh.c:233 src/passwd.c:1207 #, c-format msgid "%s: Cannot determine your user name.\n" msgstr "" -#: src/chfn.c:375 src/chsh.c:252 +#: src/chfn.c:374 src/chsh.c:251 #, c-format msgid "%s: cannot change user `%s' on NIS client.\n" msgstr "" -#: src/chfn.c:380 src/chsh.c:259 +#: src/chfn.c:379 src/chsh.c:258 #, c-format msgid "%s: `%s' is the NIS master for this client.\n" msgstr "" -#: src/chfn.c:455 +#: src/chfn.c:454 #, c-format msgid "Changing the user information for %s\n" msgstr "" -#: src/chfn.c:464 +#: src/chfn.c:463 #, c-format msgid "%s: invalid name: \"%s\"\n" msgstr "" -#: src/chfn.c:469 +#: src/chfn.c:468 #, c-format msgid "%s: invalid room number: \"%s\"\n" msgstr "" -#: src/chfn.c:474 +#: src/chfn.c:473 #, c-format msgid "%s: invalid work phone: \"%s\"\n" msgstr "" -#: src/chfn.c:479 +#: src/chfn.c:478 #, c-format msgid "%s: invalid home phone: \"%s\"\n" msgstr "" -#: src/chfn.c:484 +#: src/chfn.c:483 #, c-format msgid "%s: \"%s\" contains illegal characters\n" msgstr "" -#: src/chfn.c:496 +#: src/chfn.c:495 #, c-format msgid "%s: fields too long\n" msgstr "" -#: src/chfn.c:511 src/chsh.c:349 src/gpasswd.c:583 src/passwd.c:1390 +#: src/chfn.c:510 src/chsh.c:348 src/gpasswd.c:582 src/passwd.c:1388 msgid "Cannot change ID to root.\n" msgstr "" -#: src/chfn.c:524 src/chsh.c:363 src/passwd.c:737 src/passwd.c:882 +#: src/chfn.c:523 src/chsh.c:362 src/passwd.c:735 src/passwd.c:880 msgid "Cannot lock the password file; try again later.\n" msgstr "" -#: src/chfn.c:530 src/chsh.c:369 src/passwd.c:742 src/passwd.c:887 +#: src/chfn.c:529 src/chsh.c:368 src/passwd.c:740 src/passwd.c:885 msgid "Cannot open the password file.\n" msgstr "" -#: src/chfn.c:547 src/chsh.c:384 src/passwd.c:748 src/usermod.c:1272 +#: src/chfn.c:546 src/chsh.c:383 src/passwd.c:746 src/usermod.c:1271 #, c-format msgid "%s: %s not found in /etc/passwd\n" msgstr "" -#: src/chfn.c:564 src/chsh.c:403 src/passwd.c:821 src/passwd.c:922 -#: src/passwd.c:962 +#: src/chfn.c:563 src/chsh.c:402 src/passwd.c:819 src/passwd.c:920 +#: src/passwd.c:960 msgid "Error updating the password entry.\n" msgstr "" -#: src/chfn.c:587 src/chsh.c:426 src/passwd.c:834 src/passwd.c:935 +#: src/chfn.c:586 src/chsh.c:425 src/passwd.c:832 src/passwd.c:933 msgid "Cannot commit password file changes.\n" msgstr "" -#: src/chfn.c:594 src/chsh.c:433 +#: src/chfn.c:593 src/chsh.c:432 msgid "Cannot unlock the password file.\n" msgstr "" -#: src/chpasswd.c:78 +#: src/chpasswd.c:76 #, c-format msgid "usage: %s [-e]\n" msgstr "" -#: src/chpasswd.c:134 src/pwconv.c:105 +#: src/chpasswd.c:132 src/pwconv.c:104 #, c-format msgid "%s: can't lock shadow file\n" msgstr "" -#: src/chpasswd.c:139 src/gpasswd.c:609 src/pwconv.c:110 src/pwunconv.c:119 -#: src/pwunconv.c:124 +#: src/chpasswd.c:137 src/gpasswd.c:608 src/pwconv.c:109 src/pwunconv.c:118 +#: src/pwunconv.c:123 #, c-format msgid "%s: can't open shadow file\n" msgstr "" -#: src/chpasswd.c:161 src/newusers.c:418 +#: src/chpasswd.c:159 src/newusers.c:415 #, c-format msgid "%s: line %d: line too long\n" msgstr "" -#: src/chpasswd.c:181 +#: src/chpasswd.c:179 #, c-format msgid "%s: line %d: missing new password\n" msgstr "" -#: src/chpasswd.c:197 +#: src/chpasswd.c:195 #, c-format msgid "%s: line %d: unknown user %s\n" msgstr "" -#: src/chpasswd.c:249 +#: src/chpasswd.c:247 #, c-format msgid "%s: line %d: cannot update password entry\n" msgstr "" -#: src/chpasswd.c:265 src/newusers.c:538 +#: src/chpasswd.c:263 src/newusers.c:535 #, c-format msgid "%s: error detected, changes ignored\n" msgstr "" -#: src/chpasswd.c:276 +#: src/chpasswd.c:274 #, c-format msgid "%s: error updating shadow file\n" msgstr "" -#: src/chpasswd.c:284 +#: src/chpasswd.c:282 #, c-format msgid "%s: error updating password file\n" msgstr "" -#: src/chsh.c:106 +#: src/chsh.c:105 #, c-format msgid "Usage: %s [ -s shell ] [ name ]\n" msgstr "" -#: src/chsh.c:121 +#: src/chsh.c:120 msgid "Login Shell" msgstr "" -#: src/chsh.c:275 src/chsh.c:288 +#: src/chsh.c:274 src/chsh.c:287 #, c-format msgid "You may not change the shell for %s.\n" msgstr "" -#: src/chsh.c:317 +#: src/chsh.c:316 #, c-format msgid "Changing the login shell for %s\n" msgstr "" -#: src/chsh.c:329 +#: src/chsh.c:328 #, c-format msgid "%s: Invalid entry: %s\n" msgstr "" -#: src/chsh.c:334 +#: src/chsh.c:333 #, c-format msgid "%s is an invalid shell.\n" msgstr "" -#: src/dpasswd.c:71 +#: src/dpasswd.c:69 #, c-format msgid "Usage: %s [ -(a|d) ] shell\n" msgstr "" -#: src/dpasswd.c:136 +#: src/dpasswd.c:134 msgid "Shell password: " msgstr "" -#: src/dpasswd.c:142 +#: src/dpasswd.c:140 msgid "re-enter Shell password: " msgstr "" -#: src/dpasswd.c:149 +#: src/dpasswd.c:147 #, c-format msgid "%s: Passwords do not match, try again.\n" msgstr "" -#: src/dpasswd.c:169 +#: src/dpasswd.c:167 #, c-format msgid "%s: can't create %s" msgstr "" -#: src/dpasswd.c:174 +#: src/dpasswd.c:172 #, c-format msgid "%s: can't open %s" msgstr "" -#: src/dpasswd.c:202 +#: src/dpasswd.c:200 #, c-format msgid "%s: Shell %s not found.\n" msgstr "" -#: src/expiry.c:85 +#: src/expiry.c:84 msgid "Usage: expiry { -f | -c }\n" msgstr "" -#: src/expiry.c:138 +#: src/expiry.c:137 #, c-format msgid "%s: WARNING! Must be set-UID root!\n" msgstr "" -#: src/expiry.c:149 +#: src/expiry.c:148 #, c-format msgid "%s: unknown user\n" msgstr "" -#: src/faillog.c:80 +#: src/faillog.c:79 #, c-format msgid "usage: %s [-a|-u user] [-m max] [-r] [-t days] [-l locksecs]\n" msgstr "" -#: src/faillog.c:135 src/lastlog.c:95 +#: src/faillog.c:134 src/lastlog.c:94 #, c-format msgid "Unknown User: %s\n" msgstr "" -#: src/faillog.c:216 +#: src/faillog.c:215 msgid "Username Failures Maximum Latest\n" msgstr "" -#: src/faillog.c:233 +#: src/faillog.c:232 #, c-format msgid " %s on %s" msgstr "" -#: src/faillog.c:237 +#: src/faillog.c:236 #, c-format msgid " [%lds left]" msgstr "" -#: src/faillog.c:240 +#: src/faillog.c:239 #, c-format msgid " [%lds lock]" msgstr "" -#: src/gpasswd.c:91 +#: src/gpasswd.c:89 #, c-format msgid "usage: %s [-r|-R] group\n" msgstr "" -#: src/gpasswd.c:92 +#: src/gpasswd.c:90 #, c-format msgid " %s [-a user] group\n" msgstr "" -#: src/gpasswd.c:93 +#: src/gpasswd.c:91 #, c-format msgid " %s [-d user] group\n" msgstr "" -#: src/gpasswd.c:95 +#: src/gpasswd.c:93 #, c-format msgid " %s [-A user,...] [-M user,...] group\n" msgstr "" -#: src/gpasswd.c:98 +#: src/gpasswd.c:96 #, c-format msgid " %s [-M user,...] group\n" msgstr "" -#: src/gpasswd.c:162 src/gpasswd.c:247 +#: src/gpasswd.c:160 src/gpasswd.c:245 #, c-format msgid "%s: unknown user %s\n" msgstr "" -#: src/gpasswd.c:174 +#: src/gpasswd.c:172 msgid "Permission denied.\n" msgstr "" -#: src/gpasswd.c:259 +#: src/gpasswd.c:257 #, c-format msgid "%s: shadow group passwords required for -A\n" msgstr "" -#: src/gpasswd.c:310 +#: src/gpasswd.c:308 msgid "Who are you?\n" msgstr "" -#: src/gpasswd.c:330 src/newgrp.c:247 +#: src/gpasswd.c:328 src/newgrp.c:251 #, c-format msgid "unknown group: %s\n" msgstr "" -#: src/gpasswd.c:438 +#: src/gpasswd.c:436 #, c-format msgid "Adding user %s to group %s\n" msgstr "" -#: src/gpasswd.c:455 +#: src/gpasswd.c:453 #, c-format msgid "Removing user %s from group %s\n" msgstr "" -#: src/gpasswd.c:468 +#: src/gpasswd.c:466 #, c-format msgid "%s: unknown member %s\n" msgstr "" -#: src/gpasswd.c:515 +#: src/gpasswd.c:513 #, c-format msgid "%s: Not a tty\n" msgstr "" @@ -787,105 +787,105 @@ msgstr "" #. * the old password since the invoker is either the group #. * owner, or root. #. -#: src/gpasswd.c:537 +#: src/gpasswd.c:535 #, c-format msgid "Changing the password for group %s\n" msgstr "" -#: src/gpasswd.c:540 +#: src/gpasswd.c:538 msgid "New Password: " msgstr "" -#: src/gpasswd.c:545 src/passwd.c:424 +#: src/gpasswd.c:543 src/passwd.c:422 msgid "Re-enter new password: " msgstr "" -#: src/gpasswd.c:557 +#: src/gpasswd.c:555 msgid "They don't match; try again" msgstr "" -#: src/gpasswd.c:561 +#: src/gpasswd.c:559 #, c-format msgid "%s: Try again later\n" msgstr "" -#: src/gpasswd.c:591 +#: src/gpasswd.c:590 #, c-format msgid "%s: can't get lock\n" msgstr "" -#: src/gpasswd.c:597 +#: src/gpasswd.c:596 #, c-format msgid "%s: can't get shadow lock\n" msgstr "" -#: src/gpasswd.c:603 +#: src/gpasswd.c:602 #, c-format msgid "%s: can't open file\n" msgstr "" -#: src/gpasswd.c:615 +#: src/gpasswd.c:614 #, c-format msgid "%s: can't update entry\n" msgstr "" -#: src/gpasswd.c:621 +#: src/gpasswd.c:620 #, c-format msgid "%s: can't update shadow entry\n" msgstr "" -#: src/gpasswd.c:627 +#: src/gpasswd.c:626 #, c-format msgid "%s: can't re-write file\n" msgstr "" -#: src/gpasswd.c:633 +#: src/gpasswd.c:632 #, c-format msgid "%s: can't re-write shadow file\n" msgstr "" -#: src/gpasswd.c:641 +#: src/gpasswd.c:640 #, c-format msgid "%s: can't unlock file\n" msgstr "" -#: src/gpasswd.c:646 +#: src/gpasswd.c:645 #, c-format msgid "%s: can't update DBM files\n" msgstr "" -#: src/gpasswd.c:653 +#: src/gpasswd.c:652 #, c-format msgid "%s: can't update DBM shadow files\n" msgstr "" -#: src/groupadd.c:106 +#: src/groupadd.c:105 msgid "usage: groupadd [-g gid [-o]] group\n" msgstr "" -#: src/groupadd.c:174 src/groupadd.c:197 src/groupmod.c:184 src/groupmod.c:231 -#: src/useradd.c:932 src/usermod.c:513 src/usermod.c:649 +#: src/groupadd.c:173 src/groupadd.c:196 src/groupmod.c:183 src/groupmod.c:230 +#: src/useradd.c:931 src/usermod.c:512 src/usermod.c:648 #, c-format msgid "%s: error adding new group entry\n" msgstr "" -#: src/groupadd.c:184 src/groupadd.c:207 src/groupmod.c:200 src/useradd.c:943 -#: src/usermod.c:525 src/usermod.c:661 +#: src/groupadd.c:183 src/groupadd.c:206 src/groupmod.c:199 src/useradd.c:942 +#: src/usermod.c:524 src/usermod.c:660 #, c-format msgid "%s: cannot add new dbm group entry\n" msgstr "" -#: src/groupadd.c:259 src/useradd.c:997 +#: src/groupadd.c:258 src/useradd.c:996 #, c-format msgid "%s: name %s is not unique\n" msgstr "" -#: src/groupadd.c:274 +#: src/groupadd.c:273 #, c-format msgid "%s: gid %ld is not unique\n" msgstr "" -#: src/groupadd.c:298 +#: src/groupadd.c:297 #, c-format msgid "%s: can't get unique gid\n" msgstr "" @@ -893,78 +893,78 @@ msgstr "" #. #. * All invalid group names land here. #. -#: src/groupadd.c:322 src/groupmod.c:342 +#: src/groupadd.c:321 src/groupmod.c:341 #, c-format msgid "%s: %s is a not a valid group name\n" msgstr "" -#: src/groupadd.c:351 src/groupmod.c:368 +#: src/groupadd.c:350 src/groupmod.c:367 #, c-format msgid "%s: invalid group %s\n" msgstr "" -#: src/groupadd.c:368 src/useradd.c:1273 +#: src/groupadd.c:367 src/useradd.c:1272 #, c-format msgid "%s: -O requires NAME=VALUE\n" msgstr "" -#: src/groupadd.c:413 src/groupdel.c:168 src/groupmod.c:404 src/useradd.c:1382 -#: src/userdel.c:273 src/usermod.c:537 +#: src/groupadd.c:412 src/groupdel.c:167 src/groupmod.c:403 src/useradd.c:1381 +#: src/userdel.c:303 src/usermod.c:536 #, c-format msgid "%s: cannot rewrite group file\n" msgstr "" -#: src/groupadd.c:419 src/groupdel.c:174 src/groupmod.c:410 src/useradd.c:1390 -#: src/userdel.c:279 src/usermod.c:674 +#: src/groupadd.c:418 src/groupdel.c:173 src/groupmod.c:409 src/useradd.c:1389 +#: src/userdel.c:309 src/usermod.c:673 #, c-format msgid "%s: cannot rewrite shadow group file\n" msgstr "" -#: src/groupadd.c:438 src/groupdel.c:193 src/groupmod.c:429 src/userdel.c:359 +#: src/groupadd.c:437 src/groupdel.c:192 src/groupmod.c:428 src/userdel.c:389 #, c-format msgid "%s: unable to lock group file\n" msgstr "" -#: src/groupadd.c:442 src/groupdel.c:197 src/groupmod.c:433 +#: src/groupadd.c:441 src/groupdel.c:196 src/groupmod.c:432 #, c-format msgid "%s: unable to open group file\n" msgstr "" -#: src/groupadd.c:447 src/groupdel.c:202 src/groupmod.c:438 src/userdel.c:368 +#: src/groupadd.c:446 src/groupdel.c:201 src/groupmod.c:437 src/userdel.c:398 #, c-format msgid "%s: unable to lock shadow group file\n" msgstr "" -#: src/groupadd.c:452 src/groupdel.c:207 src/groupmod.c:443 +#: src/groupadd.c:451 src/groupdel.c:206 src/groupmod.c:442 #, c-format msgid "%s: unable to open shadow group file\n" msgstr "" -#: src/groupadd.c:519 +#: src/groupadd.c:518 #, c-format msgid "%s: group %s exists\n" msgstr "" -#: src/groupdel.c:87 +#: src/groupdel.c:86 msgid "usage: groupdel group\n" msgstr "" -#: src/groupdel.c:105 src/groupmod.c:188 src/groupmod.c:235 +#: src/groupdel.c:104 src/groupmod.c:187 src/groupmod.c:234 #, c-format msgid "%s: error removing group entry\n" msgstr "" -#: src/groupdel.c:117 src/groupmod.c:207 +#: src/groupdel.c:116 src/groupmod.c:206 #, c-format msgid "%s: error removing group dbm entry\n" msgstr "" -#: src/groupdel.c:132 +#: src/groupdel.c:131 #, c-format msgid "%s: error removing shadow group entry\n" msgstr "" -#: src/groupdel.c:145 src/groupmod.c:253 +#: src/groupdel.c:144 src/groupmod.c:252 #, c-format msgid "%s: error removing shadow group dbm entry\n" msgstr "" @@ -972,76 +972,76 @@ msgstr "" #. #. * Can't remove the group. #. -#: src/groupdel.c:249 +#: src/groupdel.c:248 #, c-format msgid "%s: cannot remove user's primary group.\n" msgstr "" -#: src/groupdel.c:306 src/groupmod.c:502 +#: src/groupdel.c:305 src/groupmod.c:501 #, c-format msgid "%s: group %s does not exist\n" msgstr "" -#: src/groupdel.c:320 src/groupmod.c:518 +#: src/groupdel.c:319 src/groupmod.c:517 #, c-format msgid "%s: group %s is a NIS group\n" msgstr "" -#: src/groupdel.c:326 src/groupmod.c:524 src/userdel.c:731 src/usermod.c:990 +#: src/groupdel.c:325 src/groupmod.c:523 src/userdel.c:761 src/usermod.c:989 #, c-format msgid "%s: %s is the NIS master\n" msgstr "" -#: src/groupmod.c:106 +#: src/groupmod.c:105 msgid "usage: groupmod [-g gid [-o]] [-n name] group\n" msgstr "" -#: src/groupmod.c:166 +#: src/groupmod.c:165 #, c-format msgid "%s: %s not found in /etc/group\n" msgstr "" -#: src/groupmod.c:247 +#: src/groupmod.c:246 #, c-format msgid "%s: cannot add new dbm shadow group entry\n" msgstr "" -#: src/groupmod.c:300 +#: src/groupmod.c:299 #, c-format msgid "%s: %ld is not a unique gid\n" msgstr "" -#: src/groupmod.c:331 +#: src/groupmod.c:330 #, c-format msgid "%s: %s is not a unique name\n" msgstr "" -#: src/groups.c:63 +#: src/groups.c:62 #, c-format msgid "unknown user %s\n" msgstr "" -#: src/grpck.c:99 +#: src/grpck.c:98 #, c-format msgid "Usage: %s [ -r ] [ group [ gshadow ] ]\n" msgstr "" -#: src/grpck.c:101 +#: src/grpck.c:100 #, c-format msgid "Usage: %s [ -r ] [ group ]\n" msgstr "" -#: src/grpck.c:120 src/pwck.c:120 +#: src/grpck.c:119 src/pwck.c:119 msgid "No" msgstr "" -#: src/grpck.c:235 src/grpck.c:243 src/pwck.c:217 src/pwck.c:226 +#: src/grpck.c:234 src/grpck.c:242 src/pwck.c:216 src/pwck.c:225 #, c-format msgid "%s: cannot lock file %s\n" msgstr "" -#: src/grpck.c:258 src/grpck.c:266 src/mkpasswd.c:217 src/pwck.c:242 -#: src/pwck.c:251 +#: src/grpck.c:257 src/grpck.c:265 src/mkpasswd.c:216 src/pwck.c:241 +#: src/pwck.c:250 #, c-format msgid "%s: cannot open file %s\n" msgstr "" @@ -1050,13 +1050,13 @@ msgstr "" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:299 +#: src/grpck.c:298 msgid "invalid group file entry\n" msgstr "" -#: src/grpck.c:300 src/grpck.c:363 src/grpck.c:455 src/grpck.c:518 -#: src/grpck.c:535 src/pwck.c:287 src/pwck.c:349 src/pwck.c:456 src/pwck.c:518 -#: src/pwck.c:542 +#: src/grpck.c:299 src/grpck.c:362 src/grpck.c:454 src/grpck.c:517 +#: src/grpck.c:534 src/pwck.c:286 src/pwck.c:348 src/pwck.c:455 src/pwck.c:517 +#: src/pwck.c:541 #, c-format msgid "delete line `%s'? " msgstr "" @@ -1065,26 +1065,26 @@ msgstr "" #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:362 +#: src/grpck.c:361 msgid "duplicate group entry\n" msgstr "" -#: src/grpck.c:379 +#: src/grpck.c:378 #, c-format msgid "invalid group name `%s'\n" msgstr "" -#: src/grpck.c:389 +#: src/grpck.c:388 #, c-format msgid "group %s: bad GID (%d)\n" msgstr "" -#: src/grpck.c:415 +#: src/grpck.c:414 #, c-format msgid "group %s: no user %s\n" msgstr "" -#: src/grpck.c:417 src/grpck.c:586 +#: src/grpck.c:416 src/grpck.c:585 #, c-format msgid "delete member `%s'? " msgstr "" @@ -1093,7 +1093,7 @@ msgstr "" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:454 +#: src/grpck.c:453 msgid "invalid shadow group file entry\n" msgstr "" @@ -1101,65 +1101,65 @@ msgstr "" #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:517 +#: src/grpck.c:516 msgid "duplicate shadow group entry\n" msgstr "" -#: src/grpck.c:534 +#: src/grpck.c:533 msgid "no matching group file entry\n" msgstr "" -#: src/grpck.c:554 +#: src/grpck.c:553 #, c-format msgid "shadow group %s: no administrative user %s\n" msgstr "" -#: src/grpck.c:556 +#: src/grpck.c:555 #, c-format msgid "delete administrative member `%s'? " msgstr "" -#: src/grpck.c:584 +#: src/grpck.c:583 #, c-format msgid "shadow group %s: no user %s\n" msgstr "" -#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581 +#: src/grpck.c:610 src/grpck.c:616 src/pwck.c:572 src/pwck.c:580 #, c-format msgid "%s: cannot update file %s\n" msgstr "" -#: src/grpck.c:641 src/pwck.c:607 +#: src/grpck.c:640 src/pwck.c:606 #, c-format msgid "%s: the files have been updated; run mkpasswd\n" msgstr "" -#: src/grpck.c:642 src/grpck.c:646 src/pwck.c:608 src/pwck.c:612 +#: src/grpck.c:641 src/grpck.c:645 src/pwck.c:607 src/pwck.c:611 #, c-format msgid "%s: no changes\n" msgstr "" -#: src/grpck.c:645 src/pwck.c:611 +#: src/grpck.c:644 src/pwck.c:610 #, c-format msgid "%s: the files have been updated\n" msgstr "" -#: src/grpconv.c:63 src/grpunconv.c:64 +#: src/grpconv.c:62 src/grpunconv.c:63 #, c-format msgid "%s: can't lock group file\n" msgstr "" -#: src/grpconv.c:68 src/grpunconv.c:69 +#: src/grpconv.c:67 src/grpunconv.c:68 #, c-format msgid "%s: can't open group file\n" msgstr "" -#: src/grpconv.c:73 src/grpunconv.c:74 +#: src/grpconv.c:72 src/grpunconv.c:73 #, c-format msgid "%s: can't lock shadow group file\n" msgstr "" -#: src/grpconv.c:78 src/grpunconv.c:79 +#: src/grpconv.c:77 src/grpunconv.c:78 #, c-format msgid "%s: can't open shadow group file\n" msgstr "" @@ -1167,85 +1167,85 @@ msgstr "" #. #. * This shouldn't happen (the entry exists) but... #. -#: src/grpconv.c:94 +#: src/grpconv.c:93 #, c-format msgid "%s: can't remove shadow group %s\n" msgstr "" -#: src/grpconv.c:135 src/pwconv.c:161 +#: src/grpconv.c:134 src/pwconv.c:160 #, c-format msgid "%s: can't update shadow entry for %s\n" msgstr "" -#: src/grpconv.c:144 src/grpunconv.c:95 +#: src/grpconv.c:143 src/grpunconv.c:94 #, c-format msgid "%s: can't update entry for group %s\n" msgstr "" -#: src/grpconv.c:151 src/grpunconv.c:103 +#: src/grpconv.c:150 src/grpunconv.c:102 #, c-format msgid "%s: can't update shadow group file\n" msgstr "" -#: src/grpconv.c:155 src/grpunconv.c:108 +#: src/grpconv.c:154 src/grpunconv.c:107 #, c-format msgid "%s: can't update group file\n" msgstr "" -#: src/grpconv.c:170 src/grpunconv.c:129 +#: src/grpconv.c:169 src/grpunconv.c:128 #, c-format msgid "%s: not configured for shadow group support.\n" msgstr "" -#: src/grpunconv.c:113 +#: src/grpunconv.c:112 #, c-format msgid "%s: can't delete shadow group file\n" msgstr "" -#: src/id.c:57 +#: src/id.c:56 msgid "usage: id [ -a ]\n" msgstr "" -#: src/id.c:59 +#: src/id.c:58 msgid "usage: id\n" msgstr "" -#: src/id.c:119 +#: src/id.c:118 #, c-format msgid "uid=%d(%s)" msgstr "" -#: src/id.c:121 +#: src/id.c:120 #, c-format msgid "uid=%d" msgstr "" -#: src/id.c:125 +#: src/id.c:124 #, c-format msgid " gid=%d(%s)" msgstr "" -#: src/id.c:127 +#: src/id.c:126 #, c-format msgid " gid=%d" msgstr "" -#: src/id.c:137 +#: src/id.c:136 #, c-format msgid " euid=%d(%s)" msgstr "" -#: src/id.c:139 +#: src/id.c:138 #, c-format msgid " euid=%d" msgstr "" -#: src/id.c:144 +#: src/id.c:143 #, c-format msgid " egid=%d(%s)" msgstr "" -#: src/id.c:146 +#: src/id.c:145 #, c-format msgid " egid=%d" msgstr "" @@ -1258,54 +1258,54 @@ msgstr "" #. * where "###" is a numerical value and "aaa" is the #. * corresponding name for each respective numerical value. #. -#: src/id.c:167 +#: src/id.c:166 msgid " groups=" msgstr "" -#: src/lastlog.c:168 +#: src/lastlog.c:167 msgid "Username Port From Latest\n" msgstr "" -#: src/lastlog.c:170 +#: src/lastlog.c:169 msgid "Username Port Latest\n" msgstr "" -#: src/lastlog.c:184 +#: src/lastlog.c:183 msgid "**Never logged in**" msgstr "" -#: src/login.c:199 +#: src/login.c:198 #, c-format msgid "usage: %s [-p] [name]\n" msgstr "" -#: src/login.c:202 +#: src/login.c:201 #, c-format msgid " %s [-p] [-h host] [-f name]\n" msgstr "" -#: src/login.c:204 +#: src/login.c:203 #, c-format msgid " %s [-p] -r host\n" msgstr "" -#: src/login.c:287 +#: src/login.c:286 msgid "Invalid login time\n" msgstr "" -#: src/login.c:342 +#: src/login.c:341 msgid "" "\n" "System closed for routine maintenance\n" msgstr "" -#: src/login.c:352 +#: src/login.c:351 msgid "" "\n" "[Disconnect bypassed -- root login allowed.]\n" msgstr "" -#: src/login.c:391 +#: src/login.c:390 #, c-format msgid "" "\n" @@ -1322,41 +1322,41 @@ msgstr "" msgid " on `%.100s'" msgstr "" -#: src/login.c:807 +#: src/login.c:834 #, c-format msgid "" "\n" "%s login: " msgstr "" -#: src/login.c:809 +#: src/login.c:836 msgid "login: " msgstr "" -#: src/login.c:991 src/sulogin.c:233 +#: src/login.c:1026 src/sulogin.c:231 msgid "Login incorrect" msgstr "" -#: src/login.c:1163 +#: src/login.c:1213 msgid "Warning: login re-enabled after temporary lockout.\n" msgstr "" -#: src/login.c:1173 +#: src/login.c:1223 #, c-format msgid "Last login: %s on %s" msgstr "" -#: src/login.c:1176 +#: src/login.c:1226 #, c-format msgid "Last login: %.19s on %s" msgstr "" -#: src/login.c:1181 +#: src/login.c:1231 #, c-format msgid " from %.*s" msgstr "" -#: src/login.c:1246 +#: src/login.c:1303 msgid "Starting rad_login\n" msgstr "" @@ -1365,285 +1365,285 @@ msgstr "" msgid "%s: no DBM database on system - no action performed\n" msgstr "" -#: src/mkpasswd.c:246 src/mkpasswd.c:250 +#: src/mkpasswd.c:245 src/mkpasswd.c:249 #, c-format msgid "%s: cannot overwrite file %s\n" msgstr "" -#: src/mkpasswd.c:264 +#: src/mkpasswd.c:263 #, c-format msgid "%s: cannot open DBM files for %s\n" msgstr "" -#: src/mkpasswd.c:297 +#: src/mkpasswd.c:296 #, c-format msgid "%s: the beginning with " msgstr "" -#: src/mkpasswd.c:322 +#: src/mkpasswd.c:321 #, c-format msgid "%s: error parsing line \"%s\"\n" msgstr "" -#: src/mkpasswd.c:327 src/mkpasswd.c:329 src/mkpasswd.c:331 src/mkpasswd.c:333 +#: src/mkpasswd.c:326 src/mkpasswd.c:328 src/mkpasswd.c:330 src/mkpasswd.c:332 msgid "adding record for name " msgstr "" -#: src/mkpasswd.c:337 src/mkpasswd.c:342 src/mkpasswd.c:346 src/mkpasswd.c:350 +#: src/mkpasswd.c:336 src/mkpasswd.c:341 src/mkpasswd.c:345 src/mkpasswd.c:349 #, c-format msgid "%s: error adding record for " msgstr "" -#: src/mkpasswd.c:368 +#: src/mkpasswd.c:367 #, c-format msgid "added %d entries, longest was %d\n" msgstr "" -#: src/mkpasswd.c:383 +#: src/mkpasswd.c:382 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp|sg ] file\n" msgstr "" -#: src/mkpasswd.c:385 +#: src/mkpasswd.c:384 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp ] file\n" msgstr "" -#: src/mkpasswd.c:388 +#: src/mkpasswd.c:387 #, c-format msgid "Usage: %s [ -vf ] [ -p|g ] file\n" msgstr "" -#: src/newgrp.c:67 +#: src/newgrp.c:66 msgid "usage: newgrp [ - ] [ group ]\n" msgstr "" -#: src/newgrp.c:69 +#: src/newgrp.c:68 msgid "usage: sg group [[-c] command ]\n" msgstr "" -#: src/newgrp.c:122 +#: src/newgrp.c:125 #, c-format msgid "unknown uid: %d\n" msgstr "" -#: src/newgrp.c:198 +#: src/newgrp.c:201 #, c-format msgid "unknown gid: %ld\n" msgstr "" -#: src/newgrp.c:242 +#: src/newgrp.c:245 #, c-format msgid "unknown gid: %d\n" msgstr "" -#: src/newgrp.c:315 src/newgrp.c:324 +#: src/newgrp.c:323 src/newgrp.c:332 msgid "Sorry.\n" msgstr "" -#: src/newgrp.c:356 +#: src/newgrp.c:364 msgid "too many groups\n" msgstr "" -#: src/newusers.c:79 +#: src/newusers.c:76 #, c-format msgid "Usage: %s [ input ]\n" msgstr "" -#: src/newusers.c:367 +#: src/newusers.c:364 #, c-format msgid "%s: can't lock /etc/passwd.\n" msgstr "" -#: src/newusers.c:378 +#: src/newusers.c:375 #, c-format msgid "%s: can't lock files, try again later\n" msgstr "" -#: src/newusers.c:393 +#: src/newusers.c:390 #, c-format msgid "%s: can't open files\n" msgstr "" -#: src/newusers.c:438 +#: src/newusers.c:435 #, c-format msgid "%s: line %d: invalid line\n" msgstr "" -#: src/newusers.c:456 +#: src/newusers.c:453 #, c-format msgid "%s: line %d: can't create GID\n" msgstr "" -#: src/newusers.c:472 +#: src/newusers.c:469 #, c-format msgid "%s: line %d: can't create UID\n" msgstr "" -#: src/newusers.c:484 +#: src/newusers.c:481 #, c-format msgid "%s: line %d: cannot find user %s\n" msgstr "" -#: src/newusers.c:492 +#: src/newusers.c:489 #, c-format msgid "%s: line %d: can't update password\n" msgstr "" -#: src/newusers.c:509 +#: src/newusers.c:506 #, c-format msgid "%s: line %d: mkdir failed\n" msgstr "" -#: src/newusers.c:513 +#: src/newusers.c:510 #, c-format msgid "%s: line %d: chown failed\n" msgstr "" -#: src/newusers.c:522 +#: src/newusers.c:519 #, c-format msgid "%s: line %d: can't update entry\n" msgstr "" -#: src/newusers.c:553 +#: src/newusers.c:550 #, c-format msgid "%s: error updating files\n" msgstr "" -#: src/passwd.c:241 +#: src/passwd.c:239 #, c-format msgid "usage: %s [ -f | -s ] [ name ]\n" msgstr "" -#: src/passwd.c:244 +#: src/passwd.c:242 #, c-format msgid " %s [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name\n" msgstr "" -#: src/passwd.c:247 +#: src/passwd.c:245 #, c-format msgid " %s { -l | -u | -d | -S | -e } name\n" msgstr "" -#: src/passwd.c:349 +#: src/passwd.c:347 #, c-format msgid "User %s has a TCFS key, his old password is required.\n" msgstr "" -#: src/passwd.c:350 +#: src/passwd.c:348 msgid "You can use -t option to force the change.\n" msgstr "" -#: src/passwd.c:356 +#: src/passwd.c:354 msgid "Old password: " msgstr "" -#: src/passwd.c:363 +#: src/passwd.c:361 #, c-format msgid "Incorrect password for `%s'\n" msgstr "" -#: src/passwd.c:376 +#: src/passwd.c:374 #, c-format msgid "Warning: user %s has a TCFS key.\n" msgstr "" -#: src/passwd.c:394 +#: src/passwd.c:392 #, c-format msgid "" "Enter the new password (minimum of %d, maximum of %d characters)\n" "Please use a combination of upper and lower case letters and numbers.\n" msgstr "" -#: src/passwd.c:401 +#: src/passwd.c:399 msgid "New password: " msgstr "" -#: src/passwd.c:411 +#: src/passwd.c:409 msgid "Try again.\n" msgstr "" -#: src/passwd.c:420 +#: src/passwd.c:418 msgid "" "\n" "Warning: weak password (enter it again to use it anyway).\n" msgstr "" -#: src/passwd.c:429 +#: src/passwd.c:427 msgid "They don't match; try again.\n" msgstr "" -#: src/passwd.c:514 src/passwd.c:530 +#: src/passwd.c:512 src/passwd.c:528 #, c-format msgid "The password for %s cannot be changed.\n" msgstr "" -#: src/passwd.c:558 +#: src/passwd.c:556 #, c-format msgid "Sorry, the password for %s cannot be changed yet.\n" msgstr "" -#: src/passwd.c:695 +#: src/passwd.c:693 #, c-format msgid "%s: out of memory\n" msgstr "" -#: src/passwd.c:847 +#: src/passwd.c:845 msgid "Cannot lock the TCFS key database; try again later\n" msgstr "" -#: src/passwd.c:853 +#: src/passwd.c:851 msgid "Cannot open the TCFS key database.\n" msgstr "" -#: src/passwd.c:859 +#: src/passwd.c:857 msgid "Error updating the TCFS key database.\n" msgstr "" -#: src/passwd.c:864 +#: src/passwd.c:862 msgid "Cannot commit TCFS changes.\n" msgstr "" -#: src/passwd.c:1071 +#: src/passwd.c:1069 #, c-format msgid "%s: Cannot execute %s" msgstr "" -#: src/passwd.c:1178 +#: src/passwd.c:1176 #, c-format msgid "%s: repository %s not supported\n" msgstr "" -#: src/passwd.c:1265 +#: src/passwd.c:1263 #, c-format msgid "%s: Permission denied\n" msgstr "" -#: src/passwd.c:1289 +#: src/passwd.c:1287 #, c-format msgid "You may not change the password for %s.\n" msgstr "" -#: src/passwd.c:1354 +#: src/passwd.c:1352 #, c-format msgid "Changing password for %s\n" msgstr "" -#: src/passwd.c:1358 +#: src/passwd.c:1356 #, c-format msgid "The password for %s is unchanged.\n" msgstr "" -#: src/passwd.c:1414 +#: src/passwd.c:1412 msgid "Password changed.\n" msgstr "" -#: src/pwck.c:99 +#: src/pwck.c:98 #, c-format msgid "Usage: %s [ -qr ] [ passwd [ shadow ] ]\n" msgstr "" -#: src/pwck.c:101 +#: src/pwck.c:100 #, c-format msgid "Usage: %s [ -qr ] [ passwd ]\n" msgstr "" @@ -1652,7 +1652,7 @@ msgstr "" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:286 +#: src/pwck.c:285 msgid "invalid password file entry\n" msgstr "" @@ -1660,16 +1660,16 @@ msgstr "" #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:348 +#: src/pwck.c:347 msgid "duplicate password entry\n" msgstr "" -#: src/pwck.c:364 +#: src/pwck.c:363 #, c-format msgid "invalid user name `%s'\n" msgstr "" -#: src/pwck.c:374 +#: src/pwck.c:373 #, c-format msgid "user %s: bad UID (%d)\n" msgstr "" @@ -1677,7 +1677,7 @@ msgstr "" #. #. * No primary group, just give a warning #. -#: src/pwck.c:389 +#: src/pwck.c:388 #, c-format msgid "user %s: no group %d\n" msgstr "" @@ -1685,7 +1685,7 @@ msgstr "" #. #. * Home directory doesn't exist, give a warning #. -#: src/pwck.c:404 +#: src/pwck.c:403 #, c-format msgid "user %s: directory %s does not exist\n" msgstr "" @@ -1693,7 +1693,7 @@ msgstr "" #. #. * Login shell doesn't exist, give a warning #. -#: src/pwck.c:419 +#: src/pwck.c:418 #, c-format msgid "user %s: program %s does not exist\n" msgstr "" @@ -1702,7 +1702,7 @@ msgstr "" #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:455 +#: src/pwck.c:454 msgid "invalid shadow password file entry\n" msgstr "" @@ -1710,7 +1710,7 @@ msgstr "" #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:517 +#: src/pwck.c:516 msgid "duplicate shadow password entry\n" msgstr "" @@ -1718,41 +1718,41 @@ msgstr "" #. * Tell the user this entry has no matching #. * /etc/passwd entry and ask them to delete it. #. -#: src/pwck.c:541 +#: src/pwck.c:540 msgid "no matching password file entry\n" msgstr "" -#: src/pwck.c:558 +#: src/pwck.c:557 #, c-format msgid "user %s: last password change in the future\n" msgstr "" -#: src/pwconv.c:95 src/pwunconv.c:109 +#: src/pwconv.c:94 src/pwunconv.c:108 #, c-format msgid "%s: can't lock passwd file\n" msgstr "" -#: src/pwconv.c:100 src/pwunconv.c:114 +#: src/pwconv.c:99 src/pwunconv.c:113 #, c-format msgid "%s: can't open passwd file\n" msgstr "" -#: src/pwconv.c:127 +#: src/pwconv.c:126 #, c-format msgid "%s: can't remove shadow entry for %s\n" msgstr "" -#: src/pwconv.c:170 +#: src/pwconv.c:169 #, c-format msgid "%s: can't update passwd entry for %s\n" msgstr "" -#: src/pwconv.c:177 +#: src/pwconv.c:176 #, c-format msgid "%s: can't update shadow file\n" msgstr "" -#: src/pwconv.c:181 +#: src/pwconv.c:180 #, c-format msgid "%s: can't update passwd file\n" msgstr "" @@ -1762,71 +1762,71 @@ msgstr "" msgid "%s: Shadow passwords are not configured.\n" msgstr "" -#: src/pwunconv.c:172 +#: src/pwunconv.c:171 #, c-format msgid "%s: can't update entry for user %s\n" msgstr "" -#: src/pwunconv.c:189 +#: src/pwunconv.c:188 #, c-format msgid "%s: can't delete shadow password file\n" msgstr "" -#: src/su.c:145 +#: src/su.c:140 msgid "Sorry." msgstr "" -#: src/su.c:227 +#: src/su.c:222 #, c-format msgid "%s: must be run from a terminal\n" msgstr "" -#: src/su.c:319 +#: src/su.c:311 #, c-format msgid "%s: pam_start: error %d\n" msgstr "" -#: src/su.c:345 +#: src/su.c:337 #, c-format msgid "Unknown id: %s\n" msgstr "" #. access denied (-1) or unexpected value -#: src/su.c:380 src/su.c:395 +#: src/su.c:372 src/su.c:387 #, c-format msgid "You are not authorized to su %s\n" msgstr "" #. require own password -#: src/su.c:391 +#: src/su.c:383 msgid "(Enter your own password.)" msgstr "" -#: src/su.c:412 +#: src/su.c:404 #, c-format msgid "%s: permission denied (shell).\n" msgstr "" -#: src/su.c:436 +#: src/su.c:428 #, c-format msgid "" "%s: %s\n" "(Ignored)\n" msgstr "" -#: src/su.c:605 +#: src/su.c:628 msgid "No shell\n" msgstr "" #. must be a password file! -#: src/sulogin.c:138 +#: src/sulogin.c:136 msgid "No password file\n" msgstr "" #. #. * Fail secure #. -#: src/sulogin.c:180 +#: src/sulogin.c:178 msgid "No password entry for 'root'\n" msgstr "" @@ -1835,7 +1835,7 @@ msgstr "" #. * given we just exit. #. #. get a password for root -#: src/sulogin.c:194 +#: src/sulogin.c:192 msgid "" "\n" "Type control-d to proceed with normal startup,\n" @@ -1843,515 +1843,520 @@ msgid "" msgstr "" #. make new environment active -#: src/sulogin.c:243 +#: src/sulogin.c:241 msgid "Entering System Maintenance Mode\n" msgstr "" -#: src/useradd.c:244 +#: src/useradd.c:243 #, c-format msgid "%s: rebuild the group database\n" msgstr "" -#: src/useradd.c:251 +#: src/useradd.c:250 #, c-format msgid "%s: rebuild the shadow group database\n" msgstr "" -#: src/useradd.c:288 src/usermod.c:941 +#: src/useradd.c:287 src/usermod.c:940 #, c-format msgid "%s: invalid numeric argument `%s'\n" msgstr "" -#: src/useradd.c:344 +#: src/useradd.c:343 #, c-format msgid "%s: unknown gid %s\n" msgstr "" -#: src/useradd.c:351 src/useradd.c:643 src/useradd.c:1229 src/usermod.c:253 -#: src/usermod.c:1072 +#: src/useradd.c:350 src/useradd.c:642 src/useradd.c:1228 src/usermod.c:252 +#: src/usermod.c:1071 #, c-format msgid "%s: unknown group %s\n" msgstr "" -#: src/useradd.c:419 +#: src/useradd.c:418 #, c-format msgid "group=%s,%ld basedir=%s skel=%s\n" msgstr "" -#: src/useradd.c:422 +#: src/useradd.c:421 #, c-format msgid "shell=%s " msgstr "" -#: src/useradd.c:424 +#: src/useradd.c:423 #, c-format msgid "inactive=%ld expire=%s" msgstr "" -#: src/useradd.c:428 +#: src/useradd.c:427 #, c-format msgid "GROUP=%ld\n" msgstr "" -#: src/useradd.c:429 +#: src/useradd.c:428 #, c-format msgid "HOME=%s\n" msgstr "" -#: src/useradd.c:431 +#: src/useradd.c:430 #, c-format msgid "INACTIVE=%ld\n" msgstr "" -#: src/useradd.c:432 +#: src/useradd.c:431 #, c-format msgid "EXPIRE=%s\n" msgstr "" -#: src/useradd.c:434 +#: src/useradd.c:433 #, c-format msgid "SHELL=%s\n" msgstr "" -#: src/useradd.c:435 +#: src/useradd.c:434 #, c-format msgid "SKEL=%s\n" msgstr "" -#: src/useradd.c:471 +#: src/useradd.c:470 #, c-format msgid "%s: cannot create new defaults file\n" msgstr "" -#: src/useradd.c:565 src/useradd.c:576 +#: src/useradd.c:564 src/useradd.c:575 #, c-format msgid "%s: rename: %s" msgstr "" -#: src/useradd.c:663 src/usermod.c:273 +#: src/useradd.c:662 src/usermod.c:272 #, c-format msgid "%s: group `%s' is a NIS group.\n" msgstr "" -#: src/useradd.c:671 src/usermod.c:281 +#: src/useradd.c:670 src/usermod.c:280 #, c-format msgid "%s: too many groups specified (max %d).\n" msgstr "" -#: src/useradd.c:703 src/usermod.c:313 +#: src/useradd.c:702 src/usermod.c:312 #, c-format msgid "usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n" msgstr "" -#: src/useradd.c:706 +#: src/useradd.c:705 msgid "\t\t[-d home] [-s shell] [-c comment] [-m [-k template]]\n" msgstr "" -#: src/useradd.c:709 src/usermod.c:319 +#: src/useradd.c:708 src/usermod.c:318 msgid "[-f inactive] [-e expire ] " msgstr "" -#: src/useradd.c:712 +#: src/useradd.c:711 msgid "[-A program] " msgstr "" -#: src/useradd.c:714 src/usermod.c:324 +#: src/useradd.c:713 src/usermod.c:323 msgid "[-p passwd] name\n" msgstr "" -#: src/useradd.c:716 +#: src/useradd.c:715 #, c-format msgid " %s\t-D [-g group] [-b base] [-s shell]\n" msgstr "" -#: src/useradd.c:719 +#: src/useradd.c:718 msgid "\t\t[-f inactive] [-e expire ]\n" msgstr "" -#: src/useradd.c:816 src/usermod.c:446 +#: src/useradd.c:815 src/usermod.c:445 #, c-format msgid "%s: error locking group file\n" msgstr "" -#: src/useradd.c:820 src/usermod.c:451 +#: src/useradd.c:819 src/usermod.c:450 #, c-format msgid "%s: error opening group file\n" msgstr "" -#: src/useradd.c:825 src/usermod.c:558 +#: src/useradd.c:824 src/usermod.c:557 #, c-format msgid "%s: error locking shadow group file\n" msgstr "" -#: src/useradd.c:830 src/usermod.c:564 +#: src/useradd.c:829 src/usermod.c:563 #, c-format msgid "%s: error opening shadow group file\n" msgstr "" -#: src/useradd.c:1002 +#: src/useradd.c:1001 #, c-format msgid "%s: uid %d is not unique\n" msgstr "" -#: src/useradd.c:1032 +#: src/useradd.c:1031 #, c-format msgid "%s: can't get unique uid\n" msgstr "" -#: src/useradd.c:1140 src/useradd.c:1284 src/usermod.c:1020 src/usermod.c:1031 -#: src/usermod.c:1041 src/usermod.c:1087 src/usermod.c:1122 +#: src/useradd.c:1139 src/useradd.c:1283 src/usermod.c:1019 src/usermod.c:1030 +#: src/usermod.c:1040 src/usermod.c:1086 src/usermod.c:1121 #, c-format msgid "%s: invalid field `%s'\n" msgstr "" -#: src/useradd.c:1154 +#: src/useradd.c:1153 #, c-format msgid "%s: invalid base directory `%s'\n" msgstr "" -#: src/useradd.c:1164 +#: src/useradd.c:1163 #, c-format msgid "%s: invalid comment `%s'\n" msgstr "" -#: src/useradd.c:1174 +#: src/useradd.c:1173 #, c-format msgid "%s: invalid home directory `%s'\n" msgstr "" -#: src/useradd.c:1192 src/usermod.c:1054 +#: src/useradd.c:1191 src/usermod.c:1053 #, c-format msgid "%s: invalid date `%s'\n" msgstr "" -#: src/useradd.c:1204 +#: src/useradd.c:1203 #, c-format msgid "%s: shadow passwords required for -e\n" msgstr "" -#: src/useradd.c:1219 +#: src/useradd.c:1218 #, c-format msgid "%s: shadow passwords required for -f\n" msgstr "" -#: src/useradd.c:1293 +#: src/useradd.c:1292 #, c-format msgid "%s: invalid shell `%s'\n" msgstr "" -#: src/useradd.c:1334 +#: src/useradd.c:1333 #, c-format msgid "%s: invalid user name `%s'\n" msgstr "" -#: src/useradd.c:1370 src/userdel.c:262 src/usermod.c:1184 +#: src/useradd.c:1369 src/userdel.c:292 src/usermod.c:1183 #, c-format msgid "%s: cannot rewrite password file\n" msgstr "" -#: src/useradd.c:1375 src/userdel.c:265 src/usermod.c:1189 +#: src/useradd.c:1374 src/userdel.c:295 src/usermod.c:1188 #, c-format msgid "%s: cannot rewrite shadow password file\n" msgstr "" -#: src/useradd.c:1415 src/userdel.c:329 src/usermod.c:1224 +#: src/useradd.c:1414 src/userdel.c:359 src/usermod.c:1223 #, c-format msgid "%s: unable to lock password file\n" msgstr "" -#: src/useradd.c:1419 src/userdel.c:333 src/usermod.c:1228 +#: src/useradd.c:1418 src/userdel.c:363 src/usermod.c:1227 #, c-format msgid "%s: unable to open password file\n" msgstr "" -#: src/useradd.c:1425 src/userdel.c:338 src/usermod.c:1233 +#: src/useradd.c:1424 src/userdel.c:368 src/usermod.c:1232 #, c-format msgid "%s: cannot lock shadow password file\n" msgstr "" -#: src/useradd.c:1431 src/userdel.c:343 src/usermod.c:1238 +#: src/useradd.c:1430 src/userdel.c:373 src/usermod.c:1237 #, c-format msgid "%s: cannot open shadow password file\n" msgstr "" -#: src/useradd.c:1530 src/usermod.c:1325 +#: src/useradd.c:1529 src/usermod.c:1324 #, c-format msgid "%s: error adding authentication method\n" msgstr "" -#: src/useradd.c:1553 +#: src/useradd.c:1552 #, c-format msgid "%s: error adding new password entry\n" msgstr "" -#: src/useradd.c:1568 +#: src/useradd.c:1567 #, c-format msgid "%s: error updating password dbm entry\n" msgstr "" -#: src/useradd.c:1584 src/usermod.c:1384 +#: src/useradd.c:1583 src/usermod.c:1383 #, c-format msgid "%s: error adding new shadow password entry\n" msgstr "" -#: src/useradd.c:1600 src/usermod.c:1399 +#: src/useradd.c:1599 src/usermod.c:1398 #, c-format msgid "%s: error updating shadow passwd dbm entry\n" msgstr "" -#: src/useradd.c:1632 +#: src/useradd.c:1631 #, c-format msgid "%s: cannot create directory %s\n" msgstr "" -#: src/useradd.c:1709 src/usermod.c:1162 +#: src/useradd.c:1708 src/usermod.c:1161 #, c-format msgid "%s: user %s exists\n" msgstr "" -#: src/useradd.c:1739 +#: src/useradd.c:1738 #, c-format msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n" msgstr "" -#: src/userdel.c:128 +#: src/userdel.c:127 #, c-format msgid "usage: %s [-r] name\n" msgstr "" -#: src/userdel.c:175 src/userdel.c:230 +#: src/userdel.c:178 src/userdel.c:260 #, c-format msgid "%s: error updating group entry\n" msgstr "" -#: src/userdel.c:185 src/userdel.c:239 +#: src/userdel.c:188 src/userdel.c:269 #, c-format msgid "%s: cannot update dbm group entry\n" msgstr "" -#: src/userdel.c:270 +#: src/userdel.c:215 +#, c-format +msgid "%s: cannot remove dbm group entry\n" +msgstr "" + +#: src/userdel.c:300 #, c-format msgid "%s: cannot rewrite TCFS key file\n" msgstr "" -#: src/userdel.c:350 +#: src/userdel.c:380 #, c-format msgid "%s: cannot lock TCFS key file\n" msgstr "" -#: src/userdel.c:354 +#: src/userdel.c:384 #, c-format msgid "%s: cannot open TCFS key file\n" msgstr "" -#: src/userdel.c:363 +#: src/userdel.c:393 #, c-format msgid "%s: cannot open group file\n" msgstr "" -#: src/userdel.c:373 +#: src/userdel.c:403 #, c-format msgid "%s: cannot open shadow group file\n" msgstr "" -#: src/userdel.c:404 src/userdel.c:419 +#: src/userdel.c:434 src/userdel.c:449 #, c-format msgid "%s: error deleting authentication\n" msgstr "" -#: src/userdel.c:428 +#: src/userdel.c:458 #, c-format msgid "%s: error deleting password entry\n" msgstr "" -#: src/userdel.c:431 +#: src/userdel.c:461 #, c-format msgid "%s: error deleting shadow password entry\n" msgstr "" -#: src/userdel.c:440 +#: src/userdel.c:470 #, c-format msgid "%s: error deleting TCFS entry\n" msgstr "" -#: src/userdel.c:453 +#: src/userdel.c:483 #, c-format msgid "%s: error deleting password dbm entry\n" msgstr "" -#: src/userdel.c:472 +#: src/userdel.c:502 #, c-format msgid "%s: error deleting shadow passwd dbm entry\n" msgstr "" -#: src/userdel.c:513 +#: src/userdel.c:543 #, c-format msgid "%s: user %s is currently logged in\n" msgstr "" -#: src/userdel.c:630 +#: src/userdel.c:660 #, c-format msgid "%s: warning: %s not owned by %s, not removing\n" msgstr "" -#: src/userdel.c:636 +#: src/userdel.c:666 #, c-format msgid "%s: warning: can't remove " msgstr "" -#: src/userdel.c:711 src/usermod.c:968 +#: src/userdel.c:741 src/usermod.c:967 #, c-format msgid "%s: user %s does not exist\n" msgstr "" -#: src/userdel.c:725 src/usermod.c:984 +#: src/userdel.c:755 src/usermod.c:983 #, c-format msgid "%s: user %s is a NIS user\n" msgstr "" -#: src/userdel.c:762 +#: src/userdel.c:792 #, c-format msgid "%s: %s not owned by %s, not removing\n" msgstr "" -#: src/userdel.c:785 +#: src/userdel.c:815 #, c-format msgid "%s: not removing directory %s (would remove home of user %s)\n" msgstr "" -#: src/userdel.c:798 +#: src/userdel.c:828 #, c-format msgid "%s: error removing directory %s\n" msgstr "" -#: src/usermod.c:316 +#: src/usermod.c:315 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n" msgstr "" -#: src/usermod.c:322 +#: src/usermod.c:321 msgid "[-A {DEFAULT|program},... ] " msgstr "" -#: src/usermod.c:478 +#: src/usermod.c:477 #, c-format msgid "%s: out of memory in update_group\n" msgstr "" -#: src/usermod.c:601 +#: src/usermod.c:600 #, c-format msgid "%s: out of memory in update_gshadow\n" msgstr "" -#: src/usermod.c:1139 +#: src/usermod.c:1138 #, c-format msgid "%s: no flags given\n" msgstr "" -#: src/usermod.c:1146 +#: src/usermod.c:1145 #, c-format msgid "%s: shadow passwords required for -e and -f\n" msgstr "" -#: src/usermod.c:1167 +#: src/usermod.c:1166 #, c-format msgid "%s: uid %ld is not unique\n" msgstr "" -#: src/usermod.c:1315 +#: src/usermod.c:1314 #, c-format msgid "%s: error deleting authentication method\n" msgstr "" -#: src/usermod.c:1335 +#: src/usermod.c:1334 #, c-format msgid "%s: error changing authentication method\n" msgstr "" -#: src/usermod.c:1352 +#: src/usermod.c:1351 #, c-format msgid "%s: error changing password entry\n" msgstr "" -#: src/usermod.c:1358 +#: src/usermod.c:1357 #, c-format msgid "%s: error removing password entry\n" msgstr "" -#: src/usermod.c:1366 +#: src/usermod.c:1365 #, c-format msgid "%s: error adding password dbm entry\n" msgstr "" -#: src/usermod.c:1373 +#: src/usermod.c:1372 #, c-format msgid "%s: error removing passwd dbm entry\n" msgstr "" -#: src/usermod.c:1390 +#: src/usermod.c:1389 #, c-format msgid "%s: error removing shadow password entry\n" msgstr "" -#: src/usermod.c:1405 +#: src/usermod.c:1404 #, c-format msgid "%s: error removing shadow passwd dbm entry\n" msgstr "" -#: src/usermod.c:1436 +#: src/usermod.c:1435 #, c-format msgid "%s: directory %s exists\n" msgstr "" -#: src/usermod.c:1443 +#: src/usermod.c:1442 #, c-format msgid "%s: can't create %s\n" msgstr "" -#: src/usermod.c:1449 +#: src/usermod.c:1448 #, c-format msgid "%s: can't chown %s\n" msgstr "" -#: src/usermod.c:1465 +#: src/usermod.c:1464 #, c-format msgid "%s: cannot rename directory %s to %s\n" msgstr "" #. better leave it alone -#: src/usermod.c:1562 +#: src/usermod.c:1561 #, c-format msgid "%s: warning: %s not owned by %s\n" msgstr "" -#: src/usermod.c:1568 +#: src/usermod.c:1567 msgid "failed to change mailbox owner" msgstr "" -#: src/usermod.c:1575 +#: src/usermod.c:1574 msgid "failed to rename mailbox" msgstr "" -#: src/vipw.c:103 +#: src/vipw.c:102 #, c-format msgid "" "\n" "%s: %s is unchanged\n" msgstr "" -#: src/vipw.c:128 +#: src/vipw.c:127 msgid "Couldn't lock file" msgstr "" -#: src/vipw.c:135 +#: src/vipw.c:134 msgid "Couldn't make backup" msgstr "" -#: src/vipw.c:174 +#: src/vipw.c:187 #, c-format msgid "%s: can't restore %s: %s (your changes are in %s)\n" msgstr "" -#: src/vipw.c:213 +#: src/vipw.c:226 msgid "" "Usage:\n" "`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n" diff --git a/po/sv.po b/po/sv.po index 3017b518..64e0eb49 100644 --- a/po/sv.po +++ b/po/sv.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 19990709\n" -"POT-Creation-Date: 1999-08-27 21:03+0200\n" +"POT-Creation-Date: 2000-08-26 20:28+0200\n" "PO-Revision-Date: 1999-08-16 21:20+0100\n" "Last-Translator: Kristoffer Br�nemyr <ztion@swipnet.se>\n" "Language-Team: sv <sv@li.org>\n" @@ -110,7 +110,7 @@ msgstr "Ingen post." msgid "You have mail." msgstr "Du har post." -#: libmisc/obscure.c:281 src/passwd.c:311 +#: libmisc/obscure.c:281 src/passwd.c:309 #, c-format msgid "Bad password: %s. " msgstr "Felaktigt l�senord: %s. " @@ -180,24 +180,24 @@ msgstr "malloc(%d) misslyckades\n" msgid "Dialup Password: " msgstr "Uppringningsl�senord: " -#: lib/getdef.c:249 +#: lib/getdef.c:253 msgid "Could not allocate space for config info.\n" msgstr "Kunde inte allokera rum f�r konfigureringsinformation.\n" #. #. * Item was never found. #. -#: lib/getdef.c:303 +#: lib/getdef.c:307 #, c-format msgid "configuration error - unknown item '%s' (notify administrator)\n" msgstr "konfigurerings fel - ok�nt object \"%s\" (meddela systemoperat�ren)\n" -#: lib/getdef.c:390 +#: lib/getdef.c:394 #, c-format msgid "error - lookup '%s' failed\n" msgstr "fel - kunde inte hitta \"%s\"\n" -#: lib/getdef.c:398 +#: lib/getdef.c:402 #, c-format msgid "%s not found\n" msgstr "%s hittades inte\n" @@ -206,7 +206,7 @@ msgstr "%s hittades inte\n" #. * get the password from her, and set the salt for #. * the decryption from the group file. #. -#: lib/pwauth.c:54 src/newgrp.c:297 +#: lib/pwauth.c:54 src/newgrp.c:305 msgid "Password: " msgstr "L�senord: " @@ -342,82 +342,82 @@ msgstr "L msgid "Account Expires:\t" msgstr "L�senordet upph�r:\t" -#: src/chage.c:468 +#: src/chage.c:471 #, c-format msgid "%s: do not include \"l\" with other flags\n" msgstr "%s: inkludera inte \"l\" tillsammands med andra flaggor\n" -#: src/chage.c:480 src/chage.c:592 src/login.c:529 +#: src/chage.c:483 src/chage.c:595 src/login.c:529 #, c-format msgid "%s: permission denied\n" msgstr "%s: till�telse nekas\n" -#: src/chage.c:492 src/chpasswd.c:122 +#: src/chage.c:495 src/chpasswd.c:120 #, c-format msgid "%s: can't lock password file\n" msgstr "%s: kan inte l�sa l�senordsfilen\n" -#: src/chage.c:498 src/chpasswd.c:126 +#: src/chage.c:501 src/chpasswd.c:124 #, c-format msgid "%s: can't open password file\n" msgstr "%s: kan inte �ppna l�senordsfilen\n" -#: src/chage.c:505 +#: src/chage.c:508 #, c-format msgid "%s: unknown user: %s\n" msgstr "%s: ok�nd anv�ndare: %s\n" -#: src/chage.c:524 +#: src/chage.c:527 #, c-format msgid "%s: can't lock shadow password file\n" msgstr "%s: kan inte l�sa skuggl�senordsfilen\n" -#: src/chage.c:531 +#: src/chage.c:534 #, c-format msgid "%s: can't open shadow password file\n" msgstr "%s: kan inte �ppna skuggl�senordsfilen\n" -#: src/chage.c:613 +#: src/chage.c:616 #, c-format msgid "Changing the aging information for %s\n" msgstr "�ndrar �ldringsinformation f�r %s\n" -#: src/chage.c:615 +#: src/chage.c:618 #, c-format msgid "%s: error changing fields\n" msgstr "%s: fel uppstod under byte av f�lt\n" -#: src/chage.c:642 src/chage.c:705 src/pwunconv.c:184 +#: src/chage.c:645 src/chage.c:708 src/pwunconv.c:183 #, c-format msgid "%s: can't update password file\n" msgstr "%s: kan inte uppdatera l�senordsfilen\n" -#: src/chage.c:672 src/pwunconv.c:179 +#: src/chage.c:675 src/pwunconv.c:178 #, c-format msgid "%s: can't update shadow password file\n" msgstr "%s: kan inte uppdatera skuggl�senordsfilen\n" -#: src/chage.c:721 src/chage.c:736 src/chfn.c:572 src/chsh.c:411 -#: src/passwd.c:827 src/passwd.c:928 +#: src/chage.c:724 src/chage.c:739 src/chfn.c:571 src/chsh.c:410 +#: src/passwd.c:825 src/passwd.c:926 msgid "Error updating the DBM password entry.\n" msgstr "Fel under uppdatering av DBM-l�senordsnoteringen.\n" -#: src/chage.c:753 +#: src/chage.c:756 #, c-format msgid "%s: can't rewrite shadow password file\n" msgstr "%s: kan inte skriva om skuggl�senordsfilen\n" -#: src/chage.c:767 +#: src/chage.c:770 #, c-format msgid "%s: can't rewrite password file\n" msgstr "%s: kan inte skriva om l�senordsfilen\n" -#: src/chage.c:816 +#: src/chage.c:821 #, c-format msgid "%s: no aging information present\n" msgstr "%s: ingen �ldringsinformation finns tillg�nglig\n" -#: src/chfn.c:108 +#: src/chfn.c:107 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ]\n" @@ -426,7 +426,7 @@ msgstr "" "%s [ -f hela_namnet ] [ -r rumsnummer ] [ -w arbetstele ]\n" "\t[ -h hemtele ] [ -o �vrigt ] [ anv�ndare ]\n" -#: src/chfn.c:112 +#: src/chfn.c:111 #, c-format msgid "" "Usage: %s [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]\n" @@ -434,362 +434,362 @@ msgstr "" "Anv�ndning: %s [ -f hela_namnet ] [ -r rumsnummer ] [ -w arbetstele ] [ -h " "hemtele ]\n" -#: src/chfn.c:164 src/chsh.c:120 +#: src/chfn.c:163 src/chsh.c:119 msgid "Enter the new value, or press return for the default\n" msgstr "Skriv in det nya v�rdet, eller tryck return f�r standardv�rdet\n" -#: src/chfn.c:167 +#: src/chfn.c:166 msgid "Full Name" msgstr "Hela namnet" -#: src/chfn.c:169 +#: src/chfn.c:168 #, c-format msgid "\tFull Name: %s\n" msgstr "\tHela namnet: %s\n" -#: src/chfn.c:172 +#: src/chfn.c:171 msgid "Room Number" msgstr "Rumsnummer" -#: src/chfn.c:174 +#: src/chfn.c:173 #, c-format msgid "\tRoom Number: %s\n" msgstr "\tRumsnummer: %s\n" -#: src/chfn.c:177 +#: src/chfn.c:176 msgid "Work Phone" msgstr "Arbetstelefonnummer" -#: src/chfn.c:179 +#: src/chfn.c:178 #, c-format msgid "\tWork Phone: %s\n" msgstr "\tArbetstelefonnummer: %s\n" -#: src/chfn.c:182 +#: src/chfn.c:181 msgid "Home Phone" msgstr "Hemtelefonnummer" -#: src/chfn.c:184 +#: src/chfn.c:183 #, c-format msgid "\tHome Phone: %s\n" msgstr "\tHemtelefonnummer: %s\n" -#: src/chfn.c:187 +#: src/chfn.c:186 msgid "Other" msgstr "�vrigt" -#: src/chfn.c:300 src/chfn.c:308 src/chfn.c:316 src/chfn.c:324 src/chfn.c:332 -#: src/chfn.c:393 src/passwd.c:1228 +#: src/chfn.c:299 src/chfn.c:307 src/chfn.c:315 src/chfn.c:323 src/chfn.c:331 +#: src/chfn.c:392 src/passwd.c:1226 #, c-format msgid "%s: Permission denied.\n" msgstr "%s: Till�telse nekas.\n" -#: src/chfn.c:353 src/chsh.c:226 src/passwd.c:1279 +#: src/chfn.c:352 src/chsh.c:225 src/passwd.c:1277 #, c-format msgid "%s: Unknown user %s\n" msgstr "%s: Ok�nd anv�ndare %s\n" -#: src/chfn.c:359 src/chsh.c:234 src/passwd.c:1209 +#: src/chfn.c:358 src/chsh.c:233 src/passwd.c:1207 #, c-format msgid "%s: Cannot determine your user name.\n" msgstr "%s: Kan inte avg�ra ditt anv�ndarnamn.\n" -#: src/chfn.c:375 src/chsh.c:252 +#: src/chfn.c:374 src/chsh.c:251 #, c-format msgid "%s: cannot change user `%s' on NIS client.\n" msgstr "%s: kan inte �ndra anv�ndare \"%s\" p� NIS-klienten.\n" -#: src/chfn.c:380 src/chsh.c:259 +#: src/chfn.c:379 src/chsh.c:258 #, c-format msgid "%s: `%s' is the NIS master for this client.\n" msgstr "%s: \"%s\" �r NIS-m�stare f�r denna klient.\n" -#: src/chfn.c:455 +#: src/chfn.c:454 #, c-format msgid "Changing the user information for %s\n" msgstr "�ndrar anv�ndarinformation f�r %s\n" -#: src/chfn.c:464 +#: src/chfn.c:463 #, c-format msgid "%s: invalid name: \"%s\"\n" msgstr "%s: felaktigt namn: \"%s\"\n" -#: src/chfn.c:469 +#: src/chfn.c:468 #, c-format msgid "%s: invalid room number: \"%s\"\n" msgstr "%s: felaktigt rumsnummer: \"%s\"\n" -#: src/chfn.c:474 +#: src/chfn.c:473 #, c-format msgid "%s: invalid work phone: \"%s\"\n" msgstr "%s: felaktigt arbetstelefonnummer: \"%s\"\n" -#: src/chfn.c:479 +#: src/chfn.c:478 #, c-format msgid "%s: invalid home phone: \"%s\"\n" msgstr "%s: felaktigt hemtelefonnummer: \"%s\"\n" -#: src/chfn.c:484 +#: src/chfn.c:483 #, c-format msgid "%s: \"%s\" contains illegal characters\n" msgstr "%s: \"%s\" inneh�ller otill�tna tecken\n" -#: src/chfn.c:496 +#: src/chfn.c:495 #, c-format msgid "%s: fields too long\n" msgstr "%s: f�r l�nga f�lt\n" -#: src/chfn.c:511 src/chsh.c:349 src/gpasswd.c:583 src/passwd.c:1390 +#: src/chfn.c:510 src/chsh.c:348 src/gpasswd.c:582 src/passwd.c:1388 msgid "Cannot change ID to root.\n" msgstr "Kan inte �ndra ID till root.\n" -#: src/chfn.c:524 src/chsh.c:363 src/passwd.c:737 src/passwd.c:882 +#: src/chfn.c:523 src/chsh.c:362 src/passwd.c:735 src/passwd.c:880 msgid "Cannot lock the password file; try again later.\n" msgstr "Kan inte l�sa l�senordsfilen; f�rs�k igen senare.\n" -#: src/chfn.c:530 src/chsh.c:369 src/passwd.c:742 src/passwd.c:887 +#: src/chfn.c:529 src/chsh.c:368 src/passwd.c:740 src/passwd.c:885 msgid "Cannot open the password file.\n" msgstr "Kan inte �ppna l�senordsfilen.\n" -#: src/chfn.c:547 src/chsh.c:384 src/passwd.c:748 src/usermod.c:1272 +#: src/chfn.c:546 src/chsh.c:383 src/passwd.c:746 src/usermod.c:1271 #, c-format msgid "%s: %s not found in /etc/passwd\n" msgstr "%s: %s hittades inte i /etc/passwd\n" -#: src/chfn.c:564 src/chsh.c:403 src/passwd.c:821 src/passwd.c:922 -#: src/passwd.c:962 +#: src/chfn.c:563 src/chsh.c:402 src/passwd.c:819 src/passwd.c:920 +#: src/passwd.c:960 msgid "Error updating the password entry.\n" msgstr "Fel under uppdatering av l�senordsnoteringen.\n" -#: src/chfn.c:587 src/chsh.c:426 src/passwd.c:834 src/passwd.c:935 +#: src/chfn.c:586 src/chsh.c:425 src/passwd.c:832 src/passwd.c:933 msgid "Cannot commit password file changes.\n" msgstr "Kan inte genomf�ra �ndringar i l�senordsfilen.\n" -#: src/chfn.c:594 src/chsh.c:433 +#: src/chfn.c:593 src/chsh.c:432 msgid "Cannot unlock the password file.\n" msgstr "Kan inte l�sa upp l�senordsfilen.\n" -#: src/chpasswd.c:78 +#: src/chpasswd.c:76 #, c-format msgid "usage: %s [-e]\n" msgstr "Anv�ndning: %s [-e]\n" -#: src/chpasswd.c:134 src/pwconv.c:105 +#: src/chpasswd.c:132 src/pwconv.c:104 #, c-format msgid "%s: can't lock shadow file\n" msgstr "%s: kan inte l�sa skuggfilen\n" -#: src/chpasswd.c:139 src/gpasswd.c:609 src/pwconv.c:110 src/pwunconv.c:119 -#: src/pwunconv.c:124 +#: src/chpasswd.c:137 src/gpasswd.c:608 src/pwconv.c:109 src/pwunconv.c:118 +#: src/pwunconv.c:123 #, c-format msgid "%s: can't open shadow file\n" msgstr "%s: kan inte �ppna skuggfilen\n" -#: src/chpasswd.c:161 src/newusers.c:418 +#: src/chpasswd.c:159 src/newusers.c:415 #, c-format msgid "%s: line %d: line too long\n" msgstr "%s: rad %d: f�r l�ng rad\n" -#: src/chpasswd.c:181 +#: src/chpasswd.c:179 #, c-format msgid "%s: line %d: missing new password\n" msgstr "%s: rad %d: det nya l�senordet saknas\n" -#: src/chpasswd.c:197 +#: src/chpasswd.c:195 #, c-format msgid "%s: line %d: unknown user %s\n" msgstr "%s: rad %d: ok�nd anv�ndare %s\n" -#: src/chpasswd.c:249 +#: src/chpasswd.c:247 #, c-format msgid "%s: line %d: cannot update password entry\n" msgstr "%s: rad %d: kan inte uppdatera l�senordsnoteringen\n" -#: src/chpasswd.c:265 src/newusers.c:538 +#: src/chpasswd.c:263 src/newusers.c:535 #, c-format msgid "%s: error detected, changes ignored\n" msgstr "%s: fel uppt�cktes, �ndringarna ignorerades\n" -#: src/chpasswd.c:276 +#: src/chpasswd.c:274 #, c-format msgid "%s: error updating shadow file\n" msgstr "%s: fel under uppdatering av skuggfilen\n" -#: src/chpasswd.c:284 +#: src/chpasswd.c:282 #, c-format msgid "%s: error updating password file\n" msgstr "%s: fel under uppdatering av l�senordsfilen\n" -#: src/chsh.c:106 +#: src/chsh.c:105 #, c-format msgid "Usage: %s [ -s shell ] [ name ]\n" msgstr "Anv�ndning: %s [ -s skal ] [ namn ]\n" -#: src/chsh.c:121 +#: src/chsh.c:120 msgid "Login Shell" msgstr "Inloggningsskal" -#: src/chsh.c:275 src/chsh.c:288 +#: src/chsh.c:274 src/chsh.c:287 #, c-format msgid "You may not change the shell for %s.\n" msgstr "Du f�r inte �ndra skal �t %s.\n" -#: src/chsh.c:317 +#: src/chsh.c:316 #, c-format msgid "Changing the login shell for %s\n" msgstr "�ndrar inloggningsskal �t %s\n" -#: src/chsh.c:329 +#: src/chsh.c:328 #, c-format msgid "%s: Invalid entry: %s\n" msgstr "%s: Felaktig notering: %s\n" -#: src/chsh.c:334 +#: src/chsh.c:333 #, c-format msgid "%s is an invalid shell.\n" msgstr "%s �r ett felaktigt skal.\n" -#: src/dpasswd.c:71 +#: src/dpasswd.c:69 #, c-format msgid "Usage: %s [ -(a|d) ] shell\n" msgstr "Anv�ndning: %s [ -(a|d) ] skal\n" -#: src/dpasswd.c:136 +#: src/dpasswd.c:134 msgid "Shell password: " msgstr "Skall�senord: " -#: src/dpasswd.c:142 +#: src/dpasswd.c:140 msgid "re-enter Shell password: " msgstr "skriv in skall�senordet igen: " -#: src/dpasswd.c:149 +#: src/dpasswd.c:147 #, c-format msgid "%s: Passwords do not match, try again.\n" msgstr "%s: L�senorden matchar inte varandra, f�rs�k igen.\n" -#: src/dpasswd.c:169 +#: src/dpasswd.c:167 #, c-format msgid "%s: can't create %s" msgstr "%s: kan inte skapa %s" -#: src/dpasswd.c:174 +#: src/dpasswd.c:172 #, c-format msgid "%s: can't open %s" msgstr "%s: kan inte �ppna %s" -#: src/dpasswd.c:202 +#: src/dpasswd.c:200 #, c-format msgid "%s: Shell %s not found.\n" msgstr "%s: Hittade inte skalet %s.\n" -#: src/expiry.c:85 +#: src/expiry.c:84 msgid "Usage: expiry { -f | -c }\n" msgstr "Anv�ndning: expiry { -f | -c }\n" -#: src/expiry.c:138 +#: src/expiry.c:137 #, c-format msgid "%s: WARNING! Must be set-UID root!\n" msgstr "%s: VARNING! M�ste vara set-UID root!\n" -#: src/expiry.c:149 +#: src/expiry.c:148 #, c-format msgid "%s: unknown user\n" msgstr "%s: ok�nd anv�ndare\n" -#: src/faillog.c:80 +#: src/faillog.c:79 #, c-format msgid "usage: %s [-a|-u user] [-m max] [-r] [-t days] [-l locksecs]\n" msgstr "" "Anv�ndning: %s [-a|-u anv�ndare] [-m h�gst] [-r] [-t dagar] [-l l�ssek]\n" -#: src/faillog.c:135 src/lastlog.c:95 +#: src/faillog.c:134 src/lastlog.c:94 #, c-format msgid "Unknown User: %s\n" msgstr "Ok�nd anv�ndare: %s\n" -#: src/faillog.c:216 +#: src/faillog.c:215 msgid "Username Failures Maximum Latest\n" msgstr "Anv�ndarnamn Felaktiga inloggningar H�gsta Senaste\n" -#: src/faillog.c:233 +#: src/faillog.c:232 #, c-format msgid " %s on %s" msgstr " %s p� %s" -#: src/faillog.c:237 +#: src/faillog.c:236 #, c-format msgid " [%lds left]" msgstr " [%lds kvar]" -#: src/faillog.c:240 +#: src/faillog.c:239 #, c-format msgid " [%lds lock]" msgstr " [%lds l�sning]" -#: src/gpasswd.c:91 +#: src/gpasswd.c:89 #, c-format msgid "usage: %s [-r|-R] group\n" msgstr "Anv�ndning: %s [-r|-R] grupp\n" -#: src/gpasswd.c:92 +#: src/gpasswd.c:90 #, c-format msgid " %s [-a user] group\n" msgstr " %s [-a anv�ndare] grupp\n" -#: src/gpasswd.c:93 +#: src/gpasswd.c:91 #, c-format msgid " %s [-d user] group\n" msgstr " %s [-d anv�ndare] grupp\n" -#: src/gpasswd.c:95 +#: src/gpasswd.c:93 #, c-format msgid " %s [-A user,...] [-M user,...] group\n" msgstr " %s [-A anv�ndare,...] [-M anv�ndare,...] grupp\n" -#: src/gpasswd.c:98 +#: src/gpasswd.c:96 #, c-format msgid " %s [-M user,...] group\n" msgstr " %s [-M anv�ndare,...] grupp\n" -#: src/gpasswd.c:162 src/gpasswd.c:247 +#: src/gpasswd.c:160 src/gpasswd.c:245 #, c-format msgid "%s: unknown user %s\n" msgstr "%s: ok�nd anv�ndare %s\n" -#: src/gpasswd.c:174 +#: src/gpasswd.c:172 msgid "Permission denied.\n" msgstr "Till�telse nekas.\n" -#: src/gpasswd.c:259 +#: src/gpasswd.c:257 #, c-format msgid "%s: shadow group passwords required for -A\n" msgstr "%s: skuggruppl�senord kr�vs f�r -A\n" -#: src/gpasswd.c:310 +#: src/gpasswd.c:308 msgid "Who are you?\n" msgstr "Vem �r du?\n" -#: src/gpasswd.c:330 src/newgrp.c:247 +#: src/gpasswd.c:328 src/newgrp.c:251 #, c-format msgid "unknown group: %s\n" msgstr "ok�nd grupp: %s\n" -#: src/gpasswd.c:438 +#: src/gpasswd.c:436 #, c-format msgid "Adding user %s to group %s\n" msgstr "L�gger till anv�ndare %s till grupp %s\n" -#: src/gpasswd.c:455 +#: src/gpasswd.c:453 #, c-format msgid "Removing user %s from group %s\n" msgstr "Tar bort anv�ndare %s fr�n grupp %s\n" -#: src/gpasswd.c:468 +#: src/gpasswd.c:466 #, c-format msgid "%s: unknown member %s\n" msgstr "%s: ok�nd medlem %s\n" -#: src/gpasswd.c:515 +#: src/gpasswd.c:513 #, c-format msgid "%s: Not a tty\n" msgstr "%s: Inte en tty\n" @@ -801,105 +801,105 @@ msgstr "%s: Inte en tty\n" #. * the old password since the invoker is either the group #. * owner, or root. #. -#: src/gpasswd.c:537 +#: src/gpasswd.c:535 #, c-format msgid "Changing the password for group %s\n" msgstr "�ndrar l�senordet f�r grupp %s\n" -#: src/gpasswd.c:540 +#: src/gpasswd.c:538 msgid "New Password: " msgstr "Nytt l�senord: " -#: src/gpasswd.c:545 src/passwd.c:424 +#: src/gpasswd.c:543 src/passwd.c:422 msgid "Re-enter new password: " msgstr "Skriv in det nya l�senordet igen: " -#: src/gpasswd.c:557 +#: src/gpasswd.c:555 msgid "They don't match; try again" msgstr "De matchar inte; f�rs�k igen" -#: src/gpasswd.c:561 +#: src/gpasswd.c:559 #, c-format msgid "%s: Try again later\n" msgstr "%s: F�rs�k igen senare\n" -#: src/gpasswd.c:591 +#: src/gpasswd.c:590 #, c-format msgid "%s: can't get lock\n" msgstr "%s: kan inte l�sa\n" -#: src/gpasswd.c:597 +#: src/gpasswd.c:596 #, c-format msgid "%s: can't get shadow lock\n" msgstr "%s: kan inte l�sa skuggfilen\n" -#: src/gpasswd.c:603 +#: src/gpasswd.c:602 #, c-format msgid "%s: can't open file\n" msgstr "%s: kan inte �ppna filen\n" -#: src/gpasswd.c:615 +#: src/gpasswd.c:614 #, c-format msgid "%s: can't update entry\n" msgstr "%s: kan inte uppdatera noteringen\n" -#: src/gpasswd.c:621 +#: src/gpasswd.c:620 #, c-format msgid "%s: can't update shadow entry\n" msgstr "%s: kan inte uppdatera noteringen i skuggfilen\n" -#: src/gpasswd.c:627 +#: src/gpasswd.c:626 #, c-format msgid "%s: can't re-write file\n" msgstr "%s: kan inte skriva om filen\n" -#: src/gpasswd.c:633 +#: src/gpasswd.c:632 #, c-format msgid "%s: can't re-write shadow file\n" msgstr "%s: kan inte skriva om skuggfilen\n" -#: src/gpasswd.c:641 +#: src/gpasswd.c:640 #, c-format msgid "%s: can't unlock file\n" msgstr "%s: kan inte l�sa upp filen\n" -#: src/gpasswd.c:646 +#: src/gpasswd.c:645 #, c-format msgid "%s: can't update DBM files\n" msgstr "%s: kan inte uppdatera DBM-filer\n" -#: src/gpasswd.c:653 +#: src/gpasswd.c:652 #, c-format msgid "%s: can't update DBM shadow files\n" msgstr "%s: kan inte uppdatera DBM-skuggfiler\n" -#: src/groupadd.c:106 +#: src/groupadd.c:105 msgid "usage: groupadd [-g gid [-o]] group\n" msgstr "Anv�ndning: groupadd [-g gid [-o]] grupp\n" -#: src/groupadd.c:174 src/groupadd.c:197 src/groupmod.c:184 src/groupmod.c:231 -#: src/useradd.c:932 src/usermod.c:513 src/usermod.c:649 +#: src/groupadd.c:173 src/groupadd.c:196 src/groupmod.c:183 src/groupmod.c:230 +#: src/useradd.c:931 src/usermod.c:512 src/usermod.c:648 #, c-format msgid "%s: error adding new group entry\n" msgstr "%s: gick inte att l�gga till en ny gruppnotering\n" -#: src/groupadd.c:184 src/groupadd.c:207 src/groupmod.c:200 src/useradd.c:943 -#: src/usermod.c:525 src/usermod.c:661 +#: src/groupadd.c:183 src/groupadd.c:206 src/groupmod.c:199 src/useradd.c:942 +#: src/usermod.c:524 src/usermod.c:660 #, c-format msgid "%s: cannot add new dbm group entry\n" msgstr "%s: kan inte l�gga till en ny dbm-gruppnotering\n" -#: src/groupadd.c:259 src/useradd.c:997 +#: src/groupadd.c:258 src/useradd.c:996 #, c-format msgid "%s: name %s is not unique\n" msgstr "%s: namnet %s �r inte unikt\n" -#: src/groupadd.c:274 +#: src/groupadd.c:273 #, c-format msgid "%s: gid %ld is not unique\n" msgstr "%s: gid %ld �r inte unikt\n" -#: src/groupadd.c:298 +#: src/groupadd.c:297 #, c-format msgid "%s: can't get unique gid\n" msgstr "%s: kan inte hitta ett unikt gid\n" @@ -907,78 +907,78 @@ msgstr "%s: kan inte hitta ett unikt gid\n" #. #. * All invalid group names land here. #. -#: src/groupadd.c:322 src/groupmod.c:342 +#: src/groupadd.c:321 src/groupmod.c:341 #, c-format msgid "%s: %s is a not a valid group name\n" msgstr "%s: %s �r inte ett giltigt gruppnamn\n" -#: src/groupadd.c:351 src/groupmod.c:368 +#: src/groupadd.c:350 src/groupmod.c:367 #, c-format msgid "%s: invalid group %s\n" msgstr "%s: ogiltig grupp %s\n" -#: src/groupadd.c:368 src/useradd.c:1273 +#: src/groupadd.c:367 src/useradd.c:1272 #, c-format msgid "%s: -O requires NAME=VALUE\n" msgstr "%s: -O kr�ver NAME=V�RDE\n" -#: src/groupadd.c:413 src/groupdel.c:168 src/groupmod.c:404 src/useradd.c:1382 -#: src/userdel.c:273 src/usermod.c:537 +#: src/groupadd.c:412 src/groupdel.c:167 src/groupmod.c:403 src/useradd.c:1381 +#: src/userdel.c:303 src/usermod.c:536 #, c-format msgid "%s: cannot rewrite group file\n" msgstr "%s: kan inte skriva om gruppfilen\n" -#: src/groupadd.c:419 src/groupdel.c:174 src/groupmod.c:410 src/useradd.c:1390 -#: src/userdel.c:279 src/usermod.c:674 +#: src/groupadd.c:418 src/groupdel.c:173 src/groupmod.c:409 src/useradd.c:1389 +#: src/userdel.c:309 src/usermod.c:673 #, c-format msgid "%s: cannot rewrite shadow group file\n" msgstr "%s: kan inte skriva om skuggruppfilen\n" -#: src/groupadd.c:438 src/groupdel.c:193 src/groupmod.c:429 src/userdel.c:359 +#: src/groupadd.c:437 src/groupdel.c:192 src/groupmod.c:428 src/userdel.c:389 #, c-format msgid "%s: unable to lock group file\n" msgstr "%s: kan inte l�sa gruppfilen\n" -#: src/groupadd.c:442 src/groupdel.c:197 src/groupmod.c:433 +#: src/groupadd.c:441 src/groupdel.c:196 src/groupmod.c:432 #, c-format msgid "%s: unable to open group file\n" msgstr "%s: kan inte �ppna gruppfilen\n" -#: src/groupadd.c:447 src/groupdel.c:202 src/groupmod.c:438 src/userdel.c:368 +#: src/groupadd.c:446 src/groupdel.c:201 src/groupmod.c:437 src/userdel.c:398 #, c-format msgid "%s: unable to lock shadow group file\n" msgstr "%s: kan inte l�sa skuggruppfilen\n" -#: src/groupadd.c:452 src/groupdel.c:207 src/groupmod.c:443 +#: src/groupadd.c:451 src/groupdel.c:206 src/groupmod.c:442 #, c-format msgid "%s: unable to open shadow group file\n" msgstr "%s: kan inte �ppna skuggruppfilen\n" -#: src/groupadd.c:519 +#: src/groupadd.c:518 #, c-format msgid "%s: group %s exists\n" msgstr "%s: grupp %s existerar\n" -#: src/groupdel.c:87 +#: src/groupdel.c:86 msgid "usage: groupdel group\n" msgstr "Anv�ndning: groupdel grupp\n" -#: src/groupdel.c:105 src/groupmod.c:188 src/groupmod.c:235 +#: src/groupdel.c:104 src/groupmod.c:187 src/groupmod.c:234 #, c-format msgid "%s: error removing group entry\n" msgstr "%s: fel under borttagning av gruppnotering\n" -#: src/groupdel.c:117 src/groupmod.c:207 +#: src/groupdel.c:116 src/groupmod.c:206 #, c-format msgid "%s: error removing group dbm entry\n" msgstr "%s: fel under borttagning av dbm-gruppnotering\n" -#: src/groupdel.c:132 +#: src/groupdel.c:131 #, c-format msgid "%s: error removing shadow group entry\n" msgstr "%s: fel under borttagning av skuggruppnotering\n" -#: src/groupdel.c:145 src/groupmod.c:253 +#: src/groupdel.c:144 src/groupmod.c:252 #, c-format msgid "%s: error removing shadow group dbm entry\n" msgstr "%s: fel under borttagning av dbm-skuggruppnotering\n" @@ -986,76 +986,76 @@ msgstr "%s: fel under borttagning av dbm-skuggruppnotering\n" #. #. * Can't remove the group. #. -#: src/groupdel.c:249 +#: src/groupdel.c:248 #, c-format msgid "%s: cannot remove user's primary group.\n" msgstr "%s: kan inte ta bort anv�ndarens prim�ra grupp.\n" -#: src/groupdel.c:306 src/groupmod.c:502 +#: src/groupdel.c:305 src/groupmod.c:501 #, c-format msgid "%s: group %s does not exist\n" msgstr "%s: grupp %s existerar inte\n" -#: src/groupdel.c:320 src/groupmod.c:518 +#: src/groupdel.c:319 src/groupmod.c:517 #, c-format msgid "%s: group %s is a NIS group\n" msgstr "%s: grupp %s �r en NIS-grupp\n" -#: src/groupdel.c:326 src/groupmod.c:524 src/userdel.c:731 src/usermod.c:990 +#: src/groupdel.c:325 src/groupmod.c:523 src/userdel.c:761 src/usermod.c:989 #, c-format msgid "%s: %s is the NIS master\n" msgstr "%s: %s �r NIS-m�steren\n" -#: src/groupmod.c:106 +#: src/groupmod.c:105 msgid "usage: groupmod [-g gid [-o]] [-n name] group\n" msgstr "Anv�ndning: groupmod [-g gid [-o]] [-n namn] grupp\n" -#: src/groupmod.c:166 +#: src/groupmod.c:165 #, c-format msgid "%s: %s not found in /etc/group\n" msgstr "%s: %s hittades inte i /etc/group\n" -#: src/groupmod.c:247 +#: src/groupmod.c:246 #, c-format msgid "%s: cannot add new dbm shadow group entry\n" msgstr "%s: kunde inte l�gga till en ny dbm-skuggruppnotering\n" -#: src/groupmod.c:300 +#: src/groupmod.c:299 #, c-format msgid "%s: %ld is not a unique gid\n" msgstr "%s: %ld �r inte ett unikt gid\n" -#: src/groupmod.c:331 +#: src/groupmod.c:330 #, c-format msgid "%s: %s is not a unique name\n" msgstr "%s: %s �r inte ett unikt namn\n" -#: src/groups.c:63 +#: src/groups.c:62 #, c-format msgid "unknown user %s\n" msgstr "ok�nd anv�ndare %s\n" -#: src/grpck.c:99 +#: src/grpck.c:98 #, c-format msgid "Usage: %s [ -r ] [ group [ gshadow ] ]\n" msgstr "Anv�ndning: %s [ -r ] [ grupp [ gshadow ] ]\n" -#: src/grpck.c:101 +#: src/grpck.c:100 #, c-format msgid "Usage: %s [ -r ] [ group ]\n" msgstr "Anv�ndning: %s [ -r ] [ grupp ]\n" -#: src/grpck.c:120 src/pwck.c:120 +#: src/grpck.c:119 src/pwck.c:119 msgid "No" msgstr "Nej" -#: src/grpck.c:235 src/grpck.c:243 src/pwck.c:217 src/pwck.c:226 +#: src/grpck.c:234 src/grpck.c:242 src/pwck.c:216 src/pwck.c:225 #, c-format msgid "%s: cannot lock file %s\n" msgstr "%s: kan inte l�sa filen %s\n" -#: src/grpck.c:258 src/grpck.c:266 src/mkpasswd.c:217 src/pwck.c:242 -#: src/pwck.c:251 +#: src/grpck.c:257 src/grpck.c:265 src/mkpasswd.c:216 src/pwck.c:241 +#: src/pwck.c:250 #, c-format msgid "%s: cannot open file %s\n" msgstr "%s: kan inte �ppna filen %s\n" @@ -1064,13 +1064,13 @@ msgstr "%s: kan inte #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:299 +#: src/grpck.c:298 msgid "invalid group file entry\n" msgstr "felaktig gruppfilsnotering\n" -#: src/grpck.c:300 src/grpck.c:363 src/grpck.c:455 src/grpck.c:518 -#: src/grpck.c:535 src/pwck.c:287 src/pwck.c:349 src/pwck.c:456 src/pwck.c:518 -#: src/pwck.c:542 +#: src/grpck.c:299 src/grpck.c:362 src/grpck.c:454 src/grpck.c:517 +#: src/grpck.c:534 src/pwck.c:286 src/pwck.c:348 src/pwck.c:455 src/pwck.c:517 +#: src/pwck.c:541 #, c-format msgid "delete line `%s'? " msgstr "ta bort rad \"%s\"? " @@ -1079,26 +1079,26 @@ msgstr "ta bort rad \"%s\"? " #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:362 +#: src/grpck.c:361 msgid "duplicate group entry\n" msgstr "dubblett av gruppnotering\n" -#: src/grpck.c:379 +#: src/grpck.c:378 #, c-format msgid "invalid group name `%s'\n" msgstr "ogiltigt gruppnamn \"%s\"\n" -#: src/grpck.c:389 +#: src/grpck.c:388 #, c-format msgid "group %s: bad GID (%d)\n" msgstr "grupp %s: felaktigt GID (%d)\n" -#: src/grpck.c:415 +#: src/grpck.c:414 #, c-format msgid "group %s: no user %s\n" msgstr "grupp %s: anv�ndaren %s finns inte\n" -#: src/grpck.c:417 src/grpck.c:586 +#: src/grpck.c:416 src/grpck.c:585 #, c-format msgid "delete member `%s'? " msgstr "ta bort medlem \"%s\"? " @@ -1107,7 +1107,7 @@ msgstr "ta bort medlem \"%s\"? " #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/grpck.c:454 +#: src/grpck.c:453 msgid "invalid shadow group file entry\n" msgstr "felaktig skuggruppfilsnotering\n" @@ -1115,65 +1115,65 @@ msgstr "felaktig skuggruppfilsnotering\n" #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/grpck.c:517 +#: src/grpck.c:516 msgid "duplicate shadow group entry\n" msgstr "dubblett av skuggruppfilsnotering\n" -#: src/grpck.c:534 +#: src/grpck.c:533 msgid "no matching group file entry\n" msgstr "inga matchande gruppfilsnoteringar\n" -#: src/grpck.c:554 +#: src/grpck.c:553 #, c-format msgid "shadow group %s: no administrative user %s\n" msgstr "skuggrupp %s: finns ingen administrativ anv�ndare %s\n" -#: src/grpck.c:556 +#: src/grpck.c:555 #, c-format msgid "delete administrative member `%s'? " msgstr "ta bort administrativa medlemmen \"%s\"? " -#: src/grpck.c:584 +#: src/grpck.c:583 #, c-format msgid "shadow group %s: no user %s\n" msgstr "skuggrupp %s: finns ingen anv�ndare %s\n" -#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581 +#: src/grpck.c:610 src/grpck.c:616 src/pwck.c:572 src/pwck.c:580 #, c-format msgid "%s: cannot update file %s\n" msgstr "%s: kan inte uppdatera filen %s\n" -#: src/grpck.c:641 src/pwck.c:607 +#: src/grpck.c:640 src/pwck.c:606 #, c-format msgid "%s: the files have been updated; run mkpasswd\n" msgstr "%s: filerna �r uppdaterade; k�r mkpasswd\n" -#: src/grpck.c:642 src/grpck.c:646 src/pwck.c:608 src/pwck.c:612 +#: src/grpck.c:641 src/grpck.c:645 src/pwck.c:607 src/pwck.c:611 #, c-format msgid "%s: no changes\n" msgstr "%s: inga �ndringar\n" -#: src/grpck.c:645 src/pwck.c:611 +#: src/grpck.c:644 src/pwck.c:610 #, c-format msgid "%s: the files have been updated\n" msgstr "%s: filerna �r uppdaterade\n" -#: src/grpconv.c:63 src/grpunconv.c:64 +#: src/grpconv.c:62 src/grpunconv.c:63 #, c-format msgid "%s: can't lock group file\n" msgstr "%s: kan inte l�sa gruppfilen\n" -#: src/grpconv.c:68 src/grpunconv.c:69 +#: src/grpconv.c:67 src/grpunconv.c:68 #, c-format msgid "%s: can't open group file\n" msgstr "%s: kan inte �ppna gruppfilen\n" -#: src/grpconv.c:73 src/grpunconv.c:74 +#: src/grpconv.c:72 src/grpunconv.c:73 #, c-format msgid "%s: can't lock shadow group file\n" msgstr "%s: kan inte l�sa skuggruppfilen\n" -#: src/grpconv.c:78 src/grpunconv.c:79 +#: src/grpconv.c:77 src/grpunconv.c:78 #, c-format msgid "%s: can't open shadow group file\n" msgstr "%s: kan inte �ppna skuggruppfilen\n" @@ -1181,85 +1181,85 @@ msgstr "%s: kan inte #. #. * This shouldn't happen (the entry exists) but... #. -#: src/grpconv.c:94 +#: src/grpconv.c:93 #, c-format msgid "%s: can't remove shadow group %s\n" msgstr "%s: kan inte ta bort skuggruppen %s\n" -#: src/grpconv.c:135 src/pwconv.c:161 +#: src/grpconv.c:134 src/pwconv.c:160 #, c-format msgid "%s: can't update shadow entry for %s\n" msgstr "%s: kan inte uppdatera skuggnoteringen f�r %s\n" -#: src/grpconv.c:144 src/grpunconv.c:95 +#: src/grpconv.c:143 src/grpunconv.c:94 #, c-format msgid "%s: can't update entry for group %s\n" msgstr "%s: kan inte uppdatera noteringen f�r gruppen %s\n" -#: src/grpconv.c:151 src/grpunconv.c:103 +#: src/grpconv.c:150 src/grpunconv.c:102 #, c-format msgid "%s: can't update shadow group file\n" msgstr "%s: kan inte uppdatera skuggruppfilen\n" -#: src/grpconv.c:155 src/grpunconv.c:108 +#: src/grpconv.c:154 src/grpunconv.c:107 #, c-format msgid "%s: can't update group file\n" msgstr "%s: kan inte uppdatera gruppfilen\n" -#: src/grpconv.c:170 src/grpunconv.c:129 +#: src/grpconv.c:169 src/grpunconv.c:128 #, c-format msgid "%s: not configured for shadow group support.\n" msgstr "%s: inte konfigurerad med st�d f�r skuggrupper.\n" -#: src/grpunconv.c:113 +#: src/grpunconv.c:112 #, c-format msgid "%s: can't delete shadow group file\n" msgstr "%s: kan inte ta bort skuggruppfilen\n" -#: src/id.c:57 +#: src/id.c:56 msgid "usage: id [ -a ]\n" msgstr "Anv�ndning: id [ -a ]\n" -#: src/id.c:59 +#: src/id.c:58 msgid "usage: id\n" msgstr "Anv�ndning: id\n" -#: src/id.c:119 +#: src/id.c:118 #, c-format msgid "uid=%d(%s)" msgstr "uid=%d(%s)" -#: src/id.c:121 +#: src/id.c:120 #, c-format msgid "uid=%d" msgstr "uid=%d" -#: src/id.c:125 +#: src/id.c:124 #, c-format msgid " gid=%d(%s)" msgstr " gid=%d(%s)" -#: src/id.c:127 +#: src/id.c:126 #, c-format msgid " gid=%d" msgstr " gid=%d" -#: src/id.c:137 +#: src/id.c:136 #, c-format msgid " euid=%d(%s)" msgstr " euid=%d(%s)" -#: src/id.c:139 +#: src/id.c:138 #, c-format msgid " euid=%d" msgstr " euid=%d" -#: src/id.c:144 +#: src/id.c:143 #, c-format msgid " egid=%d(%s)" msgstr " egid=%d(%s)" -#: src/id.c:146 +#: src/id.c:145 #, c-format msgid " egid=%d" msgstr " egid=%d" @@ -1272,42 +1272,42 @@ msgstr " egid=%d" #. * where "###" is a numerical value and "aaa" is the #. * corresponding name for each respective numerical value. #. -#: src/id.c:167 +#: src/id.c:166 msgid " groups=" msgstr " grupper=" -#: src/lastlog.c:168 +#: src/lastlog.c:167 msgid "Username Port From Latest\n" msgstr "Anv�ndarnamn Port Fr�n Senaste\n" -#: src/lastlog.c:170 +#: src/lastlog.c:169 msgid "Username Port Latest\n" msgstr "Anv�ndarnamn Port Senaste\n" -#: src/lastlog.c:184 +#: src/lastlog.c:183 msgid "**Never logged in**" msgstr "**Aldrig inloggad**" -#: src/login.c:199 +#: src/login.c:198 #, c-format msgid "usage: %s [-p] [name]\n" msgstr "Anv�ndning: %s [-p] [namn]\n" -#: src/login.c:202 +#: src/login.c:201 #, c-format msgid " %s [-p] [-h host] [-f name]\n" msgstr " %s [-p] [-h v�rd] [-f namn]\n" -#: src/login.c:204 +#: src/login.c:203 #, c-format msgid " %s [-p] -r host\n" msgstr " %s [-p] -r v�rd\n" -#: src/login.c:287 +#: src/login.c:286 msgid "Invalid login time\n" msgstr "Felaktig inloggningstid\n" -#: src/login.c:342 +#: src/login.c:341 msgid "" "\n" "System closed for routine maintenance\n" @@ -1315,7 +1315,7 @@ msgstr "" "\n" "Systemet �r st�ngt f�r rutinunderh�ll\n" -#: src/login.c:352 +#: src/login.c:351 msgid "" "\n" "[Disconnect bypassed -- root login allowed.]\n" @@ -1323,7 +1323,7 @@ msgstr "" "\n" "[Nerkoppling kringgicks -- root inloggning till�ten.]\n" -#: src/login.c:391 +#: src/login.c:390 #, c-format msgid "" "\n" @@ -1342,7 +1342,7 @@ msgstr " p msgid " on `%.100s'" msgstr " p� \"%.100s\"" -#: src/login.c:807 +#: src/login.c:834 #, c-format msgid "" "\n" @@ -1351,34 +1351,34 @@ msgstr "" "\n" "%s anv�ndare: " -#: src/login.c:809 +#: src/login.c:836 msgid "login: " msgstr "anv�ndare: " -#: src/login.c:991 src/sulogin.c:233 +#: src/login.c:1026 src/sulogin.c:231 msgid "Login incorrect" msgstr "Felaktig inloggning" -#: src/login.c:1163 +#: src/login.c:1213 msgid "Warning: login re-enabled after temporary lockout.\n" msgstr "Varning: inloggning p� nytt aktiv efter den tempor�ra utel�sningen.\n" -#: src/login.c:1173 +#: src/login.c:1223 #, c-format msgid "Last login: %s on %s" msgstr "Senaste inloggning: %s p� %s" -#: src/login.c:1176 +#: src/login.c:1226 #, c-format msgid "Last login: %.19s on %s" msgstr "Senaste inloggning: %.19s p� %s" -#: src/login.c:1181 +#: src/login.c:1231 #, c-format msgid " from %.*s" msgstr " fr�n %.*s" -#: src/login.c:1246 +#: src/login.c:1303 msgid "Starting rad_login\n" msgstr "Startar rad_login\n" @@ -1387,191 +1387,191 @@ msgstr "Startar rad_login\n" msgid "%s: no DBM database on system - no action performed\n" msgstr "%s: ingen DBM-databas p� systemet - ingen �tg�rd genomf�rdes\n" -#: src/mkpasswd.c:246 src/mkpasswd.c:250 +#: src/mkpasswd.c:245 src/mkpasswd.c:249 #, c-format msgid "%s: cannot overwrite file %s\n" msgstr "%s: kan inte skriva �ver filen %s\n" -#: src/mkpasswd.c:264 +#: src/mkpasswd.c:263 #, c-format msgid "%s: cannot open DBM files for %s\n" msgstr "%s: kan inte �ppna DBM-filer f�r %s\n" -#: src/mkpasswd.c:297 +#: src/mkpasswd.c:296 #, c-format msgid "%s: the beginning with " msgstr "%s: b�rjan med " -#: src/mkpasswd.c:322 +#: src/mkpasswd.c:321 #, c-format msgid "%s: error parsing line \"%s\"\n" msgstr "%s: fel under analysering av rad \"%s\"\n" -#: src/mkpasswd.c:327 src/mkpasswd.c:329 src/mkpasswd.c:331 src/mkpasswd.c:333 +#: src/mkpasswd.c:326 src/mkpasswd.c:328 src/mkpasswd.c:330 src/mkpasswd.c:332 msgid "adding record for name " msgstr "l�gger till notering f�r namn " -#: src/mkpasswd.c:337 src/mkpasswd.c:342 src/mkpasswd.c:346 src/mkpasswd.c:350 +#: src/mkpasswd.c:336 src/mkpasswd.c:341 src/mkpasswd.c:345 src/mkpasswd.c:349 #, c-format msgid "%s: error adding record for " msgstr "%s: fel under till�gg av notering f�r " -#: src/mkpasswd.c:368 +#: src/mkpasswd.c:367 #, c-format msgid "added %d entries, longest was %d\n" msgstr "lade till %d noteringar, den l�ngsta var %d\n" -#: src/mkpasswd.c:383 +#: src/mkpasswd.c:382 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp|sg ] file\n" msgstr "Anv�ndning: %s [ -vf ] [ -p|g|sp|sg ] fil\n" -#: src/mkpasswd.c:385 +#: src/mkpasswd.c:384 #, c-format msgid "Usage: %s [ -vf ] [ -p|g|sp ] file\n" msgstr "Anv�ndning: %s [ -vf ] [ -p|g|sp ] fil\n" -#: src/mkpasswd.c:388 +#: src/mkpasswd.c:387 #, c-format msgid "Usage: %s [ -vf ] [ -p|g ] file\n" msgstr "Anv�ndning: %s [ -vf ] [ -p|g ] fil\n" -#: src/newgrp.c:67 +#: src/newgrp.c:66 msgid "usage: newgrp [ - ] [ group ]\n" msgstr "Anv�ndning: newgrp [ - ] [ grupp ]\n" -#: src/newgrp.c:69 +#: src/newgrp.c:68 #, fuzzy msgid "usage: sg group [[-c] command ]\n" msgstr "Anv�ndning: sg grupp [ kommando ]\n" -#: src/newgrp.c:122 +#: src/newgrp.c:125 #, c-format msgid "unknown uid: %d\n" msgstr "ok�nt uid: %d\n" -#: src/newgrp.c:198 +#: src/newgrp.c:201 #, c-format msgid "unknown gid: %ld\n" msgstr "ok�nt gid: %ld\n" -#: src/newgrp.c:242 +#: src/newgrp.c:245 #, c-format msgid "unknown gid: %d\n" msgstr "ok�nt gid: %d\n" -#: src/newgrp.c:315 src/newgrp.c:324 +#: src/newgrp.c:323 src/newgrp.c:332 msgid "Sorry.\n" msgstr "Tyv�rr.\n" -#: src/newgrp.c:356 +#: src/newgrp.c:364 msgid "too many groups\n" msgstr "f�r m�nga grupper\n" -#: src/newusers.c:79 +#: src/newusers.c:76 #, c-format msgid "Usage: %s [ input ]\n" msgstr "Anv�ndning: %s [ indata ]\n" -#: src/newusers.c:367 +#: src/newusers.c:364 #, c-format msgid "%s: can't lock /etc/passwd.\n" msgstr "%s: kan inte l�sa /etc/passwd.\n" -#: src/newusers.c:378 +#: src/newusers.c:375 #, c-format msgid "%s: can't lock files, try again later\n" msgstr "%s: kan inte l�sa filerna, f�rs�k igen senare\n" -#: src/newusers.c:393 +#: src/newusers.c:390 #, c-format msgid "%s: can't open files\n" msgstr "%s: kan inte �ppna filerna\n" -#: src/newusers.c:438 +#: src/newusers.c:435 #, c-format msgid "%s: line %d: invalid line\n" msgstr "%s: rad %d: ogiltig rad\n" -#: src/newusers.c:456 +#: src/newusers.c:453 #, c-format msgid "%s: line %d: can't create GID\n" msgstr "%s: rad %d: kan inte skapa GID\n" -#: src/newusers.c:472 +#: src/newusers.c:469 #, c-format msgid "%s: line %d: can't create UID\n" msgstr "%s: rad %d: kan inte skapa UID\n" -#: src/newusers.c:484 +#: src/newusers.c:481 #, c-format msgid "%s: line %d: cannot find user %s\n" msgstr "%s: rad %d: kan inte hitta anv�ndaren %s\n" -#: src/newusers.c:492 +#: src/newusers.c:489 #, c-format msgid "%s: line %d: can't update password\n" msgstr "%s: rad %d: kan inte uppdatera l�senordet\n" -#: src/newusers.c:509 +#: src/newusers.c:506 #, c-format msgid "%s: line %d: mkdir failed\n" msgstr "%s: rad %d: mkdir misslyckades\n" -#: src/newusers.c:513 +#: src/newusers.c:510 #, c-format msgid "%s: line %d: chown failed\n" msgstr "%s: rad %d: chown misslyckades\n" -#: src/newusers.c:522 +#: src/newusers.c:519 #, c-format msgid "%s: line %d: can't update entry\n" msgstr "%s: rad %d: kan inte uppdatera notering\n" -#: src/newusers.c:553 +#: src/newusers.c:550 #, c-format msgid "%s: error updating files\n" msgstr "%s: kunde inte uppdatera filerna\n" -#: src/passwd.c:241 +#: src/passwd.c:239 #, c-format msgid "usage: %s [ -f | -s ] [ name ]\n" msgstr "Anv�ndning: %s [ -f | -s ] [ namn ]\n" -#: src/passwd.c:244 +#: src/passwd.c:242 #, c-format msgid " %s [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name\n" msgstr " %s [ -x h�gst ] [ -n minst ] [ -w varna ] [ -i inaktiv ] namn\n" -#: src/passwd.c:247 +#: src/passwd.c:245 #, c-format msgid " %s { -l | -u | -d | -S | -e } name\n" msgstr " %s { -l | -u | -d | -S | -e } namn\n" -#: src/passwd.c:349 +#: src/passwd.c:347 #, c-format msgid "User %s has a TCFS key, his old password is required.\n" msgstr "Anv�ndare %s har en TCFS-nyckel, hans f�rra l�senord kr�vs.\n" -#: src/passwd.c:350 +#: src/passwd.c:348 msgid "You can use -t option to force the change.\n" msgstr "Du kan anv�nda flaggan -t f�r att p�tvinga �ndringen.\n" -#: src/passwd.c:356 +#: src/passwd.c:354 msgid "Old password: " msgstr "F�rra l�senordet: " -#: src/passwd.c:363 +#: src/passwd.c:361 #, c-format msgid "Incorrect password for `%s'\n" msgstr "Felaktigt l�senord f�r \"%s\"\n" -#: src/passwd.c:376 +#: src/passwd.c:374 #, c-format msgid "Warning: user %s has a TCFS key.\n" msgstr "Varning: anv�ndare %s har en TCFS-nyckel.\n" -#: src/passwd.c:394 +#: src/passwd.c:392 #, c-format msgid "" "Enter the new password (minimum of %d, maximum of %d characters)\n" @@ -1580,15 +1580,15 @@ msgstr "" "Skriv in det nya l�senordet (minst %d, h�gst %d tecken)\n" "Var god anv�nd en kombination av versaler, gemener och siffror.\n" -#: src/passwd.c:401 +#: src/passwd.c:399 msgid "New password: " msgstr "Nytt l�senord: " -#: src/passwd.c:411 +#: src/passwd.c:409 msgid "Try again.\n" msgstr "F�rs�k igen.\n" -#: src/passwd.c:420 +#: src/passwd.c:418 msgid "" "\n" "Warning: weak password (enter it again to use it anyway).\n" @@ -1596,81 +1596,81 @@ msgstr "" "\n" "Varning: svagt l�senord (skriv in det igen f�r att anv�nda det �nd�).\n" -#: src/passwd.c:429 +#: src/passwd.c:427 msgid "They don't match; try again.\n" msgstr "De matchar inte; f�rs�k igen.\n" -#: src/passwd.c:514 src/passwd.c:530 +#: src/passwd.c:512 src/passwd.c:528 #, c-format msgid "The password for %s cannot be changed.\n" msgstr "L�senordet f�r %s kan inte bytas.\n" -#: src/passwd.c:558 +#: src/passwd.c:556 #, c-format msgid "Sorry, the password for %s cannot be changed yet.\n" msgstr "Tyv�rr, l�senordet f�r %s kan inte �ndras �n.\n" -#: src/passwd.c:695 +#: src/passwd.c:693 #, c-format msgid "%s: out of memory\n" msgstr "%s: slut p� minne\n" -#: src/passwd.c:847 +#: src/passwd.c:845 msgid "Cannot lock the TCFS key database; try again later\n" msgstr "Kan inte l�sa TCFS-nyckeldatabasen; f�rs�k igen senare\n" -#: src/passwd.c:853 +#: src/passwd.c:851 msgid "Cannot open the TCFS key database.\n" msgstr "Kan inte �ppna TCFS-nyckeldatabasen.\n" -#: src/passwd.c:859 +#: src/passwd.c:857 msgid "Error updating the TCFS key database.\n" msgstr "Fel under uppdatering av TCFS-nyckeldatabasen.\n" -#: src/passwd.c:864 +#: src/passwd.c:862 msgid "Cannot commit TCFS changes.\n" msgstr "Kan inte utf�ra TCFS �ndringar.\n" -#: src/passwd.c:1071 +#: src/passwd.c:1069 #, c-format msgid "%s: Cannot execute %s" msgstr "%s: Kan inte starta %s" -#: src/passwd.c:1178 +#: src/passwd.c:1176 #, c-format msgid "%s: repository %s not supported\n" msgstr "%s: f�rvaringsplatsen %s st�ds ej\n" -#: src/passwd.c:1265 +#: src/passwd.c:1263 #, c-format msgid "%s: Permission denied\n" msgstr "%s: Till�telse nekas\n" -#: src/passwd.c:1289 +#: src/passwd.c:1287 #, c-format msgid "You may not change the password for %s.\n" msgstr "Du f�r inte �ndra l�senordet f�r %s.\n" -#: src/passwd.c:1354 +#: src/passwd.c:1352 #, c-format msgid "Changing password for %s\n" msgstr "�ndrar l�senord f�r %s\n" -#: src/passwd.c:1358 +#: src/passwd.c:1356 #, c-format msgid "The password for %s is unchanged.\n" msgstr "L�senordet f�r %s �r of�r�ndrat.\n" -#: src/passwd.c:1414 +#: src/passwd.c:1412 msgid "Password changed.\n" msgstr "L�senordet �ndrat.\n" -#: src/pwck.c:99 +#: src/pwck.c:98 #, c-format msgid "Usage: %s [ -qr ] [ passwd [ shadow ] ]\n" msgstr "Anv�ndning: %s [ -qr ] [ passwd [ shadow ] ]\n" -#: src/pwck.c:101 +#: src/pwck.c:100 #, c-format msgid "Usage: %s [ -qr ] [ passwd ]\n" msgstr "Anv�ndning: %s [ -qr ] [ passwd ]\n" @@ -1679,7 +1679,7 @@ msgstr "Anv #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:286 +#: src/pwck.c:285 msgid "invalid password file entry\n" msgstr "felaktig notering i l�senordsfilen\n" @@ -1687,16 +1687,16 @@ msgstr "felaktig notering i l #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:348 +#: src/pwck.c:347 msgid "duplicate password entry\n" msgstr "dubblett av l�senords notering\n" -#: src/pwck.c:364 +#: src/pwck.c:363 #, c-format msgid "invalid user name `%s'\n" msgstr "ogiltigt anv�ndarnamn \"%s\"\n" -#: src/pwck.c:374 +#: src/pwck.c:373 #, c-format msgid "user %s: bad UID (%d)\n" msgstr "anv�ndare %s: felaktigt UID (%d)\n" @@ -1704,7 +1704,7 @@ msgstr "anv #. #. * No primary group, just give a warning #. -#: src/pwck.c:389 +#: src/pwck.c:388 #, c-format msgid "user %s: no group %d\n" msgstr "anv�ndare %s: ingen grupp %d\n" @@ -1712,7 +1712,7 @@ msgstr "anv #. #. * Home directory doesn't exist, give a warning #. -#: src/pwck.c:404 +#: src/pwck.c:403 #, c-format msgid "user %s: directory %s does not exist\n" msgstr "anv�ndare %s: katalogen %s finns inte\n" @@ -1720,7 +1720,7 @@ msgstr "anv #. #. * Login shell doesn't exist, give a warning #. -#: src/pwck.c:419 +#: src/pwck.c:418 #, c-format msgid "user %s: program %s does not exist\n" msgstr "anv�ndare %s: programmet %s finns inte\n" @@ -1729,7 +1729,7 @@ msgstr "anv #. * Tell the user this entire line is bogus and #. * ask them to delete it. #. -#: src/pwck.c:455 +#: src/pwck.c:454 msgid "invalid shadow password file entry\n" msgstr "felaktig notering i skuggl�senordsfilen\n" @@ -1737,7 +1737,7 @@ msgstr "felaktig notering i skuggl #. * Tell the user this entry is a duplicate of #. * another and ask them to delete it. #. -#: src/pwck.c:517 +#: src/pwck.c:516 msgid "duplicate shadow password entry\n" msgstr "dubblett av notering i skuggl�senordsfilen\n" @@ -1745,41 +1745,41 @@ msgstr "dubblett av notering i skuggl #. * Tell the user this entry has no matching #. * /etc/passwd entry and ask them to delete it. #. -#: src/pwck.c:541 +#: src/pwck.c:540 msgid "no matching password file entry\n" msgstr "ingen matchande notering i l�senordsfilen\n" -#: src/pwck.c:558 +#: src/pwck.c:557 #, c-format msgid "user %s: last password change in the future\n" msgstr "anv�ndare %s: senaste l�senords�ndring i framtiden\n" -#: src/pwconv.c:95 src/pwunconv.c:109 +#: src/pwconv.c:94 src/pwunconv.c:108 #, c-format msgid "%s: can't lock passwd file\n" msgstr "%s: kan inte l�sa l�senordsfilen\n" -#: src/pwconv.c:100 src/pwunconv.c:114 +#: src/pwconv.c:99 src/pwunconv.c:113 #, c-format msgid "%s: can't open passwd file\n" msgstr "%s: kan inte �ppna l�senordsfilen\n" -#: src/pwconv.c:127 +#: src/pwconv.c:126 #, c-format msgid "%s: can't remove shadow entry for %s\n" msgstr "%s: kan inte ta bort notering i skuggl�senordsfilen f�r %s\n" -#: src/pwconv.c:170 +#: src/pwconv.c:169 #, c-format msgid "%s: can't update passwd entry for %s\n" msgstr "%s: kan inte uppdatera noteringen i l�senordsfilen f�r %s\n" -#: src/pwconv.c:177 +#: src/pwconv.c:176 #, c-format msgid "%s: can't update shadow file\n" msgstr "%s: kan inte uppdatera skuggfilen\n" -#: src/pwconv.c:181 +#: src/pwconv.c:180 #, c-format msgid "%s: can't update passwd file\n" msgstr "%s: kan inte uppdatera l�senordsfilen\n" @@ -1789,52 +1789,52 @@ msgstr "%s: kan inte uppdatera l msgid "%s: Shadow passwords are not configured.\n" msgstr "%s: Shadowl�senord �r inte konfigurerade.\n" -#: src/pwunconv.c:172 +#: src/pwunconv.c:171 #, c-format msgid "%s: can't update entry for user %s\n" msgstr "%s: kan inte uppdatera noteringen f�r anv�ndaren %s\n" -#: src/pwunconv.c:189 +#: src/pwunconv.c:188 #, c-format msgid "%s: can't delete shadow password file\n" msgstr "%s: kan inte ta bort skuggl�senordsfilen\n" -#: src/su.c:145 +#: src/su.c:140 msgid "Sorry." msgstr "Tyv�rr." -#: src/su.c:227 +#: src/su.c:222 #, c-format msgid "%s: must be run from a terminal\n" msgstr "%s: m�ste k�ras fr�n en terminal\n" -#: src/su.c:319 +#: src/su.c:311 #, c-format msgid "%s: pam_start: error %d\n" msgstr "%s: pam_start: fel %d\n" -#: src/su.c:345 +#: src/su.c:337 #, c-format msgid "Unknown id: %s\n" msgstr "Ok�nt id: %s\n" #. access denied (-1) or unexpected value -#: src/su.c:380 src/su.c:395 +#: src/su.c:372 src/su.c:387 #, c-format msgid "You are not authorized to su %s\n" msgstr "Du har inte till�telse att k�ra su till %s\n" #. require own password -#: src/su.c:391 +#: src/su.c:383 msgid "(Enter your own password.)" msgstr "(Skriv in ditt eget l�senord.)" -#: src/su.c:412 +#: src/su.c:404 #, c-format msgid "%s: permission denied (shell).\n" msgstr "%s: till�telse nekas (skal).\n" -#: src/su.c:436 +#: src/su.c:428 #, c-format msgid "" "%s: %s\n" @@ -1843,19 +1843,19 @@ msgstr "" "%s: %s\n" "(Ignorerad)\n" -#: src/su.c:605 +#: src/su.c:628 msgid "No shell\n" msgstr "Inget skal\n" #. must be a password file! -#: src/sulogin.c:138 +#: src/sulogin.c:136 msgid "No password file\n" msgstr "Ingen l�senordsfil\n" #. #. * Fail secure #. -#: src/sulogin.c:180 +#: src/sulogin.c:178 msgid "No password entry for 'root'\n" msgstr "Ingen l�senordsnotering f�r \"root\"\n" @@ -1864,7 +1864,7 @@ msgstr "Ingen l #. * given we just exit. #. #. get a password for root -#: src/sulogin.c:194 +#: src/sulogin.c:192 msgid "" "\n" "Type control-d to proceed with normal startup,\n" @@ -1875,495 +1875,500 @@ msgstr "" "(eller skriv in l�senordet f�r root f�r systemunderh�ll):" #. make new environment active -#: src/sulogin.c:243 +#: src/sulogin.c:241 msgid "Entering System Maintenance Mode\n" msgstr "G�r in i systemunderh�llsl�ge\n" -#: src/useradd.c:244 +#: src/useradd.c:243 #, c-format msgid "%s: rebuild the group database\n" msgstr "%s: bygg om gruppdatabasen\n" -#: src/useradd.c:251 +#: src/useradd.c:250 #, c-format msgid "%s: rebuild the shadow group database\n" msgstr "%s: bygg om skuggruppdatabasen\n" -#: src/useradd.c:288 src/usermod.c:941 +#: src/useradd.c:287 src/usermod.c:940 #, c-format msgid "%s: invalid numeric argument `%s'\n" msgstr "%s: ogiltigt numeriskt argument \"%s\"\n" -#: src/useradd.c:344 +#: src/useradd.c:343 #, c-format msgid "%s: unknown gid %s\n" msgstr "%s: ok�nt gid %s\n" -#: src/useradd.c:351 src/useradd.c:643 src/useradd.c:1229 src/usermod.c:253 -#: src/usermod.c:1072 +#: src/useradd.c:350 src/useradd.c:642 src/useradd.c:1228 src/usermod.c:252 +#: src/usermod.c:1071 #, c-format msgid "%s: unknown group %s\n" msgstr "%s: ok�nd grupp %s\n" -#: src/useradd.c:419 +#: src/useradd.c:418 #, c-format msgid "group=%s,%ld basedir=%s skel=%s\n" msgstr "grupp=%s,%ld baskatalog=%s skel=%s\n" -#: src/useradd.c:422 +#: src/useradd.c:421 #, c-format msgid "shell=%s " msgstr "skal=%s " -#: src/useradd.c:424 +#: src/useradd.c:423 #, c-format msgid "inactive=%ld expire=%s" msgstr "inaktiv=%ld upph�r=%s" -#: src/useradd.c:428 +#: src/useradd.c:427 #, c-format msgid "GROUP=%ld\n" msgstr "GRUPP=%ld\n" -#: src/useradd.c:429 +#: src/useradd.c:428 #, c-format msgid "HOME=%s\n" msgstr "HEM=%s\n" -#: src/useradd.c:431 +#: src/useradd.c:430 #, c-format msgid "INACTIVE=%ld\n" msgstr "INAKTIV=%ld\n" -#: src/useradd.c:432 +#: src/useradd.c:431 #, c-format msgid "EXPIRE=%s\n" msgstr "UPPH�R=%s\n" -#: src/useradd.c:434 +#: src/useradd.c:433 #, c-format msgid "SHELL=%s\n" msgstr "SKAL=%s\n" -#: src/useradd.c:435 +#: src/useradd.c:434 #, c-format msgid "SKEL=%s\n" msgstr "SKEL=%s\n" -#: src/useradd.c:471 +#: src/useradd.c:470 #, c-format msgid "%s: cannot create new defaults file\n" msgstr "%s: kan inte skapa en ny standardfil\n" -#: src/useradd.c:565 src/useradd.c:576 +#: src/useradd.c:564 src/useradd.c:575 #, c-format msgid "%s: rename: %s" msgstr "%s: rename: %s" -#: src/useradd.c:663 src/usermod.c:273 +#: src/useradd.c:662 src/usermod.c:272 #, c-format msgid "%s: group `%s' is a NIS group.\n" msgstr "%s: grupp \"%s\" �r en NIS-grupp.\n" -#: src/useradd.c:671 src/usermod.c:281 +#: src/useradd.c:670 src/usermod.c:280 #, c-format msgid "%s: too many groups specified (max %d).\n" msgstr "%s: f�r m�nga grupper speciferade (max %d).\n" -#: src/useradd.c:703 src/usermod.c:313 +#: src/useradd.c:702 src/usermod.c:312 #, c-format msgid "usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n" msgstr "Anv�ndning: %s\t[-u uid [-o]] [-g grupp] [-G grupp,...] \n" -#: src/useradd.c:706 +#: src/useradd.c:705 msgid "\t\t[-d home] [-s shell] [-c comment] [-m [-k template]]\n" msgstr "\t\t[-d hem] [-s skal] [-c kommentar] [-m [-k mall]]\n" -#: src/useradd.c:709 src/usermod.c:319 +#: src/useradd.c:708 src/usermod.c:318 msgid "[-f inactive] [-e expire ] " msgstr "[-f inaktiv] [-e upph�r ] " -#: src/useradd.c:712 +#: src/useradd.c:711 msgid "[-A program] " msgstr "[-A program] " -#: src/useradd.c:714 src/usermod.c:324 +#: src/useradd.c:713 src/usermod.c:323 msgid "[-p passwd] name\n" msgstr "[-p passwd] namn\n" -#: src/useradd.c:716 +#: src/useradd.c:715 #, c-format msgid " %s\t-D [-g group] [-b base] [-s shell]\n" msgstr " %s\t-D [-g grupp] [-b bas] [-s skal]\n" -#: src/useradd.c:719 +#: src/useradd.c:718 msgid "\t\t[-f inactive] [-e expire ]\n" msgstr "\t\t[-f inaktiv] [-e utg�ng ]\n" -#: src/useradd.c:816 src/usermod.c:446 +#: src/useradd.c:815 src/usermod.c:445 #, c-format msgid "%s: error locking group file\n" msgstr "%s: fel under l�sning av gruppfilen\n" -#: src/useradd.c:820 src/usermod.c:451 +#: src/useradd.c:819 src/usermod.c:450 #, c-format msgid "%s: error opening group file\n" msgstr "%s: fel under �ppning av gruppfilen\n" -#: src/useradd.c:825 src/usermod.c:558 +#: src/useradd.c:824 src/usermod.c:557 #, c-format msgid "%s: error locking shadow group file\n" msgstr "%s: fel under l�sning av skuggruppfilen\n" -#: src/useradd.c:830 src/usermod.c:564 +#: src/useradd.c:829 src/usermod.c:563 #, c-format msgid "%s: error opening shadow group file\n" msgstr "%s: fel under �ppning av skuggruppfilen\n" -#: src/useradd.c:1002 +#: src/useradd.c:1001 #, c-format msgid "%s: uid %d is not unique\n" msgstr "%s: uid %d �r inte unikt\n" -#: src/useradd.c:1032 +#: src/useradd.c:1031 #, c-format msgid "%s: can't get unique uid\n" msgstr "%s: kan inte hitta ett unikt uid\n" -#: src/useradd.c:1140 src/useradd.c:1284 src/usermod.c:1020 src/usermod.c:1031 -#: src/usermod.c:1041 src/usermod.c:1087 src/usermod.c:1122 +#: src/useradd.c:1139 src/useradd.c:1283 src/usermod.c:1019 src/usermod.c:1030 +#: src/usermod.c:1040 src/usermod.c:1086 src/usermod.c:1121 #, c-format msgid "%s: invalid field `%s'\n" msgstr "%s: felaktigt f�lt \"%s\"\n" -#: src/useradd.c:1154 +#: src/useradd.c:1153 #, c-format msgid "%s: invalid base directory `%s'\n" msgstr "%s: felaktig baskatalog \"%s\"\n" -#: src/useradd.c:1164 +#: src/useradd.c:1163 #, c-format msgid "%s: invalid comment `%s'\n" msgstr "%s: felaktig kommentar \"%s\"\n" -#: src/useradd.c:1174 +#: src/useradd.c:1173 #, c-format msgid "%s: invalid home directory `%s'\n" msgstr "%s: felaktig hemkatalog \"%s\"\n" -#: src/useradd.c:1192 src/usermod.c:1054 +#: src/useradd.c:1191 src/usermod.c:1053 #, c-format msgid "%s: invalid date `%s'\n" msgstr "%s: felaktigt datum \"%s\"\n" -#: src/useradd.c:1204 +#: src/useradd.c:1203 #, c-format msgid "%s: shadow passwords required for -e\n" msgstr "%s: skuggl�senord kr�vs f�r -e\n" -#: src/useradd.c:1219 +#: src/useradd.c:1218 #, c-format msgid "%s: shadow passwords required for -f\n" msgstr "%s: skuggl�senord kr�vs f�r -f\n" -#: src/useradd.c:1293 +#: src/useradd.c:1292 #, c-format msgid "%s: invalid shell `%s'\n" msgstr "%s: felaktigt skal \"%s\"\n" -#: src/useradd.c:1334 +#: src/useradd.c:1333 #, c-format msgid "%s: invalid user name `%s'\n" msgstr "%s: felaktigt anv�ndar namn \"%s\"\n" -#: src/useradd.c:1370 src/userdel.c:262 src/usermod.c:1184 +#: src/useradd.c:1369 src/userdel.c:292 src/usermod.c:1183 #, c-format msgid "%s: cannot rewrite password file\n" msgstr "%s: kan inte skriva om l�senordsfilen\n" -#: src/useradd.c:1375 src/userdel.c:265 src/usermod.c:1189 +#: src/useradd.c:1374 src/userdel.c:295 src/usermod.c:1188 #, c-format msgid "%s: cannot rewrite shadow password file\n" msgstr "%s: kan inte skriva om skuggl�senordsfilen\n" -#: src/useradd.c:1415 src/userdel.c:329 src/usermod.c:1224 +#: src/useradd.c:1414 src/userdel.c:359 src/usermod.c:1223 #, c-format msgid "%s: unable to lock password file\n" msgstr "%s: kan inte l�sa l�senordsfilen\n" -#: src/useradd.c:1419 src/userdel.c:333 src/usermod.c:1228 +#: src/useradd.c:1418 src/userdel.c:363 src/usermod.c:1227 #, c-format msgid "%s: unable to open password file\n" msgstr "%s: kan inte �ppna l�senordsfilen\n" -#: src/useradd.c:1425 src/userdel.c:338 src/usermod.c:1233 +#: src/useradd.c:1424 src/userdel.c:368 src/usermod.c:1232 #, c-format msgid "%s: cannot lock shadow password file\n" msgstr "%s: kan inte l�sa skuggl�senordsfilen\n" -#: src/useradd.c:1431 src/userdel.c:343 src/usermod.c:1238 +#: src/useradd.c:1430 src/userdel.c:373 src/usermod.c:1237 #, c-format msgid "%s: cannot open shadow password file\n" msgstr "%s: kan inte �ppna skuggl�senordsfilen\n" -#: src/useradd.c:1530 src/usermod.c:1325 +#: src/useradd.c:1529 src/usermod.c:1324 #, c-format msgid "%s: error adding authentication method\n" msgstr "%s: fel under till�gning av metod f�r �kthetsbevisning\n" -#: src/useradd.c:1553 +#: src/useradd.c:1552 #, c-format msgid "%s: error adding new password entry\n" msgstr "%s: fel under till�ggning av ny l�senordsnotering\n" -#: src/useradd.c:1568 +#: src/useradd.c:1567 #, c-format msgid "%s: error updating password dbm entry\n" msgstr "%s: fel under uppdatering av dbm-l�senordsnotering\n" -#: src/useradd.c:1584 src/usermod.c:1384 +#: src/useradd.c:1583 src/usermod.c:1383 #, c-format msgid "%s: error adding new shadow password entry\n" msgstr "%s: fel under till�ggning av ny skuggl�senordsnotering\n" -#: src/useradd.c:1600 src/usermod.c:1399 +#: src/useradd.c:1599 src/usermod.c:1398 #, c-format msgid "%s: error updating shadow passwd dbm entry\n" msgstr "%s: fel under uppdatering av dbm-skuggl�senordsnotering\n" -#: src/useradd.c:1632 +#: src/useradd.c:1631 #, c-format msgid "%s: cannot create directory %s\n" msgstr "%s: kan inte skapa katalog %s\n" -#: src/useradd.c:1709 src/usermod.c:1162 +#: src/useradd.c:1708 src/usermod.c:1161 #, c-format msgid "%s: user %s exists\n" msgstr "%s: anv�ndare %s existerar\n" -#: src/useradd.c:1739 +#: src/useradd.c:1738 #, c-format msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n" msgstr "%s: varning: CREATE_HOME st�ds inte, anv�nd -m ist�llet.\n" -#: src/userdel.c:128 +#: src/userdel.c:127 #, c-format msgid "usage: %s [-r] name\n" msgstr "Anv�ndning: %s [-r] namn\n" -#: src/userdel.c:175 src/userdel.c:230 +#: src/userdel.c:178 src/userdel.c:260 #, c-format msgid "%s: error updating group entry\n" msgstr "%s: fel under uppdatering av gruppnotering\n" -#: src/userdel.c:185 src/userdel.c:239 +#: src/userdel.c:188 src/userdel.c:269 #, c-format msgid "%s: cannot update dbm group entry\n" msgstr "%s: kan inte uppdatera dbm-gruppnotering\n" -#: src/userdel.c:270 +#: src/userdel.c:215 +#, fuzzy, c-format +msgid "%s: cannot remove dbm group entry\n" +msgstr "%s: kan inte uppdatera dbm-gruppnotering\n" + +#: src/userdel.c:300 #, c-format msgid "%s: cannot rewrite TCFS key file\n" msgstr "%s: kan inte skriva om TCFS-nyckelfilen\n" -#: src/userdel.c:350 +#: src/userdel.c:380 #, c-format msgid "%s: cannot lock TCFS key file\n" msgstr "%s: kan inte l�sa TCFS-nyckelfilen\n" -#: src/userdel.c:354 +#: src/userdel.c:384 #, c-format msgid "%s: cannot open TCFS key file\n" msgstr "%s: kan inte �ppna TCFS-nyckelfilen\n" -#: src/userdel.c:363 +#: src/userdel.c:393 #, c-format msgid "%s: cannot open group file\n" msgstr "%s: kan inte �ppna gruppfilen\n" -#: src/userdel.c:373 +#: src/userdel.c:403 #, c-format msgid "%s: cannot open shadow group file\n" msgstr "%s: kan inte �ppna skuggruppfilen\n" -#: src/userdel.c:404 src/userdel.c:419 +#: src/userdel.c:434 src/userdel.c:449 #, c-format msgid "%s: error deleting authentication\n" msgstr "%s: fel under borttagning av metod f�r �kthetsbevisning\n" -#: src/userdel.c:428 +#: src/userdel.c:458 #, c-format msgid "%s: error deleting password entry\n" msgstr "%s: fel under borttagning av l�senordsnotering\n" -#: src/userdel.c:431 +#: src/userdel.c:461 #, c-format msgid "%s: error deleting shadow password entry\n" msgstr "%s: fel under borttagning av skuggl�senordsnotering\n" -#: src/userdel.c:440 +#: src/userdel.c:470 #, c-format msgid "%s: error deleting TCFS entry\n" msgstr "%s: fel under borttagning av TCFS-notering\n" -#: src/userdel.c:453 +#: src/userdel.c:483 #, c-format msgid "%s: error deleting password dbm entry\n" msgstr "%s: fel under borttagning av dbm-l�senordsnotering\n" -#: src/userdel.c:472 +#: src/userdel.c:502 #, c-format msgid "%s: error deleting shadow passwd dbm entry\n" msgstr "%s: fel under borttagning av dbm-skuggl�senordsnotering\n" -#: src/userdel.c:513 +#: src/userdel.c:543 #, c-format msgid "%s: user %s is currently logged in\n" msgstr "%s: anv�ndare %s �r inloggad\n" -#: src/userdel.c:630 +#: src/userdel.c:660 #, c-format msgid "%s: warning: %s not owned by %s, not removing\n" msgstr "%s: varning: %s �gs inte av %s, tar inte bort\n" -#: src/userdel.c:636 +#: src/userdel.c:666 #, c-format msgid "%s: warning: can't remove " msgstr "%s: varning: kan inte ta bort " -#: src/userdel.c:711 src/usermod.c:968 +#: src/userdel.c:741 src/usermod.c:967 #, c-format msgid "%s: user %s does not exist\n" msgstr "%s: anv�ndare %s finns inte\n" -#: src/userdel.c:725 src/usermod.c:984 +#: src/userdel.c:755 src/usermod.c:983 #, c-format msgid "%s: user %s is a NIS user\n" msgstr "%s: anv�ndare %s �r en NIS-anv�ndare\n" -#: src/userdel.c:762 +#: src/userdel.c:792 #, c-format msgid "%s: %s not owned by %s, not removing\n" msgstr "%s: %s �gs inte av %s, tar inte bort\n" -#: src/userdel.c:785 +#: src/userdel.c:815 #, c-format msgid "%s: not removing directory %s (would remove home of user %s)\n" msgstr "%s: tar inte bort katalogen %s (skulle ta bort hemkatalogen f�r %s)\n" -#: src/userdel.c:798 +#: src/userdel.c:828 #, c-format msgid "%s: error removing directory %s\n" msgstr "%s: fel under borttagning av katalogen %s\n" -#: src/usermod.c:316 +#: src/usermod.c:315 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n" msgstr "\t\t[-d hem [-m]] [-s skal] [-c kommentar] [-l nytt_namn]\n" -#: src/usermod.c:322 +#: src/usermod.c:321 msgid "[-A {DEFAULT|program},... ] " msgstr "[-A {DEFAULT|program},... ] " -#: src/usermod.c:478 +#: src/usermod.c:477 #, c-format msgid "%s: out of memory in update_group\n" msgstr "%s: slut p� minne i update_group\n" -#: src/usermod.c:601 +#: src/usermod.c:600 #, c-format msgid "%s: out of memory in update_gshadow\n" msgstr "%s: slut p� minne i update_gshadow\n" -#: src/usermod.c:1139 +#: src/usermod.c:1138 #, c-format msgid "%s: no flags given\n" msgstr "%s: inga flaggor givna\n" -#: src/usermod.c:1146 +#: src/usermod.c:1145 #, c-format msgid "%s: shadow passwords required for -e and -f\n" msgstr "%s: skuggl�senord kr�vs f�r -e och -f\n" -#: src/usermod.c:1167 +#: src/usermod.c:1166 #, c-format msgid "%s: uid %ld is not unique\n" msgstr "%s: uid %ld �r inte unikt\n" -#: src/usermod.c:1315 +#: src/usermod.c:1314 #, c-format msgid "%s: error deleting authentication method\n" msgstr "%s: fel under borttagning av metod f�r �kthetsbevisning\n" -#: src/usermod.c:1335 +#: src/usermod.c:1334 #, c-format msgid "%s: error changing authentication method\n" msgstr "%s: fel under �ndring av metod f�r �kthetsbevisning\n" -#: src/usermod.c:1352 +#: src/usermod.c:1351 #, c-format msgid "%s: error changing password entry\n" msgstr "%s: fel under �ndring av l�senordsnotering\n" -#: src/usermod.c:1358 +#: src/usermod.c:1357 #, c-format msgid "%s: error removing password entry\n" msgstr "%s: fel under borttagning av l�senordsnotering\n" -#: src/usermod.c:1366 +#: src/usermod.c:1365 #, c-format msgid "%s: error adding password dbm entry\n" msgstr "%s: fel under till�ggning av dbm-l�senordsnotering\n" -#: src/usermod.c:1373 +#: src/usermod.c:1372 #, c-format msgid "%s: error removing passwd dbm entry\n" msgstr "%s: fel under borttagning av dbm-l�senordsnotering\n" -#: src/usermod.c:1390 +#: src/usermod.c:1389 #, c-format msgid "%s: error removing shadow password entry\n" msgstr "%s: fel under borttagning av skuggl�senordsnotering\n" -#: src/usermod.c:1405 +#: src/usermod.c:1404 #, c-format msgid "%s: error removing shadow passwd dbm entry\n" msgstr "%s: fel under borttagning av dbm-skuggl�senordsnotering\n" -#: src/usermod.c:1436 +#: src/usermod.c:1435 #, c-format msgid "%s: directory %s exists\n" msgstr "%s: katalogen %s existerar\n" -#: src/usermod.c:1443 +#: src/usermod.c:1442 #, c-format msgid "%s: can't create %s\n" msgstr "%s: kan inte skapa %s\n" -#: src/usermod.c:1449 +#: src/usermod.c:1448 #, c-format msgid "%s: can't chown %s\n" msgstr "%s: kan inte byta �gare p� %s\n" -#: src/usermod.c:1465 +#: src/usermod.c:1464 #, c-format msgid "%s: cannot rename directory %s to %s\n" msgstr "%s: kan inte byta namn p� katalogen %s till %s\n" #. better leave it alone -#: src/usermod.c:1562 +#: src/usermod.c:1561 #, c-format msgid "%s: warning: %s not owned by %s\n" msgstr "%s: varning: %s �gs inte av %s\n" -#: src/usermod.c:1568 +#: src/usermod.c:1567 msgid "failed to change mailbox owner" msgstr "kunde inte byta �gare av brevl�dan" -#: src/usermod.c:1575 +#: src/usermod.c:1574 msgid "failed to rename mailbox" msgstr "kunde inte byta namn p� brevl�dan" -#: src/vipw.c:103 +#: src/vipw.c:102 #, c-format msgid "" "\n" @@ -2372,20 +2377,20 @@ msgstr "" "\n" "%s: %s �r of�r�ndrad\n" -#: src/vipw.c:128 +#: src/vipw.c:127 msgid "Couldn't lock file" msgstr "Kunde inte l�sa filen" -#: src/vipw.c:135 +#: src/vipw.c:134 msgid "Couldn't make backup" msgstr "Kunde inte g�ra en backup" -#: src/vipw.c:174 +#: src/vipw.c:187 #, c-format msgid "%s: can't restore %s: %s (your changes are in %s)\n" msgstr "%s: kan inte �terst�lla %s: %s (dina �ndringar �r i %s)\n" -#: src/vipw.c:213 +#: src/vipw.c:226 msgid "" "Usage:\n" "`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n" diff --git a/redhat/Makefile.in b/redhat/Makefile.in index d3e8c8d5..7aa97334 100644 --- a/redhat/Makefile.in +++ b/redhat/Makefile.in @@ -82,6 +82,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ diff --git a/redhat/shadow-utils.spec b/redhat/shadow-utils.spec deleted file mode 100644 index 10ce8971..00000000 --- a/redhat/shadow-utils.spec +++ /dev/null @@ -1,151 +0,0 @@ -# shadow-utils.spec generated automatically from shadow-utils.spec.in -# $Id: shadow-utils.spec.in,v 1.2 1999/06/07 16:40:45 marekm Exp $ -Summary: Shadow password file utilities for Linux -Name: shadow-utils -Version: 19990827 -Release: 1 -Copyright: Free -Group: Utilities/System -Source: ftp://ftp.ists.pwr.wroc.pl/pub/linux/shadow/shadow-19990827.tar.gz -BuildRoot: /var/tmp/shadow-utils -Packager: Timo Karjalainen <timok@iki.fi> -# Obsoletes: adduser - -%description -This package includes the programs necessary to convert traditional -V7 UNIX password files to the SVR4 shadow password format and additional -tools to work with shadow passwords. - - 'pwconv' converts everything to the shadow password format. - - 'pwunconv' converts back to non-shadow passwords. - - 'pwck' checks the integrity of the password and shadow files. - - 'lastlog' prints out the last login times of all users. - - 'useradd', 'userdel', 'usermod' to manage user accounts. - - 'groupadd', 'groupdel', 'groupmod' to manage groups. - -A number of man pages are also included that relate to these utilities, -and shadow passwords in general. - -%changelog - -* Sun Dec 14 1997 Marek Michalkiewicz <marekm@piast.t19.ds.pwr.wroc.pl> - -- Lots of changes, see doc/CHANGES for more details - -* Sun Jun 08 1997 Timo Karjalainen <timok@iki.fi> - -- Initial release - -%prep -# This is just a few of the core utilities from the shadow suite... -# packaged up for use w/PAM -%setup -n shadow-19990827 - -%build -# shared lib support is untested, so... -CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-shared --prefix=/usr --exec-prefix=/usr -make - -%install -if [ -d $RPM_BUILD_ROOT ] ; then - rm -rf $RPM_BUILD_ROOT -fi -mkdir -p $RPM_BUILD_ROOT/usr -# neato trick, heh ? :-) -./configure --prefix=$RPM_BUILD_ROOT/usr -make install -mkdir -p $RPM_BUILD_ROOT/etc/default - -# FIXME -#install -m 0600 -o root $RPM_SOURCE_DIR/shadow-970616.useradd $RPM_BUILD_ROOT/etc/default/useradd -#install -m 0644 -o root $RPM_SOURCE_DIR/shadow-970616.login.defs $RPM_BUILD_ROOT/etc/login.defs -#ln -s useradd $RPM_BUILD_ROOT/usr/sbin/adduser -#ln -s useradd.8 $RPM_BUILD_ROOT/usr/man/man8/adduser.8 - -#make prefix=$RPM_BUILD_ROOT/usr exec_prefix=$RPM_BUILD_ROOT/usr install -#touch $RPM_BUILD_ROOT/etc/{login.defs,default/useradd} -#chmod 640 $RPM_BUILD_ROOT/etc/{login.defs,default/useradd} -#chown root $RPM_BUILD_ROOT/etc/{login.defs,default/useradd} -#chgrp root $RPM_BUILD_ROOT/etc/{login.defs,default/useradd} - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%doc doc/ANNOUNCE doc/CHANGES doc/HOWTO -%doc doc/LICENSE doc/README doc/README.linux -%dir /etc/default -%config /etc/default/useradd -# %config /etc/limits -# %config /etc/login.access -%config /etc/login.defs -# %config /etc/limits -# %config /etc/porttime -# %config /etc/securetty -# %config /etc/shells -# %config /etc/suauth -# /bin/login -# /bin/su -/usr/bin/chage -# /usr/bin/chfn -# /usr/bin/chsh -# /usr/bin/expiry -# /usr/bin/faillog -/usr/bin/gpasswd -/usr/bin/lastlog -# /usr/bin/newgrp -# /usr/bin/passwd -# /usr/bin/sg -/usr/man/man1/chage.1 -# /usr/man/man1/chfn.1 -# /usr/man/man1/chsh.1 -/usr/man/man1/gpasswd.1 -# /usr/man/man1/login.1 -# /usr/man/man1/passwd.1 -# /usr/man/man1/sg.1 -# /usr/man/man1/su.1 -/usr/man/man3/shadow.3 -# /usr/man/man5/faillog.5 -# /usr/man/man5/limits.5 -# /usr/man/man5/login.access.5 -# /usr/man/man5/login.defs.5 -# /usr/man/man5/passwd.5 -# /usr/man/man5/porttime.5 -/usr/man/man5/shadow.5 -# /usr/man/man5/suauth.5 -# /usr/man/man8/adduser.8 -/usr/man/man8/chpasswd.8 -# /usr/man/man8/faillog.8 -/usr/man/man8/groupadd.8 -/usr/man/man8/groupdel.8 -/usr/man/man8/groupmod.8 -/usr/man/man8/grpck.8 -/usr/man/man8/lastlog.8 -# /usr/man/man8/logoutd.8 -/usr/man/man8/newusers.8 -/usr/man/man8/pwck.8 -/usr/man/man8/pwconv.8 -# /usr/man/man8/shadowconfig.8 -/usr/man/man8/useradd.8 -/usr/man/man8/userdel.8 -/usr/man/man8/usermod.8 -# /usr/man/man8/vigr.8 -# /usr/man/man8/vipw.8 -# /usr/sbin/adduser -/usr/sbin/chpasswd -/usr/sbin/groupadd -/usr/sbin/groupdel -/usr/sbin/groupmod -/usr/sbin/grpck -/usr/sbin/grpconv -/usr/sbin/grpunconv -# /usr/sbin/logoutd -/usr/sbin/newusers -/usr/sbin/pwck -/usr/sbin/pwconv -/usr/sbin/pwunconv -# /usr/sbin/shadowconfig -/usr/sbin/useradd -/usr/sbin/userdel -/usr/sbin/usermod -# /usr/sbin/vigr -# /usr/sbin/vipw diff --git a/src/Makefile.am b/src/Makefile.am index be5206bb..db8203fd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -47,15 +47,15 @@ suidubins = chage chfn chsh expiry gpasswd newgrp passwd install-exec-hook: for i in $(suidbins); do \ - chmod 4755 $(bindir)/$$i; \ + chmod 4755 $(DESTDIR)$(bindir)/$$i; \ done install-data-hook: for i in $(suidubins); do \ - chmod 4755 $(ubindir)/$$i; \ + chmod 4755 $(DESTDIR)$(ubindir)/$$i; \ done - rm -f $(ubindir)/sg - ln -s newgrp $(ubindir)/sg + rm -f $(DESTDIR)$(ubindir)/sg + ln -s newgrp $(DESTDIR)$(ubindir)/sg noinst_PROGRAMS = groups id sulogin @@ -79,7 +79,7 @@ noinst_PROGRAMS = groups id sulogin shlibs = ../lib/libshadow.la # With glibc2, almost all programs need libcrypt for some reason, # even those that don't actually use crypt(). -LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ +LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ @LIBMD@ INCLUDES = -I${top_srcdir}/lib -I$(top_srcdir)/libmisc chfn_LDADD = ${LDADD} @LIBPAM@ diff --git a/src/Makefile.in b/src/Makefile.in index fb3fdb00..773a3b3c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -76,6 +76,7 @@ INTLOBJS = @INTLOBJS@ LD = @LD@ LIBCRACK = @LIBCRACK@ LIBCRYPT = @LIBCRYPT@ +LIBMD = @LIBMD@ LIBPAM = @LIBPAM@ LIBSKEY = @LIBSKEY@ LIBTCFS = @LIBTCFS@ @@ -164,7 +165,7 @@ noinst_PROGRAMS = groups id sulogin shlibs = ../lib/libshadow.la # With glibc2, almost all programs need libcrypt for some reason, # even those that don't actually use crypt(). -LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ +LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ @LIBMD@ INCLUDES = -I${top_srcdir}/lib -I$(top_srcdir)/libmisc chfn_LDADD = ${LDADD} @LIBPAM@ @@ -879,15 +880,15 @@ mostlyclean distclean maintainer-clean install-exec-hook: for i in $(suidbins); do \ - chmod 4755 $(bindir)/$$i; \ + chmod 4755 $(DESTDIR)$(bindir)/$$i; \ done install-data-hook: for i in $(suidubins); do \ - chmod 4755 $(ubindir)/$$i; \ + chmod 4755 $(DESTDIR)$(ubindir)/$$i; \ done - rm -f $(ubindir)/sg - ln -s newgrp $(ubindir)/sg + rm -f $(DESTDIR)$(ubindir)/sg + ln -s newgrp $(DESTDIR)$(ubindir)/sg # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/chage.c b/src/chage.c index ebc204f6..9eed0da8 100644 --- a/src/chage.c +++ b/src/chage.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: chage.c,v 1.16 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: chage.c,v 1.17 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -59,6 +59,7 @@ RCSID(PKG_VER "$Id: chage.c,v 1.16 1999/08/27 19:02:51 marekm Exp $") #endif /* SHADOWPWD */ static char *Prog; +static int amroot; #ifdef AGING /*{*/ @@ -122,13 +123,12 @@ extern int sp_dbm_mode; #endif /* local function prototypes */ -static void usage P_((void)); -static void date_to_str P_((char *, size_t, time_t)); -static int new_fields P_((void)); -static void print_date P_((time_t)); -static void list_fields P_((void)); -int main P_((int, char **)); -static void cleanup P_((int)); +static void usage(void); +static void date_to_str(char *, size_t, time_t); +static int new_fields(void); +static void print_date(time_t); +static void list_fields(void); +static void cleanup(int); /* * usage - print command line syntax and exit @@ -371,7 +371,7 @@ main(int argc, char **argv) #else char new_age[5]; #endif - uid_t ruid = getuid (); + uid_t ruid; const struct passwd *pw; struct passwd pwent; char name[BUFSIZ]; @@ -381,6 +381,9 @@ main(int argc, char **argv) bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); + ruid = getuid(); + amroot = (ruid == 0); + /* * Get the program name so that error messages can use it. */ @@ -476,7 +479,7 @@ main(int argc, char **argv) * information. */ - if (ruid != 0 && ! lflg) { + if (!amroot && !lflg) { fprintf (stderr, _("%s: permission denied\n"), Prog); closelog(); exit (1); @@ -487,14 +490,14 @@ main(int argc, char **argv) * password file entries into memory. Then we get a pointer * to the password file entry for the requested user. */ - - if (!pw_lock()) { + /* We don't lock the password file if we are not root */ + if (amroot && !pw_lock()) { fprintf(stderr, _("%s: can't lock password file\n"), Prog); SYSLOG((LOG_ERR, LOCK_FAIL, PASSWD_FILE)); closelog(); exit(1); } - if (!pw_open((ruid != 0 || lflg) ? O_RDONLY:O_RDWR)) { + if (!pw_open((!amroot || lflg) ? O_RDONLY:O_RDWR)) { fprintf(stderr, _("%s: can't open password file\n"), Prog); cleanup(1); SYSLOG((LOG_ERR, OPEN_FAIL, PASSWD_FILE)); @@ -519,15 +522,15 @@ main(int argc, char **argv) * a new entry will be created for this user if one does * not exist already. */ - - if (!spw_lock()) { + /* We don't lock the shadow file if we are not root */ + if (amroot && !spw_lock()) { fprintf(stderr, _("%s: can't lock shadow password file\n"), Prog); cleanup(1); SYSLOG((LOG_ERR, LOCK_FAIL, SHADOW_FILE)); closelog(); exit(1); } - if (!spw_open((ruid != 0 || lflg) ? O_RDONLY:O_RDWR)) { + if (!spw_open((!amroot || lflg) ? O_RDONLY : O_RDWR)) { fprintf(stderr, _("%s: can't open shadow password file\n"), Prog); cleanup(2); SYSLOG((LOG_ERR, OPEN_FAIL, SHADOW_FILE)); @@ -588,7 +591,7 @@ main(int argc, char **argv) */ if (lflg) { - if (ruid != 0 && ruid != pwent.pw_uid) { + if (!amroot && (ruid != pwent.pw_uid)) { fprintf(stderr, _("%s: permission denied\n"), Prog); closelog(); exit(1); @@ -785,14 +788,16 @@ static void cleanup(int state) { switch (state) { - case 2: + case 2: #ifdef SHADOWPWD - spw_unlock (); + if (amroot) + spw_unlock(); #endif - case 1: - pw_unlock (); - case 0: - break; + case 1: + if (amroot) + pw_unlock(); + case 0: + break; } } diff --git a/src/chfn.c b/src/chfn.c index c9b2b0ed..9bf74b66 100644 --- a/src/chfn.c +++ b/src/chfn.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: chfn.c,v 1.15 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: chfn.c,v 1.16 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -90,11 +90,10 @@ extern int pw_dbm_mode; #define CHGGECOS "changed user `%s' information.\n" /* local function prototypes */ -static void usage P_((void)); -static int may_change_field P_((int)); -static void new_fields P_((void)); -static char *copy_field P_((char *, char *, char *)); -int main P_((int, char **)); +static void usage(void); +static int may_change_field(int); +static void new_fields(void); +static char *copy_field(char *, char *, char *); /* * usage - print command line syntax and exit diff --git a/src/chpasswd.c b/src/chpasswd.c index 09ba0061..dc46498f 100644 --- a/src/chpasswd.c +++ b/src/chpasswd.c @@ -43,7 +43,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: chpasswd.c,v 1.9 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: chpasswd.c,v 1.10 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include "prototypes.h" @@ -61,12 +61,10 @@ static int eflg = 0; static int is_shadow_pwd; #endif -extern char *crypt_make_salt P_((void)); extern char *l64a(); /* local function prototypes */ -static void usage P_((void)); -int main P_((int, char **)); +static void usage(void); /* * usage - display usage message and exit diff --git a/src/chsh.c b/src/chsh.c index 9737ff20..6f518753 100644 --- a/src/chsh.c +++ b/src/chsh.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: chsh.c,v 1.15 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: chsh.c,v 1.16 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -91,10 +91,9 @@ extern int pw_dbm_mode; #define CHGSHELL "changed user `%s' shell to `%s'\n" /* local function prototypes */ -static void usage P_((void)); -static void new_fields P_((void)); -static int restricted_shell P_((const char *)); -int main P_((int, char **)); +static void usage(void); +static void new_fields(void); +static int restricted_shell(const char *); /* * usage - print command line syntax and exit diff --git a/src/dpasswd.c b/src/dpasswd.c index 92eb0dc4..b6baa7df 100644 --- a/src/dpasswd.c +++ b/src/dpasswd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: dpasswd.c,v 1.10 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: dpasswd.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -58,12 +58,10 @@ static char *Prog; extern int optind; extern char *optarg; -extern char *crypt_make_salt P_((void)); extern char *getpass(); /* local function prototypes */ -static void usage P_((void)); -int main P_((int, char **)); +static void usage(void); static void usage(void) diff --git a/src/expiry.c b/src/expiry.c index d0a913b9..b8d09b50 100644 --- a/src/expiry.c +++ b/src/expiry.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: expiry.c,v 1.8 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: expiry.c,v 1.9 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <signal.h> @@ -45,7 +45,6 @@ RCSID(PKG_VER "$Id: expiry.c,v 1.8 1999/06/07 16:40:45 marekm Exp $") #endif #endif -int main P_((int, char **)); #if !defined(SHADOWPWD) && !defined(AGING) /*{*/ @@ -62,8 +61,8 @@ main(int argc, char **argv) #else /*} AGING || SHADOWPWD {*/ /* local function prototypes */ -static RETSIGTYPE catch P_((int)); -static void usage P_((void)); +static RETSIGTYPE catch(int); +static void usage(void); /* * catch - signal catcher diff --git a/src/faillog.c b/src/faillog.c index 492a9978..beb418ba 100644 --- a/src/faillog.c +++ b/src/faillog.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: faillog.c,v 1.9 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: faillog.c,v 1.10 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -61,16 +61,15 @@ extern char *optarg; #define NOW (time((time_t *) 0)) /* local function prototypes */ -static void usage P_((void)); -int main P_((int, char **)); -static void print P_((void)); -static void print_one P_((const struct faillog *, uid_t)); -static void reset P_((void)); -static int reset_one P_((uid_t)); -static void setmax P_((int)); -static void setmax_one P_((uid_t, int)); -static void set_locktime P_((long)); -static void set_locktime_one P_((uid_t, long)); +static void usage(void); +static void print(void); +static void print_one(const struct faillog *, uid_t); +static void reset(void); +static int reset_one(uid_t); +static void setmax(int); +static void setmax_one(uid_t, int); +static void set_locktime(long); +static void set_locktime_one(uid_t, long); static void diff --git a/src/gpasswd.c b/src/gpasswd.c index 43bd9e9e..1221918d 100644 --- a/src/gpasswd.c +++ b/src/gpasswd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: gpasswd.c,v 1.15 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: gpasswd.c,v 1.16 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -65,7 +65,6 @@ static int #define RETRIES 3 #endif -extern char *crypt_make_salt P_((void)); extern int optind; extern char *optarg; #ifdef NDBM @@ -76,10 +75,9 @@ extern int gr_dbm_mode; #endif /* local function prototypes */ -static void usage P_((void)); -static RETSIGTYPE die P_((int)); -static int check_list P_((const char *)); -int main P_((int, char **)); +static void usage(void); +static RETSIGTYPE die(int); +static int check_list(const char *); /* * usage - display usage message @@ -564,11 +562,12 @@ main(int argc, char **argv) cp = pw_encrypt(pass, crypt_make_salt()); memzero(pass, sizeof pass); -#ifdef SHADOWGRP - sgent.sg_passwd = cp; -#else - grent.gr_passwd = cp; +#ifdef SHADOWGRP + if (is_shadowgrp) + sgent.sg_passwd = cp; + else #endif + grent.gr_passwd = cp; SYSLOG((LOG_INFO, "change the password for group %s by %s\n", group, myname)); /* diff --git a/src/groupadd.c b/src/groupadd.c index 6af3861c..24200e56 100644 --- a/src/groupadd.c +++ b/src/groupadd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: groupadd.c,v 1.14 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: groupadd.c,v 1.15 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -82,19 +82,18 @@ extern int optind; extern char *optarg; /* local function prototypes */ -static void usage P_((void)); -static void new_grent P_((struct group *)); +static void usage(void); +static void new_grent(struct group *); #ifdef SHADOWGRP -static void new_sgent P_((struct sgrp *)); +static void new_sgent(struct sgrp *); #endif -static void grp_update P_((void)); -static void find_new_gid P_((void)); -static void check_new_name P_((void)); -static void process_flags P_((int, char **)); -static void close_files P_((void)); -static void open_files P_((void)); -static void fail_exit P_((int)); -int main P_((int, char **)); +static void grp_update(void); +static void find_new_gid(void); +static void check_new_name(void); +static void process_flags(int, char **); +static void close_files(void); +static void open_files(void); +static void fail_exit(int); /* * usage - display usage message and exit diff --git a/src/groupdel.c b/src/groupdel.c index 82e9b311..38efa9a6 100644 --- a/src/groupdel.c +++ b/src/groupdel.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: groupdel.c,v 1.10 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: groupdel.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -70,12 +70,11 @@ static int is_shadow_grp; #define E_GRP_UPDATE 10 /* can't update group file */ /* local function prototypes */ -static void usage P_((void)); -static void grp_update P_((void)); -static void close_files P_((void)); -static void open_files P_((void)); -static void group_busy P_((gid_t)); -int main P_((int, char **)); +static void usage(void); +static void grp_update(void); +static void close_files(void); +static void open_files(void); +static void group_busy(gid_t); /* * usage - display usage message and exit diff --git a/src/groupmod.c b/src/groupmod.c index a12e78e8..9ed679cf 100644 --- a/src/groupmod.c +++ b/src/groupmod.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: groupmod.c,v 1.12 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: groupmod.c,v 1.13 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -83,18 +83,17 @@ extern int optind; extern char *optarg; /* local function prototypes */ -static void usage P_((void)); -static void new_grent P_((struct group *)); +static void usage(void); +static void new_grent(struct group *); #ifdef SHADOWGRP -static void new_sgent P_((struct sgrp *)); +static void new_sgent(struct sgrp *); #endif -static void grp_update P_((void)); -static void check_new_gid P_((void)); -static void check_new_name P_((void)); -static void process_flags P_((int, char **)); -static void close_files P_((void)); -static void open_files P_((void)); -int main P_((int, char **)); +static void grp_update(void); +static void check_new_gid(void); +static void check_new_name(void); +static void process_flags(int, char **); +static void close_files(void); +static void open_files(void); /* * usage - display usage message and exit diff --git a/src/groups.c b/src/groups.c index b3d4d23f..875272c8 100644 --- a/src/groups.c +++ b/src/groups.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: groups.c,v 1.5 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: groups.c,v 1.6 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <pwd.h> @@ -39,8 +39,7 @@ RCSID(PKG_VER "$Id: groups.c,v 1.5 1999/06/07 16:40:45 marekm Exp $") #include "defines.h" /* local function prototypes */ -static void print_groups P_((const char *)); -int main P_((int, char **)); +static void print_groups(const char *); /* * print_groups - print the groups which the named user is a member of diff --git a/src/grpck.c b/src/grpck.c index 47cd91d9..dec6782b 100644 --- a/src/grpck.c +++ b/src/grpck.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: grpck.c,v 1.12 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: grpck.c,v 1.13 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <fcntl.h> @@ -44,13 +44,13 @@ RCSID(PKG_VER "$Id: grpck.c,v 1.12 1999/06/07 16:40:45 marekm Exp $") #include "commonio.h" #include "groupio.h" -extern void __gr_del_entry P_((const struct commonio_entry *)); -extern struct commonio_entry *__gr_get_head P_((void)); +extern void __gr_del_entry(const struct commonio_entry *); +extern struct commonio_entry *__gr_get_head(void); #ifdef SHADOWGRP #include "sgroupio.h" -extern void __sgr_del_entry P_((const struct commonio_entry *)); -extern struct commonio_entry *__sgr_get_head P_((void)); +extern void __sgr_del_entry(const struct commonio_entry *); +extern struct commonio_entry *__sgr_get_head(void); #endif /* @@ -83,10 +83,9 @@ static const char *sgr_file = SGROUP_FILE; static int read_only = 0; /* local function prototypes */ -static void usage P_((void)); -static int yes_or_no P_((void)); -static void delete_member P_((char **, const char *)); -int main P_((int, char **)); +static void usage(void); +static int yes_or_no(void); +static void delete_member(char **, const char *); /* * usage - print syntax message and exit @@ -289,7 +288,7 @@ main(int argc, char **argv) * be parsed properly. */ - if (!gre->entry) { + if (!gre->eptr) { /* * Tell the user this entire line is bogus and @@ -327,7 +326,7 @@ delete_gr: * Group structure is good, start using it. */ - grp = gre->entry; + grp = gre->eptr; /* * Make sure this entry has a unique name. @@ -335,7 +334,7 @@ delete_gr: for (tgre = __gr_get_head(); tgre; tgre = tgre->next) { - const struct group *ent = tgre->entry; + const struct group *ent = tgre->eptr; /* * Don't check this entry @@ -444,7 +443,7 @@ delete_gr: * be parsed properly. */ - if (!sge->entry) { + if (!sge->eptr) { /* * Tell the user this entire line is bogus and @@ -482,7 +481,7 @@ delete_sg: * Shadow group structure is good, start using it. */ - sgr = sge->entry; + sgr = sge->eptr; /* * Make sure this entry has a unique name. @@ -490,7 +489,7 @@ delete_sg: for (tsge = __sgr_get_head(); tsge; tsge = tsge->next) { - const struct sgrp *ent = tsge->entry; + const struct sgrp *ent = tsge->eptr; /* * Don't check this entry diff --git a/src/grpconv.c b/src/grpconv.c index 3a62d123..8e641fd3 100644 --- a/src/grpconv.c +++ b/src/grpconv.c @@ -27,14 +27,13 @@ #include "sgroupio.h" #include "rcsid.h" -RCSID(PKG_VER "$Id: grpconv.c,v 1.10 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: grpconv.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") static int group_locked = 0; static int gshadow_locked = 0; /* local function prototypes */ -static void fail_exit P_((int)); -int main P_((int, char **)); +static void fail_exit(int); static void fail_exit(int status) diff --git a/src/grpunconv.c b/src/grpunconv.c index 3f836ed6..59cb4994 100644 --- a/src/grpunconv.c +++ b/src/grpunconv.c @@ -11,7 +11,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: grpunconv.c,v 1.9 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: grpunconv.c,v 1.10 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <stdlib.h> @@ -32,8 +32,7 @@ static int group_locked = 0; static int gshadow_locked = 0; /* local function prototypes */ -static void fail_exit P_((int)); -int main P_((int, char **)); +static void fail_exit(int); static void fail_exit(int status) diff --git a/src/id.c b/src/id.c index fa452f89..28839a02 100644 --- a/src/id.c +++ b/src/id.c @@ -38,7 +38,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: id.c,v 1.5 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: id.c,v 1.6 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -47,8 +47,7 @@ RCSID(PKG_VER "$Id: id.c,v 1.5 1999/06/07 16:40:45 marekm Exp $") #include "defines.h" /* local function prototypes */ -static void usage P_((void)); -int main P_((int, char **)); +static void usage(void); static void usage(void) diff --git a/src/lastlog.c b/src/lastlog.c index fc7eb143..a7957ac7 100644 --- a/src/lastlog.c +++ b/src/lastlog.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: lastlog.c,v 1.5 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: lastlog.c,v 1.6 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -69,9 +69,8 @@ extern char *optarg; #define NOW (time ((time_t *) 0)) /* local function prototypes */ -int main P_((int, char **)); -static void print P_((void)); -static void print_one P_((const struct passwd *)); +static void print(void); +static void print_one(const struct passwd *); int main(int argc, char **argv) diff --git a/src/login.c b/src/login.c index 224dd5e8..719005c0 100644 --- a/src/login.c +++ b/src/login.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: login.c,v 1.16 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: login.c,v 1.17 2000/08/26 18:27:18 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -78,7 +78,7 @@ RCSID(PKG_VER "$Id: login.c,v 1.16 1999/08/27 19:02:51 marekm Exp $") #include <netdb.h> #endif -#ifdef USE_PAM_not_yet +#ifdef USE_PAM #include "pam_defs.h" static const struct pam_conv conv = { @@ -96,7 +96,7 @@ static pam_handle_t *pamh = NULL; #define PAM_END { retcode = pam_close_session(pamh,0); \ pam_end(pamh,retcode); } -#endif /* USE_PAM_not_yet */ +#endif /* USE_PAM */ /* * Needed for MkLinux DR1/2/2.1 - J. @@ -140,16 +140,14 @@ static int timeout; extern char **newenvp; extern size_t newenvc; -extern char *tz P_((const char *)); -extern void subsystem P_((const struct passwd *)); -extern void dolastlog P_((struct lastlog *, const struct passwd *, const char *, const char *)); +extern void dolastlog(struct lastlog *, const struct passwd *, const char *, const char *); extern int optind; extern char *optarg; extern char **environ; -extern int login_access P_((const char *user, const char *from)); -extern void login_fbtab P_((const char *tty, uid_t uid, gid_t gid)); +extern int login_access(const char *, const char *); +extern void login_fbtab(const char *, uid_t, gid_t); #ifndef ALARM #define ALARM 60 @@ -175,14 +173,15 @@ static struct faillog faillog; #define MANY_FAILS "REPEATED login failures%s\n" /* local function prototypes */ -static void usage P_((void)); -static void setup_tty P_((void)); -static void bad_time_notify P_((void)); -static void check_flags P_((int, char * const *)); -static void check_nologin P_((void)); -static void init_env P_((void)); -static RETSIGTYPE alarm_handler P_((int)); -int main P_((int, char **)); +static void usage(void); +static void setup_tty(void); +static void bad_time_notify(void); +static void check_flags(int, char * const *); +#ifndef USE_PAM +static void check_nologin(void); +#endif +static void init_env(void); +static RETSIGTYPE alarm_handler(int); /* * usage - print login command usage and exit @@ -305,7 +304,7 @@ check_flags(int argc, char * const *argv) } } - +#ifndef USE_PAM static void check_nologin(void) { @@ -352,7 +351,7 @@ check_nologin(void) printf(_("\n[Disconnect bypassed -- root login allowed.]\n")); } } - +#endif /* !USE_PAM */ static void init_env(void) @@ -436,10 +435,11 @@ main(int argc, char **argv) char **envp = environ; static char temp_pw[2]; static char temp_shell[] = "/bin/sh"; -#ifdef USE_PAM_not_yet +#ifdef USE_PAM int retcode; pid_t child; -#endif /* USE_PAM_not_yet */ + char *pam_user; +#endif /* USE_PAM */ #ifdef SHADOWPWD struct spwd *spwd=NULL; #endif @@ -704,7 +704,7 @@ top: delay = getdef_num("FAIL_DELAY", 1); retries = getdef_num("LOGIN_RETRIES", RETRIES); -#ifdef USE_PAM_not_yet +#ifdef USE_PAM retcode = pam_start("login", username, &conv, &pamh); if(retcode != PAM_SUCCESS) { fprintf(stderr,"login: PAM Failure, aborting: %s\n", @@ -714,15 +714,38 @@ top: exit(99); } /* hostname & tty are either set to NULL or their correct values, - depending on how much we know */ + depending on how much we know. We also set PAM's fail delay + to ours. */ retcode = pam_set_item(pamh, PAM_RHOST, hostname); PAM_FAIL_CHECK; retcode = pam_set_item(pamh, PAM_TTY, tty); PAM_FAIL_CHECK; - +#ifdef HAVE_PAM_FAIL_DELAY + retcode = pam_fail_delay(pamh, 1000000*delay); + PAM_FAIL_CHECK; +#endif /* if fflg == 1, then the user has already been authenticated */ if (!fflg || (getuid() != 0)) { - int failcount = 0; + int failcount; + char hostn[256]; + char login_prompt[256]; /* That's one hell of a prompt :) */ + + /* Make the login prompt look like we want it */ + if (!gethostname(hostn, sizeof(hostn))) + snprintf(login_prompt, sizeof(login_prompt), + "%s login: ", hostn); + else + snprintf(login_prompt, sizeof(login_prompt), + "login: "); + + retcode = pam_set_item(pamh, PAM_USER_PROMPT, login_prompt); + PAM_FAIL_CHECK; + + /* if we didn't get a user on the command line, + set it to NULL */ + pam_get_item(pamh, PAM_USER, (const void **) &pam_user); + if (pam_user[0] == '\0') + pam_set_item(pamh, PAM_USER, NULL); /* there may be better ways to deal with some of these conditions, but at least this way I don't think we'll @@ -737,30 +760,33 @@ top: (retcode == PAM_USER_UNKNOWN) || (retcode == PAM_CRED_INSUFFICIENT) || (retcode == PAM_AUTHINFO_UNAVAIL))) { - pam_get_item(pamh, PAM_USER, (const void **) &username); + pam_get_item(pamh, PAM_USER, (const void **) &pam_user); syslog(LOG_NOTICE,"FAILED LOGIN %d FROM %s FOR %s, %s", - failcount, hostname, username, + failcount, hostname, pam_user, PAM_STRERROR(pamh, retcode)); - fprintf(stderr,"Login incorrect\n\n"); - pam_set_item(pamh,PAM_USER,NULL); +#ifdef HAVE_PAM_FAIL_DELAY + pam_fail_delay(pamh, 1000000*delay); +#endif + fprintf(stderr, "Login incorrect\n\n"); + pam_set_item(pamh, PAM_USER, NULL); retcode = pam_authenticate(pamh, 0); } if (retcode != PAM_SUCCESS) { - pam_get_item(pamh, PAM_USER, (const void **) &username); + pam_get_item(pamh, PAM_USER, (const void **) &pam_user); if (retcode == PAM_MAXTRIES) syslog(LOG_NOTICE, "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s", - failcount, hostname, username, + failcount, hostname, pam_user, PAM_STRERROR(pamh, retcode)); else syslog(LOG_NOTICE, "FAILED LOGIN SESSION FROM %s FOR %s, %s", - hostname, username, + hostname, pam_user, PAM_STRERROR(pamh, retcode)); - fprintf(stderr,"\nLogin incorrect\n"); + fprintf(stderr, "\nLogin incorrect\n"); pam_end(pamh, retcode); exit(0); } @@ -777,11 +803,12 @@ top: /* Grab the user information out of the password file for future usage First get the username that we are actually using, though. */ - retcode = pam_get_item(pamh, PAM_USER, (const void **) &username); + retcode = pam_get_item(pamh, PAM_USER, (const void **) &pam_user); setpwent(); - pwd = getpwnam(username); - if (pwd) - initgroups(username, pwd->pw_gid); + pwd = getpwnam(pam_user); + + if (!pwd || setup_groups(pwd)) + exit(1); retcode = pam_setcred(pamh, PAM_ESTABLISH_CRED); PAM_FAIL_CHECK; @@ -790,7 +817,7 @@ top: PAM_FAIL_CHECK; -#else /* ! USE_PAM_not_yet */ +#else /* ! USE_PAM */ while (1) { /* repeatedly get login/password pairs */ failed = 0; /* haven't failed authentication yet */ #ifdef RADIUS @@ -813,8 +840,15 @@ top: #endif continue; } - if (! (pwd = getpwnam(username))) { +#endif /* ! USE_PAM */ + +#ifdef USE_PAM + if (!(pwd = getpwnam(pam_user))) { + pwent.pw_name = pam_user; +#else + if (!(pwd = getpwnam(username))) { pwent.pw_name = username; +#endif strcpy(temp_pw, "!"); pwent.pw_passwd = temp_pw; pwent.pw_shell = temp_shell; @@ -824,7 +858,8 @@ top: } else { pwent = *pwd; } -#ifdef SHADOWPWD +#ifndef USE_PAM +#ifdef SHADOWPWD spwd = NULL; if (pwd && strcmp(pwd->pw_passwd, SHADOW_PASSWD_STRING) == 0) { spwd = getspnam(username); @@ -833,7 +868,7 @@ top: else SYSLOG((LOG_WARN, NO_SHADOW, username, fromhost)); } -#endif /* SHADOWPWD */ +#endif /* SHADOWPWD */ /* * If the encrypted password begins with a "!", the account @@ -996,9 +1031,9 @@ auth_ok: exit(1); } } /* while (1) */ -#endif /* ! USE_PAM_not_yet */ +#endif /* ! USE_PAM */ (void) alarm (0); /* turn off alarm clock */ -#if 1 +#ifndef USE_PAM /* PAM does this */ /* * porttime checks moved here, after the user has been * authenticated. now prints a message, as suggested @@ -1011,14 +1046,18 @@ auth_ok: bad_time_notify(); exit(1); } -#endif check_nologin(); +#endif if (getenv("IFS")) /* don't export user IFS ... */ addenv("IFS= \t\n", NULL); /* ... instead, set a safe IFS */ +#ifdef USE_PAM + setutmp(pam_user, tty, hostname); /* make entry in utmp & wtmp files */ +#else setutmp(username, tty, hostname); /* make entry in utmp & wtmp files */ +#endif if (pwent.pw_shell[0] == '*') { /* subsystem root */ subsystem (&pwent); /* figure out what to execute */ subroot++; /* say i was here again */ @@ -1032,14 +1071,17 @@ auth_ok: #endif goto top; /* go do all this all over again */ } +#ifndef USE_PAM /* pam_lastlog handles this */ if (getdef_bool("LASTLOG_ENAB")) /* give last login and log this one */ dolastlog(&lastlog, &pwent, utent.ut_line, hostname); +#endif #ifdef SVR4_SI86_EUA sysi86(SI86LIMUSER, EUA_ADD_USER); /* how do we test for fail? */ #endif -#ifdef AGING +#ifndef USE_PAM /* PAM handles this as well */ +#ifdef AGING /* * Have to do this while we still have root privileges, otherwise * we don't have access to /etc/shadow. expire() closes password @@ -1066,7 +1108,7 @@ auth_ok: } #endif /* ATT_AGE */ #endif /* SHADOWPWD */ -#endif /* AGING */ +#endif /* AGING */ #ifdef RADIUS if (is_rad_login) { @@ -1082,6 +1124,7 @@ auth_ok: } #endif setup_limits(&pwent); /* nice, ulimit etc. */ +#endif /* ! USE_PAM */ chown_tty(tty, &pwent); #ifdef LOGIN_FBTAB @@ -1117,7 +1160,12 @@ auth_ok: login_fbtab(tty, pwent.pw_uid, pwent.pw_gid); #endif + /* We call set_groups() above because this clobbers pam_groups.so */ +#ifndef USE_PAM if (setup_uid_gid(&pwent, is_console)) +#else + if (change_uid(&pwent)) +#endif exit(1); #ifdef KERBEROS @@ -1135,7 +1183,7 @@ auth_ok: setup_env(&pwent); /* set env vars, cd to the home dir */ -#ifdef USE_PAM_not_yet +#ifdef USE_PAM { int i; const char * const * env; @@ -1154,6 +1202,8 @@ auth_ok: if (!hushed(&pwent)) { addenv("HUSHLOGIN=FALSE", NULL); + /* pam_unix, pam_mail and pam_lastlog should take care of this */ +#ifndef USE_PAM motd(); /* print the message of the day */ if (getdef_bool("FAILLOG_ENAB") && faillog.fail_cnt != 0) { failprint(&faillog); @@ -1192,6 +1242,7 @@ auth_ok: #endif #endif /* AGING */ mailcheck(); /* report on the status of mail */ +#endif /* !USE_PAM */ } else addenv("HUSHLOGIN=TRUE", NULL); @@ -1203,7 +1254,7 @@ auth_ok: signal(SIGALRM, SIG_DFL); /* default alarm signal */ signal(SIGHUP, SIG_DFL); /* added this. --marekm */ -#ifdef USE_PAM_not_yet +#ifdef USE_PAM /* We must fork before setuid() because we need to call * pam_close_session() as root. */ @@ -1211,20 +1262,26 @@ auth_ok: the parent process of login (init, telnetd, ...) is responsible for calling pam_close_session(). This avoids an extra process for each login. Maybe we should do this on Linux too? -MM */ - signal(SIGINT, SIG_IGN); - child = fork(); - if (child < 0) { - /* error in fork() */ - fprintf(stderr,"login: failure forking: %s", strerror(errno)); - PAM_END; - exit(0); - } else if (child) { - /* parent - wait for child to finish, then cleanup session */ - wait(NULL); - PAM_END; - exit(0); + /* We let the admin configure whether they need to keep login + around to close sessions */ + if (getdef_bool("CLOSE_SESSIONS")) { + signal(SIGINT, SIG_IGN); + child = fork(); + if (child < 0) { + /* error in fork() */ + fprintf(stderr, "login: failure forking: %s", + strerror(errno)); + PAM_END; + exit(0); + } else if (child) { + /* parent - wait for child to finish, + then cleanup session */ + wait(NULL); + PAM_END; + exit(0); + } + /* child */ } - /* child */ #endif signal(SIGINT, SIG_DFL); /* default interrupt signal */ diff --git a/src/logoutd.c b/src/logoutd.c index 44c6b2c9..fa285f06 100644 --- a/src/logoutd.c +++ b/src/logoutd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: logoutd.c,v 1.14 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: logoutd.c,v 1.15 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -60,8 +60,7 @@ static char *Prog; #endif /* local function prototypes */ -static int check_login P_((const struct utmp *)); -int main P_((int, char **)); +static int check_login(const struct utmp *); /* diff --git a/src/mkpasswd.c b/src/mkpasswd.c index 8f7c2834..e35da31f 100644 --- a/src/mkpasswd.c +++ b/src/mkpasswd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: mkpasswd.c,v 1.6 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: mkpasswd.c,v 1.7 2000/08/26 18:27:18 marekm Exp $") #include <sys/stat.h> #include "prototypes.h" @@ -103,8 +103,7 @@ extern int sg_dbm_update(); #endif /* local function prototypes */ -int main P_((int, char **)); -static void usage P_((void)); +static void usage(void); /* * mkpasswd - create DBM files for /etc/passwd-like input file diff --git a/src/newgrp.c b/src/newgrp.c index cf22f499..0b461eba 100644 --- a/src/newgrp.c +++ b/src/newgrp.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: newgrp.c,v 1.14 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: newgrp.c,v 1.15 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <errno.h> @@ -53,8 +53,7 @@ static char *Prog; static int is_newgrp; /* local function prototypes */ -static void usage P_((void)); -int main P_((int, char **)); +static void usage(void); /* * usage - print command usage message @@ -79,6 +78,7 @@ main(int argc, char **argv) int initflag = 0; int needspasswd = 0; int i; + int their_grp = 0; int cflag = 0; gid_t gid; char *cp; @@ -95,7 +95,10 @@ main(int argc, char **argv) struct sgrp *sgrp; #endif +#if ENABLE_NLS + /* XXX - remove when gettext is safe to use in setuid programs */ sanitize_env(); +#endif setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); @@ -243,6 +246,7 @@ main(int argc, char **argv) goto failure; } group = grp->gr_name; + their_grp = 1; } else if (! (grp = getgrnam (group))) { fprintf (stderr, _("unknown group: %s\n"), group); goto failure; @@ -259,9 +263,13 @@ main(int argc, char **argv) * if she isn't a member, she needs to provide the * group password. if there is no group password, she * will be denied access anyway. + * + * we also check if this is the users default group, eg. + * they aren't a member, but this is the group listed as + * the one they belong to in their pwd entry. */ - if (!is_on_list(grp->gr_mem, name)) + if (!is_on_list(grp->gr_mem, name) && !their_grp) needspasswd = 1; /* diff --git a/src/newusers.c b/src/newusers.c index a9141330..fd313c4b 100644 --- a/src/newusers.c +++ b/src/newusers.c @@ -36,7 +36,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: newusers.c,v 1.10 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: newusers.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -49,8 +49,6 @@ RCSID(PKG_VER "$Id: newusers.c,v 1.10 1999/06/07 16:40:45 marekm Exp $") static char *Prog; -extern char *crypt_make_salt P_((void)); - #include "getdef.h" #include "pwio.h" #include "groupio.h" @@ -62,12 +60,11 @@ static int is_shadow; #endif /* local function prototypes */ -static void usage P_((void)); -static int add_group P_((const char *, const char *, gid_t *)); -static int add_user P_((const char *, const char *, uid_t *, gid_t)); -static void update_passwd P_((struct passwd *, const char *)); -static int add_passwd P_((struct passwd *, const char *)); -int main P_((int, char **)); +static void usage(void); +static int add_group(const char *, const char *, gid_t *); +static int add_user(const char *, const char *, uid_t *, gid_t); +static void update_passwd(struct passwd *, const char *); +static int add_passwd(struct passwd *, const char *); /* * usage - display usage message and exit diff --git a/src/passwd.c b/src/passwd.c index 2ab85437..535af0c8 100644 --- a/src/passwd.c +++ b/src/passwd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: passwd.c,v 1.18 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: passwd.c,v 1.19 2000/08/26 18:27:18 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -155,7 +155,6 @@ static int tcfs_force = 0; * External identifiers */ -extern char *crypt_make_salt P_((void)); #ifdef ATT_AGE extern char *l64a(); #endif @@ -197,39 +196,38 @@ extern int pw_dbm_mode; #define NOCHGPASSWD "did not change password for `%s'" /* local function prototypes */ -static void usage P_((int)); +static void usage(int); #ifndef USE_PAM #ifdef AUTH_METHODS -static char *get_password P_((const char *)); -static int uses_default_method P_((const char *)); +static char *get_password(const char *); +static int uses_default_method(const char *); #endif /* AUTH_METHODS */ -static int reuse P_((const char *, const struct passwd *)); -static int new_password P_((const struct passwd *)); +static int reuse(const char *, const struct passwd *); +static int new_password(const struct passwd *); #ifdef SHADOWPWD -static void check_password P_((const struct passwd *, const struct spwd *)); +static void check_password(const struct passwd *, const struct spwd *); #else /* !SHADOWPWD */ -static void check_password P_((const struct passwd *)); +static void check_password(const struct passwd *); #endif /* !SHADOWPWD */ -static char *insert_crypt_passwd P_((const char *, const char *)); +static char *insert_crypt_passwd(const char *, const char *); #endif /* !USE_PAM */ -static char *date_to_str P_((time_t)); -static const char *pw_status P_((const char *)); -static void print_status P_((const struct passwd *)); -static void fail_exit P_((int)); -static void oom P_((void)); -static char *update_crypt_pw P_((char *)); -static void update_noshadow P_((void)); +static char *date_to_str(time_t); +static const char *pw_status(const char *); +static void print_status(const struct passwd *); +static void fail_exit(int); +static void oom(void); +static char *update_crypt_pw(char *); +static void update_noshadow(void); #ifdef SHADOWPWD -static void update_shadow P_((void)); +static void update_shadow(void); #endif #ifdef HAVE_TCFS -static void update_tcfs P_((void)); +static void update_tcfs(void); #endif #ifdef HAVE_USERSEC_H -static void update_userpw P_((char *)); +static void update_userpw(char *); #endif -static long getnumber P_((const char *)); -int main P_((int, char **)); +static long getnumber(const char *); /* * usage - print command usage and exit @@ -301,10 +299,10 @@ reuse(const char *pass, const struct passwd *pw) #ifdef HAVE_LIBCRACK_HIST const char *reason; #ifdef HAVE_LIBCRACK_PW - const char *FascistHistoryPw P_((const char *,const struct passwd *)); + const char *FascistHistoryPw(const char *,const struct passwd *); reason = FascistHistory(pass, pw); #else - const char *FascistHistory P_((const char *, int)); + const char *FascistHistory(const char *, int); reason = FascistHistory(pass, pw->pw_uid); #endif if (reason) { @@ -333,7 +331,7 @@ new_password(const struct passwd *pw) int warned; int pass_max_len; #ifdef HAVE_LIBCRACK_HIST - int HistUpdate P_((const char *, const char *)); + int HistUpdate(const char *, const char *); #endif /* diff --git a/src/pwck.c b/src/pwck.c index f30241b0..13aec57b 100644 --- a/src/pwck.c +++ b/src/pwck.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: pwck.c,v 1.13 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: pwck.c,v 1.14 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <fcntl.h> @@ -44,13 +44,13 @@ RCSID(PKG_VER "$Id: pwck.c,v 1.13 1999/06/07 16:40:45 marekm Exp $") #include "commonio.h" #include "pwio.h" -extern void __pw_del_entry P_((const struct commonio_entry *)); -extern struct commonio_entry *__pw_get_head P_((void)); +extern void __pw_del_entry(const struct commonio_entry *); +extern struct commonio_entry *__pw_get_head(void); #ifdef SHADOWPWD #include "shadowio.h" -extern void __spw_del_entry P_((const struct commonio_entry *)); -extern struct commonio_entry *__spw_get_head P_((void)); +extern void __spw_del_entry(const struct commonio_entry *); +extern struct commonio_entry *__spw_get_head(void); #endif /* @@ -84,9 +84,8 @@ static int read_only = 0; static int quiet = 0; /* don't report warnings, only errors */ /* local function prototypes */ -static void usage P_((void)); -static int yes_or_no P_((void)); -int main P_((int, char **)); +static void usage(void); +static int yes_or_no(void); /* * usage - print syntax message and exit @@ -276,7 +275,7 @@ main(int argc, char **argv) * be parsed properly. */ - if (!pfe->entry) { + if (!pfe->eptr) { /* * Tell the user this entire line is bogus and @@ -314,14 +313,14 @@ delete_pw: * Password structure is good, start using it. */ - pwd = pfe->entry; + pwd = pfe->eptr; /* * Make sure this entry has a unique name. */ for (tpfe = __pw_get_head(); tpfe; tpfe = tpfe->next) { - const struct passwd *ent = tpfe->entry; + const struct passwd *ent = tpfe->eptr; /* * Don't check this entry @@ -445,7 +444,7 @@ delete_pw: * be parsed properly. */ - if (!spe->entry) { + if (!spe->eptr) { /* * Tell the user this entire line is bogus and @@ -483,14 +482,14 @@ delete_spw: * Shadow password structure is good, start using it. */ - spw = spe->entry; + spw = spe->eptr; /* * Make sure this entry has a unique name. */ for (tspe = __spw_get_head(); tspe; tspe = tspe->next) { - const struct spwd *ent = tspe->entry; + const struct spwd *ent = tspe->eptr; /* * Don't check this entry diff --git a/src/pwconv.c b/src/pwconv.c index fcaad97d..3a32370b 100644 --- a/src/pwconv.c +++ b/src/pwconv.c @@ -31,7 +31,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: pwconv.c,v 1.10 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: pwconv.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") #include <stdio.h> #include <stdlib.h> @@ -65,8 +65,7 @@ static int passwd_locked = 0; /* local function prototypes */ -static void fail_exit P_((int)); -int main P_((int, char **)); +static void fail_exit(int); static void fail_exit(int status) diff --git a/src/pwunconv.c b/src/pwunconv.c index 6e6a172b..9335a489 100644 --- a/src/pwunconv.c +++ b/src/pwunconv.c @@ -39,7 +39,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: pwunconv.c,v 1.8 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: pwunconv.c,v 1.9 2000/08/26 18:27:18 marekm Exp $") #include "defines.h" #include <sys/types.h> @@ -72,8 +72,7 @@ static int shadow_locked = 0, passwd_locked = 0; /* local function prototypes */ -static void fail_exit P_((int)); -int main P_((int, char **)); +static void fail_exit(int); static void fail_exit(int status) diff --git a/src/su.c b/src/su.c index 3f4f4309..5fc6278d 100644 --- a/src/su.c +++ b/src/su.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: su.c,v 1.13 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: su.c,v 1.14 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <stdio.h> @@ -63,9 +63,9 @@ static pam_handle_t *pamh = NULL; * Global variables */ -/* needed by sulog.c */ -char name[BUFSIZ]; -char oldname[BUFSIZ]; +/* not needed by sulog.c anymore */ +static char name[BUFSIZ]; +static char oldname[BUFSIZ]; static char *Prog; @@ -78,19 +78,14 @@ struct passwd pwent; extern char **newenvp; extern size_t newenvc; -extern void sulog P_((const char *, int)); -extern void subsystem P_((const struct passwd *)); -extern char *tz P_((const char *)); -extern int check_su_auth P_((const char *, const char *)); extern char **environ; /* local function prototypes */ -int main P_((int, char **)); #ifndef USE_PAM -static RETSIGTYPE die P_((int)); -static int iswheel P_((const char *)); +static RETSIGTYPE die(int); +static int iswheel(const char *); /* * die - set or reset termio modes. @@ -133,7 +128,7 @@ iswheel(const char *username) static void su_failure(const char *tty) { - sulog(tty, 0); /* log failed attempt */ + sulog(tty, 0, oldname, name); /* log failed attempt */ #ifdef USE_SYSLOG if (getdef_bool("SYSLOG_SU_ENAB")) SYSLOG((pwent.pw_uid ? LOG_INFO:LOG_NOTICE, @@ -247,27 +242,24 @@ main(int argc, char **argv) * be ignored and a new one created later on. */ - if (! fakelogin) - while (*envp) - addenv(*envp++, NULL); - - if (fakelogin && (cp=getdef_str("ENV_TZ"))) - addenv(*cp == '/' ? tz(cp) : cp, NULL); - + if (fakelogin) { + if ((cp=getdef_str("ENV_TZ"))) + addenv(*cp == '/' ? tz(cp) : cp, NULL); /* * The clock frequency will be reset to the login value if required */ - - if (fakelogin && (cp=getdef_str("ENV_HZ")) ) - addenv(cp, NULL); /* set the default $HZ, if one */ - + if ((cp=getdef_str("ENV_HZ"))) + addenv(cp, NULL); /* set the default $HZ, if one */ /* * The terminal type will be left alone if it is present in the * environment already. */ - - if (fakelogin && (cp = getenv ("TERM"))) - addenv("TERM", cp); + if ((cp = getenv ("TERM"))) + addenv("TERM", cp); + } else { + while (*envp) + addenv(*envp++, NULL); + } /* * The next argument must be either a user ID, or some flag to @@ -508,8 +500,19 @@ top: } #endif /* !USE_PAM */ - cp = getdef_str(pwent.pw_uid == 0 ? "ENV_SUPATH" : "ENV_PATH"); + cp = getdef_str((pwent.pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH"); +#if 0 addenv(cp ? cp : "PATH=/bin:/usr/bin", NULL); +#else + /* XXX very similar code duplicated in libmisc/setupenv.c */ + if (!cp) { + addenv("PATH=/bin:/usr/bin", NULL); + } else if (strchr(cp, '=')) { + addenv(cp, NULL); + } else { + addenv("PATH", cp); + } +#endif environ = newenvp; /* make new environment active */ @@ -525,7 +528,7 @@ top: goto top; } - sulog (tty, 1); /* save SU information */ + sulog(tty, 1, oldname, name); /* save SU information */ endpwent (); #ifdef SHADOWPWD endspent (); @@ -593,20 +596,6 @@ top: * arguments. */ - if (! doshell) { - - /* - * Use new user's shell from /etc/passwd and create an - * argv with the rest of the command line included. - */ - - argv[-1] = pwent.pw_shell; - (void) execv (pwent.pw_shell, &argv[-1]); - (void) fprintf (stderr, _("No shell\n")); - SYSLOG((LOG_WARN, "Cannot execute %s\n", pwent.pw_shell)); - closelog(); - exit (1); - } if (fakelogin) { char *arg0; @@ -627,6 +616,21 @@ top: } else cp = Basename(pwent.pw_shell); + if (! doshell) { + + /* + * Use new user's shell from /etc/passwd and create an + * argv with the rest of the command line included. + */ + + argv[-1] = pwent.pw_shell; + (void) execv (pwent.pw_shell, &argv[-1]); + (void) fprintf (stderr, _("No shell\n")); + SYSLOG((LOG_WARN, "Cannot execute %s\n", pwent.pw_shell)); + closelog(); + exit (1); + } + shell(pwent.pw_shell, cp); /*NOTREACHED*/ exit(1); diff --git a/src/sulogin.c b/src/sulogin.c index b987b286..baef1cce 100644 --- a/src/sulogin.c +++ b/src/sulogin.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: sulogin.c,v 1.10 1999/08/27 19:02:51 marekm Exp $") +RCSID(PKG_VER "$Id: sulogin.c,v 1.11 2000/08/26 18:27:18 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -65,15 +65,13 @@ extern char **newenvp; extern size_t newenvc; extern char **environ; -extern char *tz P_((const char *)); #ifndef ALARM #define ALARM 60 #endif /* local function prototypes */ -static RETSIGTYPE catch P_((int)); -int main P_((int, char **)); +static RETSIGTYPE catch(int); static RETSIGTYPE catch(int sig) @@ -170,7 +168,7 @@ main(int argc, char **argv) alarm (ALARM); /* only wait so long ... */ while (1) { /* repeatedly get login/password pairs */ - entry (name, &pwent); /* get entry from password file */ + pw_entry(name, &pwent); /* get entry from password file */ if (pwent.pw_name == (char *) 0) { /* diff --git a/src/useradd.c b/src/useradd.c index dc233949..a2492e07 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: useradd.c,v 1.16 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: useradd.c,v 1.17 2000/08/26 18:27:18 marekm Exp $") #include "prototypes.h" #include "defines.h" @@ -197,33 +197,32 @@ static int sg_dbm_added; #endif /* local function prototypes */ -static void fail_exit P_((int)); -static struct group *getgr_nam_gid P_((const char *)); -static long get_number P_((const char *)); -static void get_defaults P_((void)); -static void show_defaults P_((void)); -static int set_defaults P_((void)); -static int get_groups P_((char *)); -static void usage P_((void)); -static void new_pwent P_((struct passwd *)); +static void fail_exit(int); +static struct group *getgr_nam_gid(const char *); +static long get_number(const char *); +static void get_defaults(void); +static void show_defaults(void); +static int set_defaults(void); +static int get_groups(char *); +static void usage(void); +static void new_pwent(struct passwd *); #ifdef SHADOWPWD -static long scale_age P_((long)); -static void new_spent P_((struct spwd *)); +static long scale_age(long); +static void new_spent(struct spwd *); #endif -static void grp_update P_((void)); -static void find_new_uid P_((void)); +static void grp_update(void); +static void find_new_uid(void); #ifdef AUTH_METHODS -static void convert_auth P_((char *, const char *)); -static int valid_auth P_((const char *)); +static void convert_auth(char *, const char *); +static int valid_auth(const char *); #endif -static void process_flags P_((int argc, char **argv)); -static void close_files P_((void)); -static void open_files P_((void)); -static void faillog_reset P_((uid_t)); -static void lastlog_reset P_((uid_t)); -static void usr_update P_((void)); -static void create_home P_((void)); -int main P_((int, char **)); +static void process_flags(int argc, char **argv); +static void close_files(void); +static void open_files(void); +static void faillog_reset(uid_t); +static void lastlog_reset(uid_t); +static void usr_update(void); +static void create_home(void); /* * fail_exit - undo as much as possible diff --git a/src/userdel.c b/src/userdel.c index 6acc5b5f..135bede0 100644 --- a/src/userdel.c +++ b/src/userdel.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: userdel.c,v 1.15 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: userdel.c,v 1.16 2000/08/26 18:27:18 marekm Exp $") #include <sys/stat.h> #include <stdio.h> @@ -101,22 +101,21 @@ static int is_shadow_grp; extern int optind; /* local function prototypes */ -static void usage P_((void)); -static void update_groups P_((void)); -static void close_files P_((void)); -static void fail_exit P_((int)); -static void open_files P_((void)); -static void update_user P_((void)); -static void user_busy P_((const char *, uid_t)); -static void user_cancel P_((const char *)); +static void usage(void); +static void update_groups(void); +static void close_files(void); +static void fail_exit(int); +static void open_files(void); +static void update_user(void); +static void user_busy(const char *, uid_t); +static void user_cancel(const char *); #ifdef EXTRA_CHECK_HOME_DIR -static int path_prefix P_((const char *, const char *)); +static int path_prefix(const char *, const char *); #endif -static int is_owner P_((uid_t, const char *)); +static int is_owner(uid_t, const char *); #ifndef NO_REMOVE_MAILBOX -static void remove_mailbox P_((void)); +static void remove_mailbox(void); #endif -int main P_((int, char **)); /* * usage - display usage message and exit @@ -134,6 +133,10 @@ usage(void) * * update_groups() takes the user name that was given and searches * the group files for membership in any group. + * + * we also check to see if they have any groups they own (the same + * name is their user name) and delete them too (only if USERGROUPS_ENAB + * is enabled). */ static void @@ -188,9 +191,36 @@ update_groups(void) SYSLOG((LOG_INFO, "delete `%s' from group `%s'\n", user_name, ngrp->gr_name)); } -#ifdef NDBM +#ifdef NDBM + endgrent(); +#endif + /* + * we've removed their name from all the groups above, so + * now if they have a group with the same name as their + * user name, with no members, we delete it. + */ + + grp = getgrnam(user_name); + if (grp && getdef_bool("USERGROUPS_ENAB") && (grp->gr_mem[0] == NULL)) { + + gr_remove(grp->gr_name); + + /* + * Update the DBM group file with the new entry as well. + */ + +#ifdef NDBM + if (!gr_dbm_remove(grp)) + fprintf(stderr, + _("%s: cannot remove dbm group entry\n"), + Prog); +#endif + SYSLOG((LOG_INFO, "removed group `%s' owned by `%s'\n", + grp->gr_name, user_name)); + } +#ifdef NDBM endgrent (); -#endif /* NDBM */ +#endif #ifdef SHADOWGRP if (!is_shadow_grp) return; diff --git a/src/usermod.c b/src/usermod.c index 915cb3a7..09d1172d 100644 --- a/src/usermod.c +++ b/src/usermod.c @@ -30,7 +30,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: usermod.c,v 1.17 1999/06/07 16:40:45 marekm Exp $") +RCSID(PKG_VER "$Id: usermod.c,v 1.18 2000/08/26 18:27:18 marekm Exp $") #include <sys/types.h> #include <sys/stat.h> @@ -151,38 +151,37 @@ extern char *optarg; extern int optind; /* local function prototypes */ -static int get_groups P_((char *)); -static void usage P_((void)); -static void new_pwent P_((struct passwd *)); +static int get_groups(char *); +static void usage(void); +static void new_pwent(struct passwd *); #ifdef SHADOWPWD -static void new_spent P_((struct spwd *)); +static void new_spent(struct spwd *); #endif -static void fail_exit P_((int)); -static int update_group P_((void)); +static void fail_exit(int); +static int update_group(void); #ifdef SHADOWGRP -static int update_gshadow P_((void)); +static int update_gshadow(void); #endif -static int grp_update P_((void)); +static int grp_update(void); #ifdef AUTH_METHODS -static char *get_password P_((const char *)); -static void split_auths P_((char *, char **)); -static void update_auths P_((const char *, const char *, char *)); -static void add_auths P_((const char *, const char *, char *)); -static void delete_auths P_((const char *, const char *, char *)); -static void convert_auth P_((char *, const char *, const char *)); -static int valid_auth P_((const char *)); +static char *get_password(const char *); +static void split_auths(char *, char **); +static void update_auths(const char *, const char *, char *); +static void add_auths(const char *, const char *, char *); +static void delete_auths(const char *, const char *, char *); +static void convert_auth(char *, const char *, const char *); +static int valid_auth(const char *); #endif -static long get_number P_((const char *)); -static void process_flags P_((int, char **)); -static void close_files P_((void)); -static void open_files P_((void)); -static void usr_update P_((void)); -static void move_home P_((void)); -static void update_files P_((void)); +static long get_number(const char *); +static void process_flags(int, char **); +static void close_files(void); +static void open_files(void); +static void usr_update(void); +static void move_home(void); +static void update_files(void); #ifndef NO_MOVE_MAILBOX -static void move_mailbox P_((void)); +static void move_mailbox(void); #endif -int main P_((int, char **)); /* Had to move this over from useradd.c since we have groups named * "56k-family"... ergh. diff --git a/src/vipw.c b/src/vipw.c index d799796f..ed450d47 100644 --- a/src/vipw.c +++ b/src/vipw.c @@ -23,7 +23,7 @@ #include <config.h> #include "rcsid.h" -RCSID(PKG_VER "$Id: vipw.c,v 1.1 1999/07/09 18:02:43 marekm Exp $") +RCSID(PKG_VER "$Id: vipw.c,v 1.2 2000/08/26 18:27:19 marekm Exp $") #include "defines.h" @@ -44,13 +44,12 @@ RCSID(PKG_VER "$Id: vipw.c,v 1.1 1999/07/09 18:02:43 marekm Exp $") static const char *progname, *filename, *fileeditname; static int filelocked = 0, createedit = 0; -static int (*unlock)(); +static int (*unlock)(void); /* local function prototypes */ -static int create_backup_file P_((FILE *, const char *, struct stat *)); -static void vipwexit P_((const char *, int, int)); -static void vipwedit P_((const char *, int (*) P_((void)), int (*) P_((void)))); -int main P_((int, char **)); +static int create_backup_file(FILE *, const char *, struct stat *); +static void vipwexit(const char *, int, int); +static void vipwedit(const char *, int (*)(void), int (*)(void)); static int create_backup_file(FILE *fp, const char *backup, struct stat *sb) @@ -109,7 +108,7 @@ vipwexit(const char *msg, int syserr, int ret) #endif static void -vipwedit(const char *file, int (*file_lock) P_((void)), int (*file_unlock) P_((void))) +vipwedit(const char *file, int (*file_lock)(void), int (*file_unlock)(void)) { const char *editor; pid_t pid; @@ -143,9 +142,23 @@ vipwedit(const char *file, int (*file_lock) P_((void)), int (*file_unlock) P_((v if ((pid = fork()) == -1) vipwexit("fork", 1, 1); else if (!pid) { +#if 0 execlp(editor, editor, fileedit, (char *) 0); fprintf(stderr, "%s: %s: %s\n", progname, editor, strerror(errno)); exit(1); +#else + /* use the system() call to invoke the editor so that it accepts + command line args in the EDITOR and VISUAL environment vars */ + char *buf; + buf = (char *) malloc (strlen(editor) + strlen(fileedit) + 2); + snprintf(buf, strlen(editor) + strlen(fileedit) + 2, "%s %s", + editor, fileedit); + if (system(buf) != 0) { + fprintf(stderr, "%s: %s: %s\n", progname, editor, strerror(errno)); + exit(1); + } else + exit(0); +#endif } for (;;) {