Appel à sudo à partir d'une page JSP.
newbie
-
newbie -
newbie -
Bonjour,
voila, mon problème est de faire des appels à partir d'une page jsp pour exécuter des commandes réservées au root, donc qui nécessitent un sudo, sous Linux (exp : sudo fdisk -l).
J'utilise les classes Process et Runtime. Le code (une portion est ci-dessous) marche parfaitement quand j'utilise des commandes qui ne nécessitent pas de droits root (exp : ls), je peux aussi exécuter un pipe (pour faire passer le mot de passe à sudo avec quelque chose comme : "echo mdp | sudo cde_admin ") avec d'autres commandes.
Quand j'affiche le flux d'erreurs (getErrorStream()) j'ai eu le message "sudo : nécessite un tty"
Comment résoudre ce problème ?? je ne sais pas s'il s'agit d'un problème de programmation ou il faut penser du coté système d'exploitation et quelque chose avec PAM par exemple.
Runtime rt = Runtime.getRuntime();
String cmde="commande Linux";
Process proc = rt.exec(cmde);
InputStream stdin = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
out.println(line);
Merci pour tout indice.
voila, mon problème est de faire des appels à partir d'une page jsp pour exécuter des commandes réservées au root, donc qui nécessitent un sudo, sous Linux (exp : sudo fdisk -l).
J'utilise les classes Process et Runtime. Le code (une portion est ci-dessous) marche parfaitement quand j'utilise des commandes qui ne nécessitent pas de droits root (exp : ls), je peux aussi exécuter un pipe (pour faire passer le mot de passe à sudo avec quelque chose comme : "echo mdp | sudo cde_admin ") avec d'autres commandes.
Quand j'affiche le flux d'erreurs (getErrorStream()) j'ai eu le message "sudo : nécessite un tty"
Comment résoudre ce problème ?? je ne sais pas s'il s'agit d'un problème de programmation ou il faut penser du coté système d'exploitation et quelque chose avec PAM par exemple.
Runtime rt = Runtime.getRuntime();
String cmde="commande Linux";
Process proc = rt.exec(cmde);
InputStream stdin = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
out.println(line);
Merci pour tout indice.
A voir également:
- Appel à sudo à partir d'une page JSP.
- Supprimer une page word - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Appel privé - Guide