initkey.pl 879 Bytes
Newer Older
1
#!/usr/bin/perl -w
2
3
4
5
6
7
8
#
# EMULAB-COPYRIGHT
# Copyright (c) 2000-2003 University of Utah and the Flux Group.
# All rights reserved.
#
use English;

9
use lib "/usr/testbed/devel/stoller/lib";
10
11
12
13
14
15
16
17
18
19
use libdb;
use libtestbed;

#
# Untaint the path
# 
$ENV{'PATH'} = '/bin:/usr/bin:/usr/sbin';
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};

$query_result =
20
    DBQueryFatal("select pid,eid,gid,expt_head_uid from experiments ".
Leigh B. Stoller's avatar
Leigh B. Stoller committed
21
		 "where eventkey is null");
22

23
24
while (($pid,$eid,$gid,$creator) = $query_result->fetchrow_array()) {
    my $eventkey = TBGenSecretKey();
25

26
27
28
29
30
31
32
33
34
35
36
37
    DBQueryFatal("update experiments set eventkey='$eventkey' ".
		 "where pid='$pid' and eid='$eid'");

    my $keyfile = TBDB_EVENTKEY($pid, $eid);

    if (!open(KEY, ">$keyfile")) {
	warn("Could not create $keyfile: $!\n");
	next;
    }
    print KEY $eventkey;
    close(KEY);
    system("chown $creator $keyfile");
38
}