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

Linux Discussion :

execution sudo iptables avec java


Sujet :

Linux

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut execution sudo iptables avec java
    salut à tous,

    je trouve un programme qu'execute la commande shell de linux en java,

    tout les commandes marchent bien mais j'ai un probleme au niveau de iptables.

    voir le code main:
    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
     
    public class iptables {
        public static void main(String args[])
        {
            try{
    Runtime runtime = Runtime.getRuntime();
    //String cmdline= "sh ~/home/atoui/iptables.sh";
    //String[] cmd1 = { "/bin/sh", "-c", "ping 192.168.1.1"};
    String[] cmd = { "/bin/sh", "-c", "sudo iptables -A INPUT -d 192.168.1.7 -j DROP >fichier.txt" };
    Process p = runtime.exec(cmd);
    Thread stdTh = new InputStreamConsumerThread("STDStream", p.getInputStream(), System.out);
    Thread errTh = new InputStreamConsumerThread("ErrorStream", p.getErrorStream(), System.out);
    errTh.start();
    stdTh.start();
     
    // Attends la fin du process
    p.waitFor();
     
     
     
    }catch(Exception e) {
    System.out.println("erreur d'execution");
    }
        }
    }
    et la class InputStreamConsumerThread:
    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
     
    import java.io.OutputStream;
    import java.io.InputStream;
    import java.io.IOException;
     
    public class InputStreamConsumerThread
    extends Thread
    {
     
    private InputStream _in;
    private OutputStream _out;
     
    public InputStreamConsumerThread(ThreadGroup group, String name, InputStream in, OutputStream out)
    {
    super(group, name);
    setDaemon(true);
    if ( in == null )
    {
    throw new IllegalArgumentException("InputStream argument cannot be null");
    }
    _in = in;
    _out = out;
    }
     
    public InputStreamConsumerThread(String name, InputStream in, OutputStream out)
    {
    this(null, name, in, out);
    }
     
    public void run()
    {
    byte[] buf = new byte[512];
    int count = 0;
    try
    {
    while ( (count = _in.read(buf)) != -1 )
    {
    if ( _out != null )
    {
    _out.write(buf, 0, count);
    }
    }
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    }
    }
    il m'affiche l'erreur suivant:
    sudo: no tty present and no askpass program specified

    le probleme est au niveau de sudo.

    aider moi svp.
    merci.

  2. #2
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Peut-être un problème de droit au niveau de sudo ? Je pense qu'il faut configurer /etc/sudoers pour que ton utilisateur n'ai pas à saisir de mot de passe (pas très sécurisé comme méthode...).

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    salut,

    comment configurer cette chemin pour que l'utilisateur ne soit besoin d'entrer le mot de passe
    je connais pas beaucoup linux
    merci

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    Je t'invites à lire ceci : http://www.developpez.net/forums/d10...wd-via-script/

    Le problème est similaire ...
    Modifier le fichier /etc/sudoers est une grosse faille de sécurité. Une solution avec ssh est préférable.

    Cordialement,
    Idriss

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    salut,

    est ce que vous pouvez me dire comment changer mon fichier /etc/sudoers

    pour être entre commande sudo sans mot de passe

    j'ai la modifier mais le sudo est bloqué, il ma afficher erreur: votre sudo est en mode 0666 il faut en mode 0440

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Je ne pense pas qu'il s'agisse d'un problème de mot de passe, mais d'un problème de droits sur la commande. Désactiver le mot de passe ne changera rien à cette erreur je pense ...

    Pour désactiver le mot de passe, il faut remplacer PASSWD par NOPASSWD dans cette ligne du fichier /etc/sudoers (en l'éditant avec la commande visudo) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDeTonCompte ALL=(ALL) PASSWD: ALL
    Cependant, encore une fois : c'est une faille de sécurité et je te le déconseille fortement ...

    D'autres solutions ont été proposées ici : http://www.developpez.net/forums/d10...wd-via-script/

    Cordialement,
    Idriss

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    salut à tous ,

    juste pour terminer sur ok idriss

    pour désactiver le mot de passe lors d'execution un commande sudo il faut remplacer la

    ligne de fichier sudoers:"%admin ALL=(ALL) ALL" par la ligne

    "%admin ALL=(ALL) NOPASSWD: ALL".

    NB: la modification de fichier /etc/sudoers fait avec la commande sudo visudo.

    après modification, cliquer sur ctrl+o pour enregistrer puis entré

    puis ctrl+x pour fermer la fichier.

    NB: désactiver password est moins sécurisé et déconseillé.

  8. #8
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par hichem tunis Voir le message
    après modification, cliquer sur ctrl+o pour enregistrer puis entré

    puis ctrl+x pour fermer la fichier.

    NB: désactiver password est moins sécurisé et déconseillé.
    Cela dépendra de l'éditeur utilisé par visudo (que l'on peut changer avec la variable EDITOR).

    Cordialement,
    Idriss

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    bonjour,

    ok idriss

    généralement on modifie le fichier sudoers avec la commande visudo sur le terminale

    donc même editeur je crois

  10. #10
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Bonjour,

    c'est un peu plus compliqué que ça pour visudo

    en fait, les éditeurs pouvant être utilisés par visudo sont spécifiés lors de la compilation (par défaut il n'y a que vi je crois) et visudo ne prendra en compte les variables d'environnement que si l'éditeur indiqué est inclus dans cette liste.

    http://pwet.fr/man/linux/administration_systeme/visudo

    Donc la variable EDITOR n'est pas nécessairement prise en compte. Par contre, visudo lance évidemment un éditeur externe !

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

Discussions similaires

  1. Impossible d 'executer un programme avec java
    Par kevin254kl dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 20/01/2015, 18h14
  2. iptables avec java
    Par soumass dans le forum Unix
    Réponses: 0
    Dernier message: 10/02/2013, 21h39
  3. verifier les anomalies dans un firewall IPTABLES avec java
    Par MANNATHEKING dans le forum Linux
    Réponses: 0
    Dernier message: 07/01/2010, 15h24
  4. executer un trigger avec java
    Par 080983 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2007, 20h51
  5. Executer une commande avec sudo a partir de java
    Par barabas123 dans le forum Langage
    Réponses: 16
    Dernier message: 05/01/2007, 16h47

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