2016-10-09 1 views
0
hinzufügen

Ich habe ein Problem, ein Passwort für neue Benutzer einzugeben, die über ssh mit PHP zu einem Debian-Server generiert. Um neue Benutzer hinzuzufügen, schreibe ich einfach "useradd $ username". Aber wenn ich das Passwort für diesen Benutzer festlegen möchte, sollte es wie "passwd $ username" sein und dann sollte ich das Passwort eingeben. Aber wie geht das in PHP?Neuen Benutzer und Passwort zu debian über SSH mit PHP

Dies ist mein kompletter Code:

<?php 
$username = "abcd"; 
$password = "456789"; 
$expired = "5"; 
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); 
// log in at server1.example.com on port 22 
if(!($con = ssh2_connect("128.199.xxx.xx", 22))){ 
echo "fail: unable to establish connection\n"; 
} else { 
// try to authenticate with username root, password secretpassword 
if(!ssh2_auth_password($con, "root", "xxxxxx")) { 
    echo "fail: unable to authenticate\n"; 
} else { 
    // allright, we're in! 
    echo "okay: logged in...\n"; 

    // execute a command 
    if (!($stream = ssh2_exec($con, "passwd 'haha'"))){ 
     echo "fail: unable to execute command\n"; 
    } else { 
     // collect returning data from command 
     stream_set_blocking($stream, true); 
     $data = ""; 
     while ($buf = fread($stream,4096)) { 
      $data .= $buf; 
     } 
     echo "Username berhasil dibuat"; 
     echo $data; 
     fclose($stream); 
} 
} 
} 
?> 

Antwort

0

Scheinen Sie suchen nicht interaktive Art und Weise Benutzer-Passwort zu ändern.

Versuchen Sie, diese

echo "username:newpass"|chpasswd

Hier ist chpasswd Handbuch Seite.

Diese Methode eignet sich auch zum Ändern von Kennwörtern für eine größere Anzahl von Benutzern.

UPD:

zur Zeit eingeloggt Benutzername wissen whoami kann von Nutzen sein.

+0

Sorry, aber ich habe immer noch nicht verstanden, kann ich nur meinen Code ändern: 'if (! ($ Stream = ssh2_exec ($ con,' "Benutzername: newpass" | chpasswd ')))' ' @Paul – tzudin

+0

Sie müssen den derzeit aktiven Benutzernamen ersetzen, um zu erreichen, was Sie wollen. Zu diesem Zweck können Sie 'whoami' verwenden, das ich der Antwort hinzugefügt habe. Zuerst lesen Sie den aktuellen Benutzernamen, dann ersetzen Sie ihn vor ':' und geben als nächstes Ihr neues Passwort als Klartext anstelle von 'newpass' ein. –

Verwandte Themen