Advertisement
Guest User

Untitled

a guest
Mar 29th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.25 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php /*
  3.     @Autor: jcunha@cijun.sp.gov.br
  4.     @data: 09/03/2016 */
  5.     error_reporting(E_ERROR | E_PARSE);
  6.     $arg_size = count($argv);
  7.     if ($arg_size == 3) {
  8.         $ldaphost = $argv[2];
  9.         $ldapUsername = $argv[1];
  10.         echo "\r\n";
  11.         $ldapPassword = prompt_silent();
  12.         strlen($ldapPassword) or die("\r\n [TERMINADO]:Nenhuma senha foi informada!\r\n\r\n");
  13.         $ds = ldap_connect($ldaphost);
  14.         if(!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)){
  15.             print "Não foi possvel utilizar LDAPv3\r\n";
  16.         }else{
  17.             // Não foi possvel conectar ao servidor LDAP
  18.             $bth = ldap_bind($ds, $ldapUsername, $ldapPassword) or die("\r\n [FALHA]:Não foi possível autenticar no servidor LDAP.\r\n\r\n");
  19.             print "\r\n [SUCESSO]:Autenticação para o usuário [$ldapUsername] foi bem sucedida!\r\n\r\n";
  20.         }
  21.     }else{
  22.         print "\r\n";
  23.         print "  Para usar entre com os parametros abaixo:\r\n";
  24.         print "\r\n";
  25.         print '    ldap (porta 389): ldap.php "domínio\usuário" "ldap://dcserver.dominio.local"' . "\r\n";
  26.         print "    ou\r\n";
  27.         print '    ldaps (porta 636): ldap.php "domínio\usuário" "ldaps://dcserver.dominio.local"' . "\r\n";
  28.         print "\r\n";
  29.         print "\r\n";
  30.         print "   Formatos aceito para usurio:" . "\r\n";
  31.         print "\r\n";
  32.         print '     "CN=Ayrton Senna da Silva,DC=cijunsp,DC=local"' . "\r\n";
  33.         print '     "asenna@cijunsp.local"' . "\r\n";
  34.         print '     "asenna@cijunsp"' . "\r\n";
  35.         print '     "cijunsp\asenna"' . "\r\n";
  36.         print "\r\n";
  37.         print "\r\n";
  38.         print "   Formatos aceito para servidor de domínio:" . "\r\n";
  39.         print "\r\n";
  40.         print '     Para ldap:' . "\r\n";
  41.         print '      "111.222.333.444"' . "\r\n";
  42.         print '      "111.222.333.444:389"' . "\r\n";
  43.         print '      "dcserver.dominio.local"' . "\r\n";
  44.         print '      "dcserver.dominio.local:389"' . "\r\n";
  45.         print '      ou todas acima com o prefixo [ldap://]' . "\r\n";
  46.         print "\r\n";
  47.         print "\r\n";
  48.         print "   Formatos aceito para servidor/domínio:" . "\r\n";
  49.         print "\r\n";
  50.         print "     Para ldaps (ldap over ssl):" . "\r\n";
  51.         print '      "ldaps://111.222.333.444" (sem verificação de certificado)' . "\r\n";
  52.         print '      "ldaps://111.222.333.444:363" (sem verificação de certificado)' . "\r\n";
  53.         print '      "ldaps://dcserver.dominio.local"(com ou sem verificação de certificado)' . "\r\n";
  54.         print '      "ldaps://dcserver.dominio.local:389" (com ou sem verificação de certificado)' . "\r\n";
  55.         print "\r\n";
  56.         print "\r\n";
  57.     }
  58.     function prompt_silent($prompt = "Entre com a senha do usuário informado:") {
  59.         $command = '/usr/bin/env bash -c "echo OK"';
  60.         if (rtrim(shell_exec($command)) !== 'OK') {
  61.             trigger_error("Can't invoke bash");
  62.             return;
  63.         }
  64.         $command = "/usr/bin/env bash -c 'read -s -p \""
  65.             . addslashes($prompt)
  66.             . "\" mypassword && echo \$mypassword'";
  67.         $password = rtrim(shell_exec($command));
  68.         echo "\n";
  69.         return $password;
  70.     }
  71. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement