#!/usr/bin/perl -w # # Copyright (c) 2008 University of Utah and the Flux Group. # # {{{EMULAB-LICENSE # # This file is part of the Emulab network testbed software. # # This file is free software: you can redistribute it and/or modify it # under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or (at # your option) any later version. # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public # License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this file. If not, see . # # }}} # use strict; use English; use Getopt::Std; # # A hook invoked from boss after a new user is added to ops. # sub usage() { print "Usage: adduserhook \n"; exit(-1); } my $optlist = "d"; my $debug = 0; # # Configure variables # my $TB = "@prefix@"; my $TBOPS = "@TBOPSEMAIL@"; # # Turn off line buffering on output # $| = 1; # # Untaint the path # $ENV{'PATH'} = "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin"; delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; # # Only real root can run this script. # if ($UID != 0) { die("*** $0:\n". " Must be root to run this script!\n"); } # # Testbed Support libraries # use lib "@prefix@/lib"; use libtestbed; # Protos # # Parse command arguments. Once we return from getopts, all that should be # left are the required arguments. # my %options = (); if (! getopts($optlist, \%options)) { usage(); } if (defined($options{"d"})) { $debug = 1; } if (@ARGV != 1) { usage(); } my $user = shift(@ARGV); # # Add your code here, but remember you are running as root. Be careful. # exit(0); sub fatal($) { my($mesg) = $_[0]; die("*** $0:\n". " $mesg\n"); }