Bonjour,
J'ai fait une CGI en bash/html qui me permet de générer des graphiques de cluster pour voir la différence de consommation en RAM et CPU en fonction des mois. Ça tourne niquel. Mon tuteur me demande qu'un script cgi soit capable de renvoyer un sudo id (root) sans mot de passe, en ne donnant que la commande 'id'.
Comme je testais différente commande, j'ai fais sur ma CGI une box dans laquelle je tape la commande à exécuter :
Dès que je clique sur " test ", ça m'ouvre une autre page m'affichant le résultat de la commande. Voici le code de la page :
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
| #!/bin/bash
echo "Content-type: text/html"
echo ""
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="test/html"; charset=UTF-8">
<title> CLUSTER GRAPH </title>
<h1> Cluster Graph <font size=3> <a href="Index.sh">[ Index ]</a> </font> </h1>
<hr size="4" color="blue">
<style>
body{
background-color: #eff1f0;
}
</style>
</head>
<body>'
read b
test=`echo $b | cut -d'=' -f2`
echo $($test)
echo"
</body>
</html>
" |
Je récupère simplement la query string. Je la mets dans une variable et j’affiche la variable. De ce fait, si je mets " id ", le resultat qui s'affiche dans l'autre page est :
uid=48(apache) gid=48(apache) groups=48(apache) context=system_u:system_r:httpd_sys_script_t:s0
Sauf... Que moi je dois avoir l'équivalent de "sudo id "... Ce qui devrait donner :
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Du coup, je dois aller dans visudo. J'ouvre donc le fichier, et à la fin j'ajoute un :
apache ALL=(root) NOPASSWD: id
Afin de pouvoir executer la commande id en sudo sans demander le mot de passe, mais ça ne fonctionne pas !
Je suppose qu'il y a quelque chose que j'ai loupé dans tout ça... Je précise que je travaille sous RedHat 7.6 et que je fais ça en local sur ma machine, donc aucuns risques en touchant au visudo ! C'est juste pour apprendre à l'utiliser !
Pourriez-vous me dire ce que j'ai raté ?
Merci d'avance !
Partager