# Partea cu bagatu' mainilor se referea la autentificarea user-ului. Ziceam ca
# vreau dintr-un script (setuid-at root) vreau sa verific ca useru' are parola
# care pretinde c-o are.
#
# Am facut un script perl care face treaba asta (extragand linia pt. user din
# /etc/shadow si folosind oarece modul perl (Crypt::PasswordMD5 parca) ca sa
# validez parola).
Un scriptulet mai simplu ar fi (fara module, fara extragere manuala a liniei
din /etc/shadow, doar folosind functii specifice perl):
# Sintaxa: chkpwd <parola> [uid|user]
my $user=defined($ARGV[1])?$ARGV[1]:$<;
my $pwd=(($user=~/^[0-9]/)?getpwuid($user):getpwnam($user))[1];
if($<!=0) { print STDERR "chkpwd: nu sunteti root.\n"; exit(1) }
if(!defined($pwd)) { print STDERR "chkpwd: utilizator inexistent.\n"; exit(2) }
print("Parola este ".((crypt($ARGV[0],$pwd) eq $pwd)?'':"in")."corecta.\n");
# Schimbatu' parolei ar fi - evident - facut via utilitare sistem (chpasswd
# sau passwd --stdin).
--
Radu <[EMAIL PROTECTED]> www.littledragon.f2s.com
It is the weak who are cruel, only the stong can be truly gentle.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.