[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: login + passwd for 30 users



on Sat, Dec 08, 2001 at 12:57:19AM +0000, Gerard Robin (robin.jag@free.fr) wrote:
> Hello,
> does any script exist, which creates 30 users automaticaly,
> with the list of 30 persons containing their name, christian name, etc...
> instead of using 30 times "adduser" ?

There's the "newusers" command, which can be passed an input file.  The
format's a bit complex, so I've written a helper script to generate
appropriate input.

It's called newusers.awk, which takes as input a file in the form:

    first-name last-name password

The invocation argument is:

    ./newusers.awk <starting userID> <input file>

Attached.

-- 
Karsten M. Self <kmself@ix.netcom.com>       http://kmself.home.netcom.com/
 What part of "Gestalt" don't you understand?             Home of the brave
  http://gestalt-system.sourceforge.net/                   Land of the free
   Free Dmitry! Boycott Adobe! Repeal the DMCA! http://www.freesklyarov.org
Geek for Hire                     http://kmself.home.netcom.com/resume.html
#!/usr/bin/awk -f

# Script to create a file suitable for use in the 'newusers' command,
# from a file consisting of user IDs and passwords in the form:
# First Last password
# Copyright (c) KMSelf Sat Aug 25 20:47:38 PDT 2001
# Distributed under GNU GPL v 2, or at your option, any later version.
# This program is distributed WITHOUT ANY WARRANTY.

BEGIN {
    # Assign starting UID, GID
    if ( ARGC > 2 ) {
	startuid = ARGV[1]
	delete ARGV[1]
    }
    else {
        printf( "Usage:  newusers <startUID> <file>\n" \
	  "...where startUID is the starting userid to add, and file is \n" \
	  "an input file in form <first name> <last name> <password>\n" \
	)

	exit
    }

    infile = ARGV[1]
    printf( "Starting UID: %s\n\n", startuid )
}

/^#/ { next }

{
    ++record
    first = $1
    last = $2
    passwd = $3
    user= substr( tolower( first ), 1, 1 ) tolower( last )
    uid = startuid + record - 1
    gid = uid
    printf( "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n",  \
	user, passwd, uid, gid, first, last, user \
	)
}

Attachment: pgpThSLDkAk2_.pgp
Description: PGP signature


Reply to: