IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] lancement de script shell pour utilisateur authentifié


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    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.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    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.

  3. #3
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Par défaut
    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?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
     
    	}
     
    }
     
    ?>

  5. #5
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Par défaut
    merci beaucoup, ça m'a aidé énormement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script shell pour le lancement d'une appliction
    Par aymen83 dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 26/12/2008, 15h01
  2. Script shell pour tester si un répertoire est vide ou pas
    Par Ito dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/10/2006, 17h44
  3. Script shell pour modifier plusieurs fichiers
    Par julio_097 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 03/10/2006, 12h41
  4. Script shell pour persister les variables exportées
    Par Giovanny Temgoua dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/10/2006, 09h07
  5. [GML] Scripts shell pour extraire des données d'Oracle
    Par diamonds dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 28/09/2006, 07h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo