--- loncom/Attic/lchtmldir 2004/05/13 20:44:38 1.5 +++ loncom/Attic/lchtmldir 2004/08/05 20:33:50 1.6 @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w # The Learning Online Network with CAPA # @@ -214,8 +214,8 @@ END # Based on the authentiation mode, set the ownership of the directory. if($authentication eq "unix:") { # Unix mode authentication... - &System("/bin/chown -R $username".":".$username." ".$fulldir); - &JoinGroup($username); + &System("/bin/chown -R $safeuser".":".$safeuser." ".$fulldir); + &JoinGroup($safeuser); } else { # Internal, Kerberos, and Local authentication are for users # who do not have unix accounts on the system. Therefore we @@ -268,6 +268,9 @@ sub JoinGroup { my $usergroup = shift; my $groups = `/usr/bin/groups www`; + # untaint + my ($safegroups)=($groups=~/([\s\w]+)/); + $groups=$safegroups; chomp $groups; $groups=~s/^\S+\s+\:\s+//; my @grouplist=split(/\s+/,$groups); my @ugrouplist=grep {!/www|$usergroup/} @grouplist; @@ -285,11 +288,11 @@ sub JoinGroup { sub System { - my $command = shift; + my ($command,@args) = @_; if($DEBUG) { - print("system: $command \n"); + print("system: $command with args ".join(' ',@args)."\n"); } - system($command); + system($command,@args); }