version 1.11, 2004/10/20 09:30:57
|
version 1.12, 2004/12/06 12:07:59
|
Line 69
|
Line 69
|
use strict; |
use strict; |
use Fcntl qw(:mode); |
use Fcntl qw(:mode); |
use DirHandle; |
use DirHandle; |
|
use POSIX; |
|
|
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/sbin:/home/httpd/perl'; |
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/sbin:/home/httpd/perl'; |
delete @ENV{qw{IFS CDPATH ENV BASH_ENV}}; |
delete @ENV{qw{IFS CDPATH ENV BASH_ENV}}; |
|
|
my $DEBUG = 0; # .nonzero -> Debug printing enabled. |
my $DEBUG = 1; # .nonzero -> Debug printing enabled. |
my $path_sep = "/"; # Unix like operating systems. |
my $path_sep = "/"; # Unix like operating systems. |
|
|
|
|
Line 237 if($authentication eq "unix:") { # Unix
|
Line 237 if($authentication eq "unix:") { # Unix
|
# user's home directory that can reset ownerships and permissions |
# user's home directory that can reset ownerships and permissions |
# back the way the used to be. |
# back the way the used to be. |
|
|
&write_restore_script($homedir); |
# This can take long enough for lond to time out, so we'll do it |
|
# in a separate process that we'll not wait for. |
&System("/bin/chown -R root:root ".$homedir); |
# |
|
my $fpid = fork; |
|
if($fpid) { |
|
&DisableRoot; |
|
exit 0; |
|
} else { |
|
print "Forked\n"; |
|
POSIX::setsid(); # Disassociate from parent. |
|
print "Separate session\n"; |
|
&write_restore_script($homedir); |
|
print "Restore script written\n"; |
|
&System("/bin/chown -R root:root ".$homedir); |
|
&System("/bin/chown -R www:www ".$fulldir); |
|
print "Exiting\n"; |
|
exit 0; |
|
} |
|
} else { |
|
&System("/bin/chown -R www:www ".$fulldir); |
} |
} |
&System("/bin/chown -R www:www ".$fulldir); |
|
} |
} |
&DisableRoot; |
&DisableRoot; |
|
|