|
System | : | Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 |
Software | : | Apache. PHP/5.3.6-13ubuntu3.10 |
ID | : | uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
|
|
Safe Mode | : | OFF |
Open_Basedir | : | OFF |
Freespace | : | 25.33 GB of 70.42 GB (35.97%) |
|
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON |
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ]
|
|
/
http/
mail/
plugins/
password/
drivers/
- drwxr-xr-x
|
Viewing file: virtualmin.php (2.55 KB) -rw-r--r--Select action/file-type:  ( +) |  ( +) |  ( +) | Code ( +) | Session ( +) |  ( +) | SDB ( +) |  ( +) |  ( +) |  ( +) |  ( +) |  ( +) |
<?php
/** * Virtualmin Password Driver * * Driver that adds functionality to change the users Virtualmin password. * The code is derrived from the Squirrelmail "Change Cyrus/SASL Password" Plugin * by Thomas Bruederli. * * It only works with virtualmin on the same host where Roundcube runs * and requires shell access and gcc in order to compile the binary. * * @version 3.0 * @author Martijn de Munnik */
class rcube_virtualmin_password { function save($currpass, $newpass) { $rcmail = rcmail::get_instance(); $format = $rcmail->config->get('password_virtualmin_format', 0); $username = $_SESSION['username'];
switch ($format) { case 1: // username%domain $domain = substr(strrchr($username, "%"), 1); break; case 2: // username.domain (could be bogus) $pieces = explode(".", $username); $domain = $pieces[count($pieces)-2]. "." . end($pieces); break; case 3: // domain.username (could be bogus) $pieces = explode(".", $username); $domain = $pieces[0]. "." . $pieces[1]; break; case 4: // username-domain $domain = substr(strrchr($username, "-"), 1); break; case 5: // domain-username $domain = str_replace(strrchr($username, "-"), "", $username); break; case 6: // username_domain $domain = substr(strrchr($username, "_"), 1); break; case 7: // domain_username $pieces = explode("_", $username); $domain = $pieces[0]; break; default: // username@domain $domain = substr(strrchr($username, "@"), 1); }
if (!$domain) { $domain = $rcmail->user->get_username('domain'); }
$username = escapeshellcmd($username); $domain = escapeshellcmd($domain); $newpass = escapeshellcmd($newpass); $curdir = RCUBE_PLUGINS_DIR . 'password/helpers';
exec("$curdir/chgvirtualminpasswd modify-user --domain $domain --user $username --pass $newpass", $output, $returnvalue);
if ($returnvalue == 0) { return PASSWORD_SUCCESS; } else { rcube::raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, 'message' => "Password plugin: Unable to execute $curdir/chgvirtualminpasswd" ), true, false); }
return PASSWORD_ERROR; } }
|