I have all this in place..bu the file locks is what is troubling me...

Thx,
Ani


> I agree....
>
>
> see attached perl script for example...
> this is a cgi for adding users (I know *really big shudder*) that
> someone on this list previously asket for...
> it even creates the passwd salt/hash for the useradd...
>
> "Yoink!" wrote:
> >
> > On Mon, 29 Nov 1999, Arni Raghu wrote:
> > > Tired of adding/deleting users manually..I am writing my own perl
scripts to
> > > automate the tasks for me...this I do by directly writing to the
passwd and
> > > shadow files...(because I do not want to use Expect in the perl
code)..It
> > > works great and has eased my admin tasks  to an extent..
> >
> > What's wrong with adduser and userdel?
> >
> > --
> > \ \/ / _       |~\  _ In God We Trust. All Others Pay Cash.
> >  >  < / \|\  /|+-< | |    "The world is a comedy to those that think,
> > / /\ \\_/| \/ ||__)|_|     a tragedy to those who feel." - Horace
Walpole
> >
> > --
> > To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe"
> > as the Subject.


----------------------------------------------------------------------------
----


> #!/usr/bin/perl
> ###########################################################
> # This program is Copyright under the GPL (yada yada yada)
> # Abuse it at your will just email me any improvements
> # please! --Mike Cathey ([EMAIL PROTECTED])
> # The purpose of this script is farily self explanatory.
> # It calls useradd and passwd to change the name of a user.
> # It also checks to see if a user by the requested username
> # already exists on the system.
> ###########################################################
> # We have to define where the system utils are first.
> # because it is the easiest and quickest way that I can
> # think of, I am going to parse through /etc/passwd (please
> # use shadow passwds) to find out if the username requested
> # is already in use.
> #
> # NOTE: I am not implementing any kind of username check
> #       (eg. username/password limit).  You might want
> #       to add that if you expect to have problems in that
> #       area.
>
> $path_to_homedir = "/"; # path to create home directories
> $useradd = "/usr/sbin/useradd"; # path to useradd
> $userlist = "</etc/passwd"; # open readonly
>
> # now we parse the form input
>
> $formdata=<STDIN>;
> $formdata=~s/\s+$//;
> foreach (split(/&/, $formdata)) {
>   ($name, $value)=split(/=/, $_);
>   $name=~s/\+/ /g;
>   $name=~s/%([0-9|A-F]{2})/pack(C,hex($1))/eg;
>   $value=~s/\+/ /g;
>   $value=~s/%([0-9|A-F]{2})/pack(C,hex($1))/eg;
>   if ($value eq "") {
>     &exit($name);
>   }
>   push (@print, $name);
>   $data{$name}=$value;
> }
> $username = $data{'username'};
> $password = $data{'password'};
>
> # create a 'random' salt and then use
> # the crypt function to creat the hashed password
>
> $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
> $passwordhash = crypt($password,$salt);
>
> open(ULIST,"$userlist") || die "Error can't open: $!";
> @userlist = <ULIST>;
>
> foreach $line (@userlist) {
>   if ($line =~ /.*$username.*/i) {
>     $name = "user exists";
>     &exit($name);
>   }
> }
>
> system("$useradd $username -m -d $path_to_homedir$username -p
$passwordhash");
>
> # then we print the success page
>
> print "Content-type: text/html\n\n";
> print "<html>\n<head>\n<title>Done!</title>\n</head>\n<body
bgcolor=\"ffffff\">\n";
> print "The username $username was added<br>\n";
> print "with the password $password.<br>\n";
> print "</body>\n</html>\n";
>
> sub exit {
>   local ($name)=@_;
>   print "Content-type: text/html\n\n";
>   print "<html>\n<head>\n<title>Error!</title>\n</head>\n<body
bgcolor=\"ffffff\">\n";
>   if ($name eq "user exists") {
>     print "This username is already taken.<br>\n";
>     print "Please return back and enter<br>\n";
>     print "another username.<br>\n";
>   }
>   else

>     print "Your must fill in the $name field to process this form.<br>\n";
>     print " Please return back and do it. Thank you.<br>\n";
>   }
>   print "</body>\n</html>\n";
> }
>


-- 
To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe"
as the Subject.

Reply via email to