Buongiorno a tutti!![]()
Dopo lunghi e faticosi tentativi...vi posto la prima versione funzionante dello script, script che attualmente è in test sul mail server:
![]()
Come si può vedere non è ancora la "versione elegante"...e mancano ancora un paio di cosine, ma a cercare di sistemare il tutto mi ci metto ora...codice:#!/usr/bin/perl -w use Authen::PAM; $| = 1; #force STDOUT autoflush after each write my ($seq,$vrfy,$mode,$user,$passw); sub pam_conv_func { my @res; while ( @_ ) { my $msg_type = shift; my $msg = shift; #print $msg; push @res, 0; push @res, $passw; } push @res, PAM_SUCCESS; return @res; } while(<STDIN>) { ($seq,$vrfy,$mode,$user,$passw) = split(/ /); unless($mode =~ /^\(.*\)$/) { $passw=$user; $user=$mode; } print "contenuto di passwd prima delle verifiche $passwd\n"; print "contenuto di user prima delle verifiche $user\n"; unless($seq && $vrfy && $user && $passw) { print "$seq ERROR Wrong arguments\n"; } elsif($vrfy ne 'VRFY') { print "$seq ERROR Only clear text passwords supported\n"; } else { my ($res,$pamh,$domi); # ***mAx*** aggiunta dichiarazione variabile 'domi' chomp($passw); if($user =~/(.+)\@(.+)/) {$user=$1; $domi=$2} # strip the domain name if necessary + ***mAx*** assegnazione della seconda parte della stringa a $domi if($domi eq "dominio3.com") {$user = "DOM3"."\\".$user} # ***mAx*** se dominio 3 lo chiama DOM3 elsif($domi eq "dominio2.it") {$user = "DOM2"."\\".$user} # ***mAx*** se dominio 2 lo chiama DOM2 elsif($domi eq "dominio1.eu") {$user = "DOM1"."\\".$user} # ***mAx*** se dominio 1 lo chiama DOM1 print "contenuto di user $user\n"; if(($res=pam_start("login", $user, \&pam_conv_func, $pamh))!=PAM_SUCCESS || ($res=pam_authenticate($pamh, 0))!=PAM_SUCCESS || ($res=pam_end($pamh, 0))!=PAM_SUCCESS) { print "$seq ERROR ".pam_strerror($pamh,$res)."\n"; } else { print "$seq OK \n"; } } }
Quanto sopra, unitamente alla corretta configurazione di kerberos e samba, fa il lavoro che volevo...e anche velocemente...almeno in ambiente di test...
Grazie davvero a tutti!!!![]()
mAx

...vi posto la prima versione funzionante dello script, script che attualmente è in test sul mail server:
Rispondi quotando