Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2007, 11h48   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
Par défaut [Sécurité] lancement de script shell pour utilisateur authentifié

Bonjour,

mon probleme est plutot complexe, j'aimerais lancer un script shell sous unix à partir de php, mais pour un utilisateur authentifié.
j'ai effectué des recherches et je n'ai pas trouvé comment le faire. Est ce seulement possible?

Je voudrais acceder à un compte specifique sous unix pour lancer un script shell pour cet utilisateur, grace à un bouton.

j'avais pensé à ca :
une premiere page php verifiant que l'utilisateur est enregistré sous unix et à le bon mot de passe et permettant de s'authentifier.
une deuxieme page (session) permettant à l'utilisateur de lancer un script sur le serveur unix.

Si une personne à deja fait cela ou à un exemple ou a une meilleure solution?

Merci à tous.
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 14h12   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 182
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 182
Points : 6 469
Points : 6 469
Perso, je le fais avec ssh2.

Alors soit l'utilisateur est identifié et on lui donne accès avec un compte Unix générique, soit et c'est mieux, il est user de la machine unix et donc à ce moment il prend la main.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 08h50   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
merci à vous je n'y aurais pas pensé.
jai lu quelques articles sur ssh2, j'ai entendu parler de quelques problémes au niveau de la stabilité.
Vous n'avez pas eu de probléme personnellement?
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 14h21   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 182
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 182
Points : 6 469
Points : 6 469
Bonjour,

je ne m'en sert que pour faire de vérification de fichiers sur 8 serveurs différents, je trouve cela un plus lent que Perl, mais je n'ai constaté aucun problème jusque présent.

Si cela peut vous aider, voici une classe que j'ai trouv" sur le net, et dont je me sert.

Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
 
// ssh protocols
// note: once openShell method is used, cmdExec does not work
 
class ssh2 {
 
	private $host = '';
	private $user = '';
	private $port = '22';
	private $password = '';
	private $con = null;
	private $shell_type = 'xterm';
	private $shell = null;
	private $log = '';
 
	function __construct($host='', $port=''  ) {
 
		if( $host!='' ) $this->host  = $host;
		if( $port!='' ) $this->port  = $port;
 
		$this->con  = ssh2_connect($this->host, $this->port);
		if( !$this->con ) {
			$this->log .= "Authorization failed !";
		}
 
	}
 
	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 .= "Authorization failed !";
		}
 
	}
 
	function openShell( $shell_type = '' ) {
 
		if ( $shell_type != '' ) $this->shell_type = $shell_type;
		$this->shell = ssh2_shell( $this->con,  $this->shell_type );
		if( !$this->shell ) $this->log .= " Shell connection failed !";
 
	}
 
	function writeShell( $command = '' ) {
 
		fwrite($this->shell, $command."\n");
 
	}
 
	function readFlux()
	{
 
	}
 
	function cmdExec( ) {
 
		$argc = func_num_args();
		$argv = func_get_args();
 
		$cmd = '';
		for( $i=0; $i<$argc ; $i++) {
			if( $i != ($argc-1) ) {
				$cmd .= $argv[$i]." && ";
			}else{
				$cmd .= $argv[$i];
			}
		}
		//echo $cmd;
 
		$stream = ssh2_exec( $this->con, $cmd );
		stream_set_blocking( $stream, true );
		//return fread( $stream,250000);
		return $output = stream_get_contents($stream);
 
	}
 
	function getLog() {
 
		return $this->log;
 
	}
 
}
 
?>
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 16h26   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 38
Points : 10
Points : 10
merci beaucoup, ça m'a aidé énormement.
jfb53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web