Salut tous le monde , je suis en train de faire un Firewall .
J'ai fait un code qui interpret la commande ls (voila son code aprés).
try{
Runtime runtime = Runtime.getRuntime();
String[] cmd = { "/bin/sh", "-c", "ls>fichier.txt" };
Process p = runtime.exec(cmd);
p.waitfor();
}catch(Exeption e) {
System.out.println("erreur d'execution");
}
Maintenant Je veux interpreter la command iptables dans un code java..
try{
Runtime runtime = Runtime.getRuntime();
String[] cmd = { "/bin/sh", "-c", "iptables -L>fichier.txt" };
Process p = runtime.exec(cmd);
p.waitfor();
}catch(Exeption e) {
System.out.println("erreur d'execution");
}
toujour il affiche cet message
iptables v1.4.1.1: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
le problem c'est
comment j peux changer a root .
merci d'avance
# lapin compris
Posté par defmonkey . Évalué à 1.
Le message d'erreur parait pourtant clair: http://translate.google.fr/#en|fr|you%20must%20be%20root. C'est quoi que tu ne comprend pas dans ce message?
[^] # Re: lapin compris
Posté par alimanoubi . Évalué à -2.
le problem c'est
comment j peux changer a root.
merci d'avance
[^] # Re: lapin compris
Posté par Nitchevo (site web personnel) . Évalué à 1.
J'ai compris!
C'est pour le Firewall OpenOffice!
# merci
Posté par alimanoubi . Évalué à 0.
salut
le problem c'est
comment j peux changer a root merci d'avance
[^] # Re: merci
Posté par Olivier (site web personnel) . Évalué à 2.
Le plus simple est d'utiliser le mécanisme de "sudo", configuré de telle manière à ce qu'il ne te demande pas de mot de passe.
Installe le paquet "sudo"
Lance "visudo", et tape ceci:
Host alias specification
User alias specification
User_Alias PRIVILEDGE_USERS = alimanoubi
Cmnd alias specification
Cmnd_Alias PRIVILEDGE = \
User privilege specification
PRIVILEDGE_USERS ALL = NOPASSWD: PRIVILEDGE
A partir de là, l'utilisateur "alimanoubi" peut lancer la commande "iptables" en tapant:
sudo /sbin/iptables
Ton programmes Java devra donc lancer "sudo /sbin/iptables" à la place de "iptables".
[^] # Re: merci
Posté par alimanoubi . Évalué à -2.
salut
merci pour le code
mais ne fonctionne pas svp y a pas d'autre solution
[^] # Re: merci
Posté par Kerro . Évalué à 2.
Apprendre les bases par exemple :-)
Demande à google de t'aider pour la commande sudo et son fichier de configuration, ça devrait le faire.
[^] # Re: merci
Posté par maxix . Évalué à 2.
http://www.gnurou.org/writing/smartquestionsfr#mozTocId740433
[^] # Re: merci
Posté par Olivier (site web personnel) . Évalué à 1.
Retire le saut de ligne qu'il y a après "Cmnd_Alias PRIVILEDGE". C'est le nouveau LinuxFR qui l'a rajouté
Renseignes-toi sur Google sur l'utilisation de sudo.
[^] # Re: merci
Posté par alimanoubi . Évalué à -2.
j'ai retiré le saut de ligne qu'il y a après "Cmnd_Alias PRIVILEDGE"
mais le code ne fonctionne pas
svp j besoin de code sur Ubuntu 9.04
# runtime.suexec ou sudo ton_programme
Posté par NeoX . Évalué à 2.
si java ne te permet pas de faire le
à l'interieur du programme via runtime.exec()
alors il faut chercher d'autres pistes :
- une fonction runtime.suexec() qui ferait que c'est java qui ferait la demande d'elevation de proviliege et pas le shell lancé par java
- essayer en lancant ton programme en sudo, il suffit juste de faire sudo ton_programme
# une reponse ?
Posté par NeoX . Évalué à 4.
le dernier lien de ce site : http://lmgtfy.com/?q=run+sudo+command+from+java
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.