Hallo,
ich habe gerade ein Projekt und zwar, ein Php Administations Tool
für meine schule.
Das script soll die gängisten Funktionen können,
zb. Dateien auf den Rechnern verteilen, init 6 iptables an aus,
Die skripte dafür sind vorhanden, kleine bash scripte, die wenn sie
aus der bash aufgerufen werden funktionieren.
zB. hier ein scp skript
|
Quellcode
|
1
2
3
4
|
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24;
do scp $1 root@10.22.8.$i:$2; done;
|
Nun zu meinem Problem,
Das ganze soll Webbasierend sein, dazu haben wir einen WebTestServer
eingerichtet, apache2 und php4.3.1, dazu dann noch eine ssh2 funktion
für php.
www.libssh2.org
http://pecl.php.net/package/ssh2
Hier ein Beispiel wie ich es installiert habe,
http://file.bbs-me.net/~antemannmic/prak…ll-Beispiel.txt
Die funktion des scriptes sind folgendermaßen aufgebaut:
hier die funktionen meiner classe die wir uns dazu erstellt haben
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
function ssh2conn($host='', $port='' ) {
if( $host!='' ) $this->host = $host;
if( $port!='' ) $this->port = $port;
$callbacks = array('disconnect' => 'my_ssh_disconnect');
$this->con = ssh2_connect($this->host, $this->port ,$callbacks);
if( !$this->con ) {
$this->log = "verbindugn konnte nicht aufgebaut werden !";
}
}
function authPassword( $user = '', $password = '' ) {
if( $user!='' ) $this->user = $user;
if( $password!='' ) $this->password = $password;
if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) {
$this->log .= "authenziefiezirung fehlgeschlagen !";
}
else {
$this->loggedFlag=true;
return true;
}
}
function cmdExec($cmd ) {
$stream = ssh2_exec( $this->con, $cmd );
stream_set_blocking( $stream, true );
return fread( $stream, 4096 );
}
|
so jetzt zum kern des problems,
ich starte das php script auf dem testserver,
Verbindung wird angemelded.
Password wird an die Verbindung gesandt, eingeloggt.
als sshd: user [priv]
19663 antemann 9 0 1636 1636 1548 S 0.0 0.7 0:00.00 sshd: antemannmic
so jetzt kann man seine commandos abgeben usw,
das resultat ist das das script durchgelaufen ist, der befehl ausgeführt wird
und
anteman 20264 0.0 0.7 5956 1824 ? S 12:43 0:00 sshd: antemannmic@notty
zurück bleibt?
wie kann ich den prozess töten? die session richtig beenden? oder sonst wie das problem lösen?
ich suche nach einem weg, zb das notty zu killen, dazu muss ich aber wissen wem welcher pid gehört,
oder eine php ssh funktion die ich übersehen habe damit das disconnect richtig funktioniert, angeblich soll das nämlich bereits gefixt wurden sein
vielen dank schon mal für die leute die sich das durchgelsen haben