Diff for /loncom/Attic/lcuseradd between versions 1.27 and 1.34

version 1.27, 2004/08/05 20:47:27 version 1.34, 2005/01/26 12:13:58
Line 147  unless (&try_to_lock("/tmp/lock_lcpasswd Line 147  unless (&try_to_lock("/tmp/lock_lcpasswd
 my @input;  my @input;
 if (@ARGV>=3) {  if (@ARGV>=3) {
     @input=@ARGV;      @input=@ARGV;
 }  } elsif (@ARGV) {
 elsif (@ARGV) {  
     print("Error. This program needs at least 3 command-line arguments (username, ".      print("Error. This program needs at least 3 command-line arguments (username, ".
   "password 1, password 2 [errorfile]).\n") unless $noprint;    "password 1, password 2 [errorfile]).\n") unless $noprint;
     unlink('/tmp/lock_lcpasswd');      unlink('/tmp/lock_lcpasswd');
     &Exit(2);      &Exit(2);
 }  } else {
 else {  
     @input=<>;      @input=<>;
     if (@input < 3) {      if (@input < 3) {
  print("Error. At least three lines should be entered into standard input.\n")   print("Error. At least three lines should be entered into standard input.\n")
Line 208  if($error_file) { Line 206  if($error_file) {
     Exit(14);      Exit(14);
  }   }
   
     }       } else {
     else {  
  $error_file="";   $error_file="";
  print "Invalid error filename\n" unless $noprint;   print "Invalid error filename\n" unless $noprint;
  Exit(14);   Exit(14);
Line 217  if($error_file) { Line 214  if($error_file) {
 }  }
   
   
 # -- Only add user if we can create a brand new home directory (/home/username)  # -- Only add the user if they are >not< in /etc/passwd.
 if (-e "/home/$safeusername") {  #    Used to look for the ability to create a new directory for the
     print "Error. User already exists.\n" unless $noprint;  #    user, however that disallows authentication changes from i
   #    internal->fs.. so just check the passwd file instead.
   #
   my $not_found = system("cut -d: -f1 /etc/passwd | grep -q \"^$safeusername\$\" ");
   if (!$not_found) {
       print "Error user already exists\n" unless $noprint;
     unlink('/tmp/lock_lcpasswd');      unlink('/tmp/lock_lcpasswd');
     &Exit(11);      &Exit(11);
 }  }
   
   
   
 # -- Only add user if the two password arguments match.  # -- Only add user if the two password arguments match.
   
 if ($password1 ne $password2) {  if ($password1 ne $password2) {
Line 251  print "Done adding user\n" unless $nopri Line 255  print "Done adding user\n" unless $nopri
 # Make www a member of that user group.  # Make www a member of that user group.
 my $groups=`/usr/bin/groups www` or &Exit(6);  my $groups=`/usr/bin/groups www` or &Exit(6);
 # untaint  # untaint
 my ($safegroups)=($groups=~/([\s\w]+)/);  my ($safegroups)=($groups=~/:\s*([\s\w]+)/);
 $groups=$safegroups;  $groups=$safegroups;
 chomp $groups; $groups=~s/^\S+\s+\:\s+//;  chomp $groups; $groups=~s/^\S+\s+\:\s+//;
 my @grouplist=split(/\s+/,$groups);  my @grouplist=split(/\s+/,$groups);
Line 310  print OUT<<END; Line 314  print OUT<<END;
 </html>  </html>
 END  END
 close OUT;  close OUT;
   system('/bin/chmod','0660', "/home/$safeusername/public_html/index.html");
   #
   #   In order to allow the loncapa daemons appropriate access
   #   to public_html, Top level and public_html directories should
   #   be owned by safeusername:safeusername as should the smaple index.html..
 print "lcuseradd ownership\n" unless $noprint;  print "lcuseradd ownership\n" unless $noprint;
 system('/bin/chown','-R',"$safeusername:$safeusername","/home/$safeusername");  system('/bin/chown','-R',"$safeusername:$safeusername","/home/$safeusername"); # First set std ownership on everything.
   #  system('/bin/chown',"$safeusername:www","/home/$safeusername"); # Now adust top level...
   #  system('/bin/chown','-R',"$safeusername:www","/home/$safeusername/public_html"); # And web dir.
 # ---------------------------------------------------- Gracefull Apache Restart  # ---------------------------------------------------- Gracefull Apache Restart
 if (-e '/var/run/httpd.pid') {  if (-e '/var/run/httpd.pid') {
     print "lcuseradd Apache restart\n" unless $noprint;      print "lcuseradd Apache restart\n" unless $noprint;
     open(PID,'/var/run/httpd.pid');      open(PID,'/var/run/httpd.pid');
     my $pid=<PID>;      my $pid=<PID>;
     close(PID);      close(PID);
     my ($safepid)=($pid=~s/(\D+)//g);      my ($safepid)= $pid=~ /(\D+)/;
     if ($pid) {      if ($pid) {
  system('kill','-USR1',"$safepid");   system('kill','-USR1',"$safepid");
     }      }
Line 334  sub enable_root_capability { Line 344  sub enable_root_capability {
     if ($wwwid==$>) {      if ($wwwid==$>) {
  ($<,$>)=($>,0);   ($<,$>)=($>,0);
  ($(,$))=($),0);   ($(,$))=($),0);
     }      } else {
     else {  
  # root capability is already enabled   # root capability is already enabled
     }      }
     return $>;      return $>;
Line 346  sub disable_root_capability { Line 355  sub disable_root_capability {
     if ($wwwid==$<) {      if ($wwwid==$<) {
  ($<,$>)=($>,$<);   ($<,$>)=($>,$<);
  ($(,$))=($),$();   ($(,$))=($),$();
     }      } else {
     else {  
  # root capability is already disabled   # root capability is already disabled
     }      }
 }  }
Line 376  sub try_to_lock { Line 384  sub try_to_lock {
     }      }
     sleep 3;      sleep 3;
     $lastpid=$currentpid;      $lastpid=$currentpid;
  }   } else {
  else {  
     last;      last;
  }   }
  if ($_==10) {   if ($_==10) {

Removed from v.1.27  
changed lines
  Added in v.1.34


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>