Hi James,

Thanks for sharing this!

El mar, 11-09-2007 a las 11:21 -0700, James A. Reid escribió:
> Just to add something to the community I thought I'd share my notes on adding 
> my Users in bulk.
> 
> I don't know any perl so I kinda hacked my way through adding multiple users 
> at 
> once on my 0.9.99 ebox.
> 
> I used the script provided by Javier. Put it in a text file called bulkusers 
> and made it executable for root in root's home directory. 
> -------------
> #!/usr/bin/perl
> 
> use strict; (I deleted this line)
> use warnings;
> 
> use EBox;
> use EBox::Global;
> 
> EBox::init();
> my $usersModule = EBox::Global->modInstance('users');

You can simply add these two lines in order not to have these errors:

  my $line;
  my @users;

> open(my $USERS,"users");
> while($line = <$USERS>) {
>    my $user;
>    my ($username,$fullname,$password) = split(',',$line);
>    $user->{'user'} = $username;
>    $user->{'fullname'} = $fullname;
>    $user->{'password'} = $password;
>    push(@users,$user);
> }
> close($USERS);
> 
> foreach my $user (@users) {
>    $usersModule->addUser($user, 0);
> }
> 
> 1;
> -----------------
> 
> Notes on this script:
> a) First I got an error message
> gatekeeper:~# ./bulkusers
> Global symbol "$line" requires explicit package name at ./bulkusers line 13.
> Global symbol "$line" requires explicit package name at ./bulkusers line 15.
> Global symbol "@users" requires explicit package name at ./bulkusers line 19.
> Global symbol "@users" requires explicit package name at ./bulkusers line 23.
> Execution of ./bulkusers aborted due to compilation errors.
> 
> I deleted the "use scrict" line and it was fine then (since I didn't know 
> perl 
> I don't know how to declare $line and @users. I'm sure purists will be not 
> happy with me)
> 
> Before running the script you need to have a file called 'users' in the same 
> directory. Inside the file it should look like the following:
> -------------
> jblow,Joe Blow,jblowspassword,
> jdoe,Jane Doe,jdoespassword,
> -------------
> notes on this 'users' file
> a) no blank lines or the script blows up
> b) must include a trailing comma after the password (otherwise the account is 
> created but the password isn't added). I exported this file from excel and 
> thought that msdos csv file type would be what to choose but trailing commas 
> were not added. Apparently windows csv file type adds the trailing commas.
> c) before running the script open the file in vi or something and get rid of 
> the trailing ^M's on the end of lines (:%s/^M$//g is the command to do this 
> in 
> vi where ^M is created by pressing ctrl-v then ctrl-m)
> 
> 
> That was it - added my users in about 3 hours of round and round discovery 
> about the trailing comma being needed. Once I had that figured I added 120 
> users in 30 seconds. Hope this helps someone else.

It sure does help someone else. 

Best regards,


_______________________________________________
Ebox-user mailing list
[email protected]
https://lists.warp.es/mailman/listinfo/ebox-user

Responder a