version 1.15, 2005/01/26 12:13:58
|
version 1.17, 2005/06/21 11:00:21
|
Line 41
|
Line 41
|
# NSCL |
# NSCL |
# Michigan State University8 |
# Michigan State University8 |
# East Lansing, MI 48824-1321 |
# East Lansing, MI 48824-1321 |
|
# |
# General flow of control: |
# General flow of control: |
# 1. Validate process state (must be run as www). |
# 1. Validate process state (must be run as www). |
# 2. Validate parameters: Need two parameters: |
# 2. Validate parameters: Need two parameters: |
Line 61
|
Line 61
|
# - internal - www:www/2775 |
# - internal - www:www/2775 |
# - local - www:www/2775 |
# - local - www:www/2775 |
# |
# |
|
# |
# |
# |
# Take a few precautions to be sure that we're not vulnerable to trojan |
# Take a few precautions to be sure that we're not vulnerable to trojan |
# horses and other fine issues: |
# horses and other fine issues: |
Line 144 my $safeuser = $patt;
|
Line 144 my $safeuser = $patt;
|
if($DEBUG) { |
if($DEBUG) { |
print("Save username = $safeuser \n"); |
print("Save username = $safeuser \n"); |
} |
} |
if(($username ne $safeuser) or ($safeuser!~/^[A-za-z]/)) { |
if(($username ne $safeuser) or ($safeuser!~/^[A-z]/)) { |
if($DEBUG) { |
if($DEBUG) { |
print("User name $username had illegal characters\n"); |
print("User name $username had illegal characters\n"); |
} |
} |
Line 185 if(!( -e $dirtry1)) {
|
Line 185 if(!( -e $dirtry1)) {
|
exit 6; |
exit 6; |
} |
} |
} |
} |
|
if ($authentication eq "unix:") { |
|
# check whether group $safeuser exists. |
|
my $usergroups = `id -nG $safeuser`; |
|
if (! grep /^$safeuser$/, split(/\s+/,$usergroups)) { |
|
if($DEBUG) { |
|
print("Group \"$safeuser\" does not exist or $safeuser is not a member of that group.\n"); |
|
} |
|
exit 7; |
|
} |
|
} |
|
|
|
|
|
|
&EnableRoot; |
&EnableRoot; |
|
|
|
# If authentication is internal and the top level directory exists |
|
# give it the right permissions (in case this is a modification. |
|
|
|
if ($authentication eq "internal:") { |
|
chmod(0711, $homedir); # so www can enter ~/public_html. |
|
} |
|
|
&System("/bin/mkdir -p $fulldir") unless (-e $fulldir); |
&System("/bin/mkdir -p $fulldir") unless (-e $fulldir); |
unless(-e $fulldir."/index.html") { |
unless(-e $fulldir."/index.html") { |
open OUT,">".$fulldir."/index.html"; |
open OUT,">".$fulldir."/index.html"; |