Diff for /loncom/Attic/lcuseradd between versions 1.32 and 1.35

version 1.32, 2005/01/25 11:39:52 version 1.35, 2005/01/27 11:52:46
Line 32 Line 32
 ###############################################################################  ###############################################################################
   
 use strict;  use strict;
   use File::Find;
   
   
 # ------------------------------------------------------- Description of script  # ------------------------------------------------------- Description of script
 #  #
Line 219  if($error_file) { Line 221  if($error_file) {
 #    user, however that disallows authentication changes from i  #    user, however that disallows authentication changes from i
 #    internal->fs.. so just check the passwd file instead.  #    internal->fs.. so just check the passwd file instead.
 #  #
 my $not_found = system("grep -q $safeusername: /etc/passwd");  my $not_found = system("cut -d: -f1 /etc/passwd | grep -q \"^$safeusername\$\" ");
 if (!$not_found) {  if (!$not_found) {
     print "Error user already exists\n" unless $noprint;      print "Error user already exists\n" unless $noprint;
     unlink('/tmp/lock_lcpasswd');      unlink('/tmp/lock_lcpasswd');
Line 300  if ($?) { Line 302  if ($?) {
  system('/bin/chmod','-R','0660',"/home/$safeusername");   system('/bin/chmod','-R','0660',"/home/$safeusername");
 system('/bin/chmod','0710',"/home/$safeusername");  system('/bin/chmod','0710',"/home/$safeusername");
 mkdir "/home/$safeusername/public_html",0755;  mkdir "/home/$safeusername/public_html",0755;
 system('/bin/chmod','02770',"/home/$safeusername/public_html");  
 open OUT,">/home/$safeusername/public_html/index.html";  open OUT,">/home/$safeusername/public_html/index.html";
 print OUT<<END;  print OUT<<END;
 <html>  <html>
Line 314  print OUT<<END; Line 315  print OUT<<END;
 </html>  </html>
 END  END
 close OUT;  close OUT;
 system('/bin/chown','0660', "/home/$safeusername/public_html/index.html");  
 #  #
 #   In order to allow the loncapa daemons appropriate access  #   In order to allow the loncapa daemons appropriate access
 #   to public_html, Top level and public_html directories should  #   to public_html, Top level and public_html directories should
 #   be owned by safeusername:www as should the smaple index.html..  #   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"); # First set std ownership on everything.  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...  &set_public_html_permissions("/home/$safeusername/public_html");
 system('/bin/chown','-R',"$safeusername:www","/home/$safeusername/public_html"); # And web dir.  #  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  $pid=~ /(\D+)/;
       my $safepid = $1;
     if ($pid) {      if ($pid) {
  system('kill','-USR1',"$safepid");   system('kill','-USR1',"$safepid");
     }      }
Line 396  sub try_to_lock { Line 399  sub try_to_lock {
     close LOCK;      close LOCK;
     return 1;      return 1;
 }  }
   #    Called by File::Find::find for each file examined.
   #
   #     Untaint the file and, if it is a directory,
   #     chmod it to 02770
   #
   sub set_permission {
       $File::Find::name =~ /^(.*)$/;
       my $safe_name = $1; # Untainted filename...
       
       print "$safe_name" unless $noprint;
       if(-d $safe_name) {
    print " - directory" unless $noprint;
    chmod(02770, $safe_name);
       }
       print "\n" unless $noprint;
   
   }
   #
   #    Set up the correct permissions for all files in the 
   #    user's public htmldir. We just do a chmod -R 0660 ... for
   #    the ordinary files.  The we use File::Find
   #    to pop through the directory tree changing directories only
   #    to 02770:
   #
   sub set_public_html_permissions {
       my ($topdir) = @_;
   
       #   Set the top level dir permissions (I'm not sure if find 
       #   will enumerate it specifically), correctly and all
       #   files and dirs to the 'ordinary' file permissions:
   
       system("chmod -R 0660 $topdir");
       chmod(02770, $topdir);
   
       #  Now use find to locate all directories under $topdir
       #  and set their modes to 02770...
       #
       print "Find file\n " unless $noprint;
       File::Find::find({"untaint"         => 1,
         "untaint_pattern" => qr(/^(.*)$/),
         "untaint_skip"    => 1,
         "no_chdir"         => 1,
         "wanted"          => \&set_permission }, "$topdir");
   
   
   }
   
 #-------------------------- Exit...  #-------------------------- Exit...
 #  #
 #   Write the file if the error_file is defined.  Regardless  #   Write the file if the error_file is defined.  Regardless

Removed from v.1.32  
changed lines
  Added in v.1.35


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