#!/usr/bin/env perl use Heimdal::Kadm5 qw(/KADM5_/); $client = Heimdal::Kadm5::Client->new('RaiseErrors'=>1,'Principal'=>'shibboleth-idp@NORDU.NET',Keytab=>'/etc/useradmin.keytab'); my $line = ; my ($user,$pass) = split('\s+',$line); die "Missing parameters on stdin\n" unless ($user and $pass); my ($local,$domain) = split('\@',$user); my $pn = "$local\@NORDU.NET"; my $p = $client->getPrincipal($pn); unless ($p) { $p = $client->makePrincipal($pn); $client->createPrincipal($p,$pass); } else { $client->changePassword($pn,$pass); }