Thank you




On 02/25/2011 01:02 PM, Mike Miller wrote:
> Just saw that you already did it.  I'll try to finish this later, but 
> for now it has some possibly useful info (e.g., attached script)...
>
>
> On Fri, 25 Feb 2011, Raymond Norton wrote:
>
>> Here is a sample of the list (yes, it came from a record the tech was 
>> keeping of email passwords).
>>
>> fiecke,04f13cke
>> heiraas,2qasw#
>> ed houg,6$I$Tr$8
>> johnson,j0hns0n
>> kallenbach,RC68!
>> crd klobe,jmc1862
>> kramer,r2bydoo1
>
>
> I'll just mention up front that I prefer tab-delimited files to 
> comma-delimited files for this purpose and for most other purposes.  I 
> also think you would be much better off with more data (like real 
> names for users) -- see below my comment on comments.
>
> See the attached script for dealing with the passwords.  The useradd 
> program (recommended by someone else in this thread) requires that the 
> password be entered as an encrypted string, not the original password. 
> The attached perl script will be used to encrypt the password.  Save 
> it in your path and make it executable:
>
> chmod 755 password_encrypt.pl
>
> Suppose your list is stored in the file users.txt and suppose there is 
> exactly one comma on every line and the usernames are to be the string 
> son the left of the comma, but with spaces replaced by underscores, 
> then you could do this:
>
> (1) first test that the file format is correct:
>
> awk -F',' '{print NF}' users.txt | uniq | wc -l
>
> That should produce "1" as output, if the output is not "1" then your 
> file has too many commas on one or more lines, probably because you 
> have a password with a comma in it.
>
> (2) next, if you passed test 1, test that the usernames are unique:
>
> cut -d',' -f1 users.txt | tr ' ' '_' | sort | uniq -c | awk '{print 
> $1}' | sort -n | tail -1
>
> That also should produce "1" as output.  If you get a number greater 
> than one, then not all of your usernames are unique.
>
> (3) if you passed tests 1 and 2, you also want to know that the 
> usernames you are adding are not identical to any that already exist 
> in /etc/password, so do this:
>
> ( cut -d',' -f1 users.txt | tr ' ' '_' ; cut -d':' -f1 /etc/passwd ) | 
> sort | uniq -c | awk '{print $1}' | sort -n | tail -1
>
> That also should produce "1" as output.  If you get a number greater 
> than one, then at least one of your new usernames is identical to one 
> already in /etc/passwd.
>
> (4) If you passed tests 1 through 3, then you'll want to transform the 
> users.txt file into a little script for adding the users.  It would be 
> better if you had more information for the comment field -- like their 
> actual names -- but you do what you can with what you've got.  I like 
> a comment that contains "First Last <email at external.site>".
>
> You need to choose a group ID and an initial user ID, maybe "1000" we 
> can then make the nth user have UID equal to initial_UID+n.  I'll 
> hardcode that initial UID number as 1000 here, and I'll hardcode the 
> GID as 100, but you can change them:
>
> echo -e "#!/bin/bash\n" > make_users.bash
> chmod 700 make_users.bash
>
>
> NOT DONE YET...
>
> awk -F',' '{print "useradd -u "1000+NR" -g 100 -s /bin/bash -p 
> $(password_encrypt.pl \042"
> $2"
> PASSWORD SALT) USERNAME
>
> #' users.txt >> make_users.bash
>
> Read the script, and if it looks good, run this:
>
> sudo ./make_users.bash
>
>
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20110225/d2c1ac75/attachment-0001.html>