Diff for /loncom/Attic/lchtmldir between versions 1.10 and 1.11

version 1.10, 2004/10/19 11:11:34 version 1.11, 2004/10/20 09:30:57
Line 232  if($authentication eq "unix:") { # Unix Line 232  if($authentication eq "unix:") { # Unix
     # is that a file system user is being demoted to internal user...      # is that a file system user is being demoted to internal user...
   
     if($authentication eq "internal:") {      if($authentication eq "internal:") {
    #  In case the user was a unix/filesystem authenticated user,
    #  we'll take a bit of time here to write  a script in the
    #  user's home directory that can reset ownerships and permissions
    #  back the way the used to be.
   
    &write_restore_script($homedir);
   
  &System("/bin/chown -R root:root ".$homedir);   &System("/bin/chown -R root:root ".$homedir);
     }      }
     &System("/bin/chown -R www:www  ".$fulldir);      &System("/bin/chown -R www:www  ".$fulldir);
Line 371  sub process_tree { Line 378  sub process_tree {
   
 }  }
 #  #
 #  Simple test of process_tree:  #   Callback from process_tree to write the script lines
   #   requried to restore files to current ownership and permission.
   # Parameters:
   #    dir         - Name of the directory the file lives in.
   #    name        - Name of the file itself.
   #    statinfo    - Array from lstat called on the file.
   #
 #  #
 sub write_script {  sub write_script {
     my ($dir, $name, $statinfo) = @_;      my ($dir, $name, $statinfo) = @_;
Line 392  sub write_script { Line 405  sub write_script {
   
   
 }  }
   # 
   #    Write a script in the user's home directory that can restore
   #    the permissions and ownerhips of all the files in the directory
   #    tree to their current ownerships and permissions.  This is done
   #    prior to making the user into an internally authenticated user
   #    in case they were previously file system authenticated and
   #    need to go back.
   #      The file we will create will be of the form
   #        restore_n.sh  Where n is a number that we will keep
   #   incrementing as needed until there isn't a file by that name.
   #   
   # Parameters:
   #    dir      - Path to the user's home directory.
   #
   sub write_restore_script {
       my ($dir)   = @_;
   
       #   Create a unique file:
   
       my $version_number     = 0;
       my $filename           = 'restore_'.$version_number.'.sh';
       my $full_name           = $dir.$path_sep.$filename;
   
       while(-e $full_name) {
    $version_number++;
    $filename         = 'restore_'.$version_number.'.sh';
    $full_name        = $dir.$path_sep.$filename;
       }
       # $full_name is the full path of a file that does not yet exist
       # of the form we want:
   
       open(CHMODSCRIPT, "> $full_name");
   
       &process_tree(\&write_script, $dir);
   
       close(CHMODSCRIPT);
   
       chmod(0750, $full_name);
   
   }
   
   
   

Removed from v.1.10  
changed lines
  Added in v.1.11


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