version 1.11, 2002/12/13 23:15:50
|
version 1.41, 2014/05/03 15:31:17
|
Line 1
|
Line 1
|
<!DOCTYPE piml PUBLIC "-//TUX/DTD piml 1.0 Final//EN" |
<!DOCTYPE piml PUBLIC "-//TUX/DTD piml 1.0 Final//EN" |
"http://lpml.sourceforge.net/DTD/piml.dtd"> |
"http://lpml.sourceforge.net/DTD/piml.dtd"> |
<!-- sanitycheck.piml --> |
<!-- sanitycheck.piml --> |
<!-- Scott Harrison --> |
|
|
|
<!-- $Id$ --> |
<!-- $Id$ --> |
|
|
Line 33 http://www.lon-capa.org/
|
Line 32 http://www.lon-capa.org/
|
<targetroot>/</targetroot> |
<targetroot>/</targetroot> |
<files> |
<files> |
<file> |
<file> |
|
<target dist='default'>/etc/hosts</target> |
|
<perlscript mode='fg'> |
|
unless |
|
(-e '<TARGET />') # Does file exist? |
|
{ |
|
print("**** ERROR **** Missing <TARGET />\n"); |
|
} |
|
else |
|
{ |
|
my $numentries = `grep -v '^#' <TARGET /> | grep -c '[[:alpha:]]'`; |
|
if ($numentries == 1) |
|
{ |
|
print("**** ERROR **** Malformatted <TARGET />\n"); |
|
print("<TARGET /> typically should have at least two entries, ". |
|
"e.g.:\n"); |
|
print("127.0.0.1 localhost.localdomain localhost\n"); |
|
print("35.8.63.26 s16.lite.msu.edu s16\n"); |
|
print("The <TARGET /> file on your machine looks like it was \n". |
|
"messed up due to a common bug with RedHat installations.\n". |
|
"(This weird bug is RedHat's fault, not LON-CAPA's.)\n"); |
|
print("Please read the man pages about \"hosts\" and fix your\n". |
|
"<TARGET /> file.\n"); |
|
} |
|
} |
|
</perlscript> |
|
</file> |
|
<file> |
<target dist='default'>/var/lib/mysql/mysql.sock</target> |
<target dist='default'>/var/lib/mysql/mysql.sock</target> |
|
<target dist='suse11.2 suse11.3 suse11.4 suse12.1 suse12.2 suse12.3 suse13.1'>/var/run/mysql/mysql.sock</target> |
|
<target dist='debian5 debian6 ubuntu6 ubuntu8 ubuntu10 ubuntu12 ubuntu14'>/var/run/mysqld/mysqld.sock</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
unless |
unless |
(-e '<TARGET />') # Does file exist? |
(-e '<TARGET />') # Does file exist? |
{ |
{ |
print("**** ERROR **** Missing <TARGET />\n"); |
print("**** ERROR **** Missing <TARGET />\n"); |
} |
} |
|
<!-- Commented out by Matthew since MySQL insists on doing things its own way |
else # It exists, so look at the file metadata more closely. |
else # It exists, so look at the file metadata more closely. |
{ |
{ |
my @s = stat('<TARGET />'); |
my @s = stat('<TARGET />'); |
Line 50 else # It exists, so look at the file me
|
Line 79 else # It exists, so look at the file me
|
|
|
if ($uid ne $web_uid) # If file owned by someone else other than www. |
if ($uid ne $web_uid) # If file owned by someone else other than www. |
{ |
{ |
print('**** ERROR **** <TARGET /> should be owned by'. |
print('**** WARNING **** <TARGET /> should be owned by'. |
' www.'."\n".'Try these commands to make things right:'."\n". |
' www.'."\n".'Try these commands to make things right:'."\n". |
'chown www:www <TARGET />'."\n". |
'chown www:www <TARGET />'."\n". |
'chmod a-rwx,u+rwx <TARGET />'."\n"); |
'chmod a-rwx,u+rwx <TARGET />'."\n"); |
Line 61 else # It exists, so look at the file me
|
Line 90 else # It exists, so look at the file me
|
my $wflag = $1; |
my $wflag = $1; |
if ($wflag != 7) # Can www use this socket? (Hope so!) |
if ($wflag != 7) # Can www use this socket? (Hope so!) |
{ |
{ |
print('**** ERROR **** '. |
print('**** WARNING **** '. |
'<TARGET /> should be user "rwx" (by'. |
'<TARGET /> should be user "rwx" (by'. |
' www).'."\n".'Try these commands to make things right:'."\n". |
' www).'."\n".'Try these commands to make things right:'."\n". |
'chown www:www <TARGET />'."\n". |
'chown www:www <TARGET />'."\n". |
Line 71 else # It exists, so look at the file me
|
Line 100 else # It exists, so look at the file me
|
$wflag=$1; |
$wflag=$1; |
if ($wflag ne "00") # Can others use this socket? (Hope not!) |
if ($wflag ne "00") # Can others use this socket? (Hope not!) |
{ |
{ |
print('**** ERROR **** '. |
print('**** WARNING **** '. |
'<TARGET /> should not be group or everybody accessible'. |
'<TARGET /> should not be group or everybody accessible'. |
'.'."\n".'Try these commands to make things right:'."\n". |
'.'."\n".'Try these commands to make things right:'."\n". |
'chown www:www <TARGET />'."\n". |
'chown www:www <TARGET />'."\n". |
Line 79 else # It exists, so look at the file me
|
Line 108 else # It exists, so look at the file me
|
} |
} |
} |
} |
} |
} |
|
--> |
</perlscript> |
</perlscript> |
</file> |
</file> |
<file> |
<file> |
<target dist='default'>/etc/httpd/conf/loncapa.conf</target> |
<target dist='default'>/etc/httpd/conf/loncapa.conf</target> |
|
<target dist='sles10 sles11 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 suse11.3 suse11.4 suse12.1 suse12.2 suse12.3 suse13.1 debian5 debian6 ubuntu6 ubuntu8 ubuntu10 ubuntu12 ubuntu14'>/etc/apache2/loncapa.conf</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
open IN, "<<TARGET />"; |
open IN, "<<TARGET />"; |
my $hbug=-1; |
my $hbug=-1; |
Line 91 while (<IN>) {
|
Line 122 while (<IN>) {
|
if (/PerlSetVar\s+lonHostID\s+(\S+)/) { |
if (/PerlSetVar\s+lonHostID\s+(\S+)/) { |
my $v=$1; |
my $v=$1; |
$hbug=0; |
$hbug=0; |
$hbug=1 if $v=~/\W/; |
$hbug=1 if $v=~/[^\w.\-]/; |
$hbug=1 if $v=~/\_/; |
$hbug=1 if $v=~/_/; |
} |
} |
if (/PerlSetVar\s+lonDefDomain\s+(\S+)/) { |
if (/PerlSetVar\s+lonDefDomain\s+(\S+)/) { |
my $v=$1; |
my $v=$1; |
$dbug=0; |
$dbug=0; |
$dbug=1 if $v=~/\W/; |
$dbug=1 if $v=~/[^\w.\-]/; |
$dbug=1 if $v=~/\_/; |
$dbug=1 if $v=~/_/; |
# Avoid namespace conflicts under the web server's DocumentRoot. |
# Avoid namespace conflicts under the web server's DocumentRoot. |
my @badnames=('raw','userfiles','priv','adm','uploaded'); |
my @badnames=('raw','userfiles','priv','adm','uploaded'); |
foreach my $bad (@badnames) { |
foreach my $bad (@badnames) { |
Line 121 my $rbug=0;
|
Line 152 my $rbug=0;
|
my $dbug=0; |
my $dbug=0; |
my $sbug=0; |
my $sbug=0; |
my $fbug=0; |
my $fbug=0; |
while (<IN>) { |
my %line; |
next if (/^(\#|\s*$)/); |
my $line=0; |
if (/\S/) { |
while (my $l = <IN>) { |
$rbug=1 if /\r/; |
$line++; |
my @a=split(/\:/,$_); |
next if ($l=~/^(\#|\s*$)/); |
$dbug=1 if $a[0]=~/\W/; |
if ($l=~/^\^/) { |
$dbug=1 if $a[0]=~/\_/; |
if ($l !~ /^\^[\w.\-]/) { |
$dbug=1 if $a[1]=~/\_/; |
$dns_bug = 1; |
$dbug=1 if $a[1]=~/\W/; |
push(@{$line{'dns'}},$line); |
$fbug=1 if (@a<5 || @a>6); |
} |
|
} elsif ($l=~/\S/) { |
|
if ($l=~/\r/) { $rbug=1; push(@{$line{'r'}},$line); } |
|
my @a=split(/:/,$l); |
|
if ($a[0]=~/[^\w\-.]/ || |
|
$a[1]=~/[^\w\-.]/ || |
|
$a[0]=~/\_/ || |
|
$a[1]=~/\_/ ) { $dbug=1; push(@{$line{'d'}},$line); } |
|
if (@a<6 || @a>6) { $fbug=1; push(@{$line{'f'}},$line); } |
my $expr='\s.+$'; |
my $expr='\s.+$'; |
$sbug=1 if ($a[0] =~ /$expr/ || |
if ($a[0] =~ /$expr/ || |
$a[1] =~ /$expr/ || |
$a[1] =~ /$expr/ || |
$a[2] =~ /$expr/ || |
$a[2] =~ /$expr/ || |
$a[3] =~ /$expr/ || |
$a[3] =~ /$expr/ ) { $sbug=1; push(@{$line{'s'}},$line); } |
$a[4] =~ /$expr/ ) |
|
; |
; |
} |
} |
} |
} |
close IN; |
close IN; |
if ($rbug) { |
if ($rbug) { |
print "**** ERROR **** <TARGET /> is DOS-formatted\n"; |
print "**** ERROR **** <TARGET /> is DOS-formatted (lines ".join(', ',@{$line{'r'}}).")\n"; |
} |
} |
if ($dbug) { |
if ($dbug) { |
print "**** ERROR **** <TARGET /> has invalid host id or domain id\n"; |
print "**** ERROR **** <TARGET /> has invalid host id or domain id (lines ".join(', ',@{$line{'d'}}).")\n"; |
} |
} |
if ($fbug) { |
if ($fbug) { |
print "**** ERROR **** <TARGET /> is lacking 5 or 6 columns for every row\n"; |
print "**** ERROR **** <TARGET /> is lacking 6 columns for every row (lines ".join(', ',@{$line{'f'}}).")\n"; |
} |
} |
if ($sbug) { |
if ($sbug) { |
print "**** ERROR **** <TARGET /> has illegal whitespace character\n"; |
print "**** ERROR **** <TARGET /> has illegal whitespace character (lines ".join(', ',@{$line{'s'}}).")\n"; |
|
} |
|
if ($dns_bug) { |
|
print "**** ERROR **** <TARGET /> host.tab server entry has characters (lines ".join(', ',@{$line{'dns'}}).")\n"; |
} |
} |
</file> |
</file> |
<file> |
<file> |
Line 160 open IN, "<<TARGET />";
|
Line 201 open IN, "<<TARGET />";
|
my $rbug=0; |
my $rbug=0; |
my $dbug=0; |
my $dbug=0; |
my $sbug=0; |
my $sbug=0; |
while (<IN>) { |
while (my $line = <IN>) { |
if (/\S/) { |
if ($line =~ /\S/) { |
$rbug=1 if /\r/; |
$rbug=1 if $line=~/\r/; |
$dbug=1 if $_=~/\W.*\n$/; |
if ($line =~ /\W.*\n/) { |
$dbug=1 if $_=~/\_/; |
$dbug=$line if ($line !~/\w:(?:primary|default)$/); |
$sbug=1 if /\s.+$/; |
} |
|
$dbug=$line if $line=~/\_/; |
|
$sbug=1 if $line=~/\s.+$/; |
} |
} |
} |
} |
close IN; |
close IN; |
Line 173 if ($rbug) {
|
Line 216 if ($rbug) {
|
print "**** ERROR **** <TARGET /> is DOS-formatted\n"; |
print "**** ERROR **** <TARGET /> is DOS-formatted\n"; |
} |
} |
if ($dbug) { |
if ($dbug) { |
print "**** ERROR **** <TARGET /> has invalid host id\n"; |
print "**** ERROR **** <TARGET /> has invalid host id ($dbug)\n"; |
} |
} |
if ($sbug) { |
if ($sbug) { |
print "**** ERROR **** <TARGET /> has illegal whitespace character\n"; |
print "**** ERROR **** <TARGET /> has illegal whitespace character\n"; |