| Server IP : 182.53.201.61 / Your IP : 216.73.217.175 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/13386/root/usr/libexec/webmin/pserver/ |
Upload File : |
#!/usr/bin/perl
# save_passwd.cgi
# Create, update or delete a CVS user
require './pserver-lib.pl';
$access{'passwd'} || &error($text{'passwd_ecannot'});
&ReadParse();
@passwd = &list_passwords();
$user = $passwd[$in{'idx'}] if (!$in{'new'});
&lock_file($passwd_file);
if ($in{'delete'}) {
# Just delete the user
&delete_password($user);
}
else {
# Validate and store inputs
&error_setup($text{'save_err'});
$in{'user'} =~ /^[^:\s]+$/ || &error($text{'save_euser'});
$user->{'user'} = $in{'user'};
if ($in{'pass_def'} == 2) {
$user->{'pass'} = undef;
}
elsif ($in{'pass_def'} == 0) {
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
$user->{'pass'} = &unix_crypt($in{'pass'}, $salt);
}
elsif ($in{'pass_def'} == 3) {
&foreign_require("useradmin", "user-lib.pl");
@users = &useradmin::list_users();
($copy) = grep { $_->{'user'} eq $in{'user'} } @users;
$copy || &error($text{'save_ecopy'});
$copy->{'pass'} =~ /^\$1\$/ && &error($text{'save_emd5'});
$user->{'pass'} = $copy->{'pass'};
}
if ($in{'unix_def'}) {
$user->{'unix'} = undef;
}
else {
defined(getpwnam($in{'unix'})) || &error($text{'save_eunix'});
$user->{'unix'} = $in{'unix'};
}
# Save or create the user
if ($in{'new'}) {
&create_password($user);
}
else {
&modify_password($user);
}
}
&unlock_file($passwd_file);
&webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "modify",
"user", $user->{'user'}, $user);
&redirect("list_passwd.cgi");