Diff for /loncom/Attic/lcuseradd between versions 1.37 and 1.38

version 1.37, 2005/06/21 10:58:38 version 1.38, 2005/07/29 17:33:18
Line 109  use File::Find; Line 109  use File::Find;
 # (12,"Error. Something went wrong with the addition of user ".  # (12,"Error. Something went wrong with the addition of user ".
 #     "\"$safeusername\"."),  #     "\"$safeusername\"."),
 # (13,"Error. Password mismatch."),  # (13,"Error. Password mismatch."),
 # (14, "Error filename is invalid")  # (14, "Error filename is invalid"),
   # (15, "Error. Could not add home directory.")
   
 # ------------------------------------------------------------- Initializations  # ------------------------------------------------------------- Initializations
 # Security  # Security
Line 241  print "enabling root\n" unless $noprint; Line 242  print "enabling root\n" unless $noprint;
 # ---------------------------------- Start running script with root permissions  # ---------------------------------- Start running script with root permissions
 &enable_root_capability;  &enable_root_capability;
   
 # ------------------- Add user and make www a member of the user-specific group  # ------------------- Add group and user, and make www a member of the group
   # -- Add group
   
   print "adding group: $safeusername \n" unless $noprint;
   my $status = system('/usr/sbin/groupadd', $safeusername);
   if ($status) {
       print "Error.  Something went wrong with the addition of group ".
             "\"$safeusername\".\n" unless $noprint;
       print "Final status of groupadd = $status\n";
       unlink('/tmp/lock_lcpasswd');
       &Exit(12);
   }
   my $gid = getgrnam($safeusername);
                                                                                   
 # -- Add user  # -- Add user
   
 print "adding user: $safeusername \n" unless $noprint;  print "adding user: $safeusername \n" unless $noprint;
 my $status = system('/usr/sbin/useradd','-c','LON-CAPA user',$safeusername);  my $status = system('/usr/sbin/useradd','-c','LON-CAPA user','-g',$gid,$safeusername);
 if ($status) {  if ($status) {
     print "Error.  Something went wrong with the addition of user ".      print "Error.  Something went wrong with the addition of user ".
   "\"$safeusername\".\n" unless $noprint;    "\"$safeusername\".\n" unless $noprint;
       system("/usr/sbin/groupdel $safeusername");
     print "Final status of useradd = $status\n";      print "Final status of useradd = $status\n";
     unlink('/tmp/lock_lcpasswd');      unlink('/tmp/lock_lcpasswd');
     &Exit(12);      &Exit(12);
 }  }
 my ($dmy1, $dmy2, $uid, $gid) = getpwnam($safeusername);  
 my ($group) = getgrgid($gid);  
 if (! $group) {  
     print "Error. The primary group of user \"$safeusername\" could not be".  
           "determined.\n" unless $noprint;  
     system("/usr/sbin/userdel -r $safeusername");  
     unlink('/tmp/lock_lcpasswd');  
     &Exit(12);  
 }  
 if ($group != $safeusername) {  
    $status = system("/usr/sbin/groupadd -g $uid $safeusername");  
    if (! $status) {  
       $status = system("/usr/sbin/usermod -g $uid $safeusername");  
       if ($status) {  
          system("/usr/sbin/groupdel $safeusername");  
       }  
    }  
    if ($status) {  
       print "Error.  Something went wrong with the addition of user ".  
             "\"$safeusername\".\n" unless $noprint;  
       system("/usr/sbin/userdel -r $safeusername");  
       unlink('/tmp/lock_lcpasswd');  
       &Exit(12);  
    }  
 }  
   
 print "Done adding user\n" unless $noprint;  print "Done adding user\n" unless $noprint;
 # Make www a member of that user group.  # Make www a member of that user group.
Line 289  chomp $groups; $groups=~s/^\S+\s+\:\s+// Line 279  chomp $groups; $groups=~s/^\S+\s+\:\s+//
 my @grouplist=split(/\s+/,$groups);  my @grouplist=split(/\s+/,$groups);
 my @ugrouplist=grep {!/www|$safeusername/} @grouplist;  my @ugrouplist=grep {!/www|$safeusername/} @grouplist;
 my $gl=join(',',(@ugrouplist,$safeusername));  my $gl=join(',',(@ugrouplist,$safeusername));
 print "Putting user in its own group\n" unless $noprint;  print "Putting www in user's group\n" unless $noprint;
 if (system('/usr/sbin/usermod','-G',$gl,'www')) {  if (system('/usr/sbin/usermod','-G',$gl,'www')) {
     print "Error. Could not make www a member of the group ".      print "Error. Could not make www a member of the group ".
   "\"$safeusername\".\n" unless $noprint;    "\"$safeusername\".\n" unless $noprint;
Line 319  if ($?) { Line 309  if ($?) {
 ($>,$<)=($wwwid,0);  ($>,$<)=($wwwid,0);
 &enable_root_capability;  &enable_root_capability;
   
 # -- Don't add public_html... that can be added either by the user  # Check if home directory exists for user
 #    or by lchtmldir when the user is granted an authorship role.  # If not, create one.
   if (!-e "/home/$safeusername") {
       if (!mkdir("/home/$safeusername",0710)) {
           print "Error. Could not add home directory for ".
             "\"$safeusername\".\n" unless $noprint;
           unlink('/tmp/lock_lcpasswd');
           &Exit(15);
       }
   }
   
 # ------------------------------ Make final modifications to the user directory  # ------------------------------ Make final modifications to the user directory
 # -- Add a public_html file with a stand-in index.html file  # -- Add a public_html file with a stand-in index.html file
   
  system('/bin/chmod','-R','0660',"/home/$safeusername");  if (-d "/home/$safeusername") {
 system('/bin/chmod','0710',"/home/$safeusername");      system('/bin/chmod','-R','0660',"/home/$safeusername");
 mkdir "/home/$safeusername/public_html",0755;      system('/bin/chmod','0710',"/home/$safeusername");
 open OUT,">/home/$safeusername/public_html/index.html";      mkdir "/home/$safeusername/public_html",0755;
 print OUT<<END;      open OUT,">/home/$safeusername/public_html/index.html";
       print OUT<<END;
 <html>  <html>
 <head>  <head>
 <title>$safeusername</title>  <title>$safeusername</title>
Line 341  print OUT<<END; Line 340  print OUT<<END;
 </html>  </html>
 END  END
 close OUT;  close OUT;
   }
   
 #  #
 #   In order to allow the loncapa daemons appropriate access  #   In order to allow the loncapa daemons appropriate access

Removed from v.1.37  
changed lines
  Added in v.1.38


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