Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
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 11/05/2011, 15h32   #1
 
Homme atoui hichem
Étudiant
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme atoui hichem
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 40
Points : -1
Points : -1
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 :
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 :
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.
hichem tunis est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/05/2011, 15h42   #2
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
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...).
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h20   #3
 
Homme atoui hichem
Étudiant
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme atoui hichem
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 40
Points : -1
Points : -1
salut,

comment configurer cette chemin pour que l'utilisateur ne soit besoin d'entrer le mot de passe
je connais pas beaucoup linux
merci
hichem tunis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h43   #4
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 6 062
Points : 6 062
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
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 00h23   #5
 
Homme atoui hichem
Étudiant
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme atoui hichem
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 40
Points : -1
Points : -1
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
hichem tunis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 12h19   #6
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 6 062
Points : 6 062
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 :
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
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 09h42   #7
 
Homme atoui hichem
Étudiant
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme atoui hichem
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 40
Points : -1
Points : -1
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é.
hichem tunis est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/05/2011, 09h49   #8
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 6 062
Points : 6 062
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
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 09h53   #9
 
Homme atoui hichem
Étudiant
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme atoui hichem
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 40
Points : -1
Points : -1
bonjour,

ok idriss

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

donc même editeur je crois
hichem tunis est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 19/05/2011, 11h05   #10
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
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 !
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web