bonjour,
je souhaite pouvoir donner la possibilité à un utilisateur (autre que root) de pouvoir redémarrer Linux...en saisissant la commande "reboot" par exemple.
l'utilisateur pour info se connecte via un telnet...mais ca ne change rien au problème...
Bien évidement, je ne souhaite pas donner le mot de passe de root...par contre je veux bien claquer en dur le mot de passe pour pouvoir l'utiliser dans un script ou un petit programme.
J'ai essayé "su -c reboot < root.pw" root.pw étant un fichier contenant le mot de passe de root....mais ça ne fonctionne pas.
Comment faire?
merci.
# sudo et sudoer
Posté par NeoX . Évalué à 7.
man sudo
man visudo
[^] # Re: sudo et sudoer
Posté par Ellendhel (site web personnel) . Évalué à 1.
Le détail complet est dans le "Linux Security Cookbook" chez O'Reilly [1] en anglais.
La recette détaillée est un peu longue, mais une partie est disponible sur le site web de l'éditeur [2] aux entrées "Sharing root Privileges via SSH" et "Running root Commands via SSH".
En deux mots :
- vérifier que la directive PermitRootLogin est à 'yes' dans le fichier sshd_config
- ajouter les clés publiques des utilisateurs concernés au fichier /root/.ssh/authorized_keys
- lancer une commande de la façon suivante : ssh -l root localhost commande
[1] http://www.oreilly.com/catalog/linuxsckbk/index.html
[2] http://www.oreilly.com/catalog/linuxsckbk/toc.html
# expect...
Posté par Gyro Gearllose . Évalué à 1.
Si tu veux en savoir plus, tu peux aller regarder les pages ici :
http://expect.nist.gov/FAQ.html
Voilà, en espérant que ça aide, comme on dit.
[^] # Re: expect...
Posté par Gyro Gearllose . Évalué à 1.
J'ai utilisé le lien [1] pour faire un pauvre essai dont voici le code :
Il faut évidement mettre le vrai mot de passe de root à la place de mdpderoot.
Et pour répondre à la question posée, remplacer ce qui est après l'appel à spawn par reboot.
[1] http://floppsie.comp.glam.ac.uk/Glamorgan/gaius/scripting/5.(...)
P.S. : Au moment où je frappe ces quelques lignes, je constate que mon message précédent a été "moinsé", j'aimerai bien savoir pourquoi.
[^] # Re: expect...
Posté par NeoX . Évalué à 5.
expect, c'est surement bien, mais ca veut aussi dire que la personne qui peut lire le script, connait le mot de passe root
si elle connait le mot de passe root, alors elle peut etre root
et tu ne pourras pas la limiter à seulement la commande reboot.
idem pour le coup du fichier que tu redirige vers le su -c
je penses donc serieusement que le sudo reste le meilleur outil pour autoriser une seule commande (reboot) habituellement lancée par root à un utilisateur ou un groupe d'utilisateur.
[^] # Re: expect...
Posté par Gyro Gearllose . Évalué à 1.
"J'ai essayé "su -c reboot < root.pw" root.pw étant un fichier contenant le mot de passe de root....mais ça ne fonctionne pas."
Et c'est en me basant là dessus que j'ai formulé une solution collant au plus près à la demande, même si elle n'est pas parfaite...
Ceci étant, il y a aussi d'autres mécanismes comme le suid-bit par exemple, qui sont beaucoup plus simples que celles proposées...
[^] # Re: expect...
Posté par NeoX . Évalué à -1.
mais alors tous les utilisateurs pourront faire reboot
[^] # Re: expect...
Posté par daggett . Évalué à 2.
[^] # Re: expect...
Posté par NeoX . Évalué à 2.
- faire un groupe qui à les droits sudo sur reboot
- ajouter la personne dans ce groupe
[^] # Re: expect...
Posté par B. franck . Évalué à 5.
peut-être parce que la solution d'expect oblige à laisser le fichier en lecture et qu'il contient le mdp de root, donc le donne à quiconque peut lire (exécuter) le script.
Le pré-requis de départ étant "ne pas donner le mdp root" c'est donc une fausse route.
(Sans parler du gigantesque trou de sécurité que l'on ouvre avec cette méthode, mais passons...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.