J'ai un réseau tout frais de machines sous Linux Ubuntu 9.04. Je
souhaiterais écrire un script qui permette de les éteindre toutes en une
seule opération, genre clic sur un fichier sur le bureau d'une des
machines qui exécuterait le script. L'idée étant que ça soit réalisable
même par quelqu'un qui n'y connait rien aux réseaux. (Pour la petite
histoire, j'ai appris à ma collègue à éteindre une machine via ssh,
commande halt et mots de passe en 2 minutes, alors qu'elle n'avait
jamais touché un Linux ; ça aide de travailler avec des gens
intelligents :-) )
J'ai un peu cherché sur Internet, et j'en suis arrivé aux conclusions
suivantes :
- utiliser le protocole ssh
- activer l'authentification par clef, pour éviter la demande
systématique de mot de passe.
Jusqu'ici, tout va bien, j'ai suivi le tutoriel bien fait sur le site
d'Ubuntu.
Reste la commande halt -n. Il faut être "superutilisateur" aka root
pour exécuter la commande, me dit-on. Et rentrer le mot de passe "sudo"
à chaque fois. Je constate cependant que l'extinction en local ne
demande pas de mot de passe, même si l'utilisateur n'a pas les droits
sur "halt". Je m'interroge.
Poursuivant mes investigations, je découvre que la résolution de mon
problème passe sans doute par la modification du fichier /etc/sudousers
sur toutes les machines. L'idée serait donc d'associer l'option NOPASSWD
pour l'utilisateur (disons "public") et ce pour la seule commande "halt".
Questions :
- Est-ce possible ?
- Si oui, quelle pourrait en être la syntaxe ? J'ai regardé la
documentation de /etc/sudousers, mais je dois avouer ici mes limites :
ça m'a paru absolument imbitable. Peut-être devrais-je reconsidérer cela
à tête reposée.
Néanmoins, si quelqu'un avait la solution, je serais vraiment preneur.
Bien sûr que si. À ma connaissance, il n'existe pas de système Unix sans un utilisateur "root". En revanche, il n'a pas de mot de passe par défaut. On peut facilement lui en rajouter un.
On Fri, 16 Oct 2009 14:17:48 +0200, olive <oloc@alussinan.org>:
Par défaut, le root n'est pas activé sous Ubuntu
Bien sûr que si. À ma connaissance, il n'existe pas de système Unix
sans un utilisateur "root".
En revanche, il n'a pas de mot de passe par défaut. On peut facilement
lui en rajouter un.
Bien sûr que si. À ma connaissance, il n'existe pas de système Unix sans un utilisateur "root". En revanche, il n'a pas de mot de passe par défaut. On peut facilement lui en rajouter un.
Michael DENIS
Fabien LE LEZ a écrit :
Par défaut, le root n'est pas activé sous Ubuntu
Bien sûr que si.
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé.". Mais le résultat est sensiblement le même dans le cas présent.
Une des solutions pour la question posée pourrait être d'ajouter dans les machines concernées le droit pour l'utilisateur courant d'exécuter la commande halt. Cela passe, si mes souvenirs sont bons, par la modification du fichier /etc/sudoers.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
Bonnes recherches en tous les cas. ;-)
-- Michaël DENIS
Fabien LE LEZ a écrit :
Par défaut, le root n'est pas activé sous Ubuntu
Bien sûr que si.
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès
direct au compte système (root) est désactivé.". Mais le résultat est
sensiblement le même dans le cas présent.
Une des solutions pour la question posée pourrait être d'ajouter dans
les machines concernées le droit pour l'utilisateur courant d'exécuter
la commande halt. Cela passe, si mes souvenirs sont bons, par la
modification du fichier /etc/sudoers.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur
pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour
l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe
correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé.". Mais le résultat est sensiblement le même dans le cas présent.
Une des solutions pour la question posée pourrait être d'ajouter dans les machines concernées le droit pour l'utilisateur courant d'exécuter la commande halt. Cela passe, si mes souvenirs sont bons, par la modification du fichier /etc/sudoers.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
Bonnes recherches en tous les cas. ;-)
-- Michaël DENIS
olive
Michael DENIS écrivait :
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé.". Mais le résultat est sensiblement le même dans le cas présent.
Voilà. Mais Fabien avait raison, il vaut mieux être précis dans ses formulations. :-)
Une des solutions pour la question posée pourrait être d'ajouter dans les machines concernées le droit pour l'utilisateur courant d'exécuter la commande halt. Cela passe, si mes souvenirs sont bons, par la modification du fichier /etc/sudoers.
C'est bien la conclusion à laquelle j'étais arrivé : ma question concernait la syntaxe de /etc/sudoers (ou /etc/sudousers ?). Je n'ai pas encore eu le temps de me repencher sur le problème.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
Bon, ben j'avais pas tout faux alors.
Bonnes recherches en tous les cas. ;-)
Merci.
-- Olivier
Michael DENIS écrivait :
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès
direct au compte système (root) est désactivé.". Mais le résultat est
sensiblement le même dans le cas présent.
Voilà. Mais Fabien avait raison, il vaut mieux être précis dans ses
formulations. :-)
Une des solutions pour la question posée pourrait être d'ajouter dans
les machines concernées le droit pour l'utilisateur courant d'exécuter
la commande halt. Cela passe, si mes souvenirs sont bons, par la
modification du fichier /etc/sudoers.
C'est bien la conclusion à laquelle j'étais arrivé : ma question
concernait la syntaxe de /etc/sudoers (ou /etc/sudousers ?). Je n'ai pas
encore eu le temps de me repencher sur le problème.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur
pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour
l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe
correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé.". Mais le résultat est sensiblement le même dans le cas présent.
Voilà. Mais Fabien avait raison, il vaut mieux être précis dans ses formulations. :-)
Une des solutions pour la question posée pourrait être d'ajouter dans les machines concernées le droit pour l'utilisateur courant d'exécuter la commande halt. Cela passe, si mes souvenirs sont bons, par la modification du fichier /etc/sudoers.
C'est bien la conclusion à laquelle j'étais arrivé : ma question concernait la syntaxe de /etc/sudoers (ou /etc/sudousers ?). Je n'ai pas encore eu le temps de me repencher sur le problème.
Ensuite (toujours en mode dégrossi), un petit script (que l'utilisateur pourrait lancer par une icone), l'utilisation de ssh et d'une clé pour l'accès (l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé) devrait pouvoir répondre au problème il me semble.
Bon, ben j'avais pas tout faux alors.
Bonnes recherches en tous les cas. ;-)
Merci.
-- Olivier
Fabien LE LEZ
On Mon, 19 Oct 2009 09:42:23 +0200, Michael DENIS :
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé."
Non, pas vraiment. À ma connaissance, la seule différence avec Debian est ce mot de passe absent. L'accès SSH via une clé, par exemple, est tout à fait identique.
l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé
Si, du moins, tu juges utile d'en mettre un. Ce n'est pas obligatoire.
On Mon, 19 Oct 2009 09:42:23 +0200, Michael DENIS
<news-mDEL@DEL2nis.net.invalid>:
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès
direct au compte système (root) est désactivé."
Non, pas vraiment. À ma connaissance, la seule différence avec Debian
est ce mot de passe absent. L'accès SSH via une clé, par exemple, est
tout à fait identique.
l'utilisateur n'aurait qu'à saisir le mot de passe
correspondant à sa clé
Si, du moins, tu juges utile d'en mettre un. Ce n'est pas obligatoire.
On Mon, 19 Oct 2009 09:42:23 +0200, Michael DENIS :
C'est vrai qu'il aurait fallu dire : "Par défaut, sous Ubuntu, l'accès direct au compte système (root) est désactivé."
Non, pas vraiment. À ma connaissance, la seule différence avec Debian est ce mot de passe absent. L'accès SSH via une clé, par exemple, est tout à fait identique.
l'utilisateur n'aurait qu'à saisir le mot de passe correspondant à sa clé
Si, du moins, tu juges utile d'en mettre un. Ce n'est pas obligatoire.
yamo'
Salut,
olive a tapoté, le 15/10/2009 19:51:
Je souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation et la mise en veille mais, j'ai trouvé cette astuce pour les deux derniers cas : <http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Il doit exister une astuce équivalente pour l'arrêt/reboot.
-- Stéphane http://pasdenom.info/fortune
Salut,
olive a tapoté, le 15/10/2009 19:51:
Je
souhaiterais écrire un script qui permette de les éteindre toutes en une
seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation
et la mise en veille mais, j'ai trouvé cette astuce pour les deux
derniers cas :
<http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Il doit exister une astuce équivalente pour l'arrêt/reboot.
Je souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation et la mise en veille mais, j'ai trouvé cette astuce pour les deux derniers cas : <http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Il doit exister une astuce équivalente pour l'arrêt/reboot.
-- Stéphane http://pasdenom.info/fortune
yamo'
Salut,
yamo' a tapoté, le 20/10/2009 10:51:
Je
souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la machine à heure fixe par exemple deux heures après l'heure habituelle de fermeture, histoire de ne pas gêner et d'afficher pendant les deux heures que la machine va s'arrêter d'ici deux heures!
Par contre est ce que ce genre de message s'affiche en dehors d'une console c'est à dire sur gnome?
-- Stéphane http://pasdenom.info/fortune
Salut,
yamo' a tapoté, le 20/10/2009 10:51:
Je
souhaiterais écrire un script qui permette de les éteindre toutes en une
seule opération
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la
machine à heure fixe par exemple deux heures après l'heure habituelle de
fermeture, histoire de ne pas gêner et d'afficher pendant les deux
heures que la machine va s'arrêter d'ici deux heures!
Par contre est ce que ce genre de message s'affiche en dehors d'une
console c'est à dire sur gnome?
souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la machine à heure fixe par exemple deux heures après l'heure habituelle de fermeture, histoire de ne pas gêner et d'afficher pendant les deux heures que la machine va s'arrêter d'ici deux heures!
Par contre est ce que ce genre de message s'affiche en dehors d'une console c'est à dire sur gnome?
-- Stéphane http://pasdenom.info/fortune
Fabien LE LEZ
On Tue, 20 Oct 2009 10:57:51 +0200, yamo' :
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la machine à heure fixe
Ou bien, le hack "su via cron" : un utilisateur normal crée un fichier à un emplacement précis. Une fois par minute, un script (exécuté en root via cron) vérifie la présence de ce fichier ; s'il existe, il le supprime, puis éteint la machine (ou toute autre tâche).
On Tue, 20 Oct 2009 10:57:51 +0200, yamo' <yamo@replyto.invalid>:
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la
machine à heure fixe
Ou bien, le hack "su via cron" : un utilisateur normal crée un fichier
à un emplacement précis. Une fois par minute, un script (exécuté en
root via cron) vérifie la présence de ce fichier ; s'il existe, il le
supprime, puis éteint la machine (ou toute autre tâche).
Sinon, une autre idée est d'utiliser le cron de root et d'éteindre la machine à heure fixe
Ou bien, le hack "su via cron" : un utilisateur normal crée un fichier à un emplacement précis. Une fois par minute, un script (exécuté en root via cron) vérifie la présence de ce fichier ; s'il existe, il le supprime, puis éteint la machine (ou toute autre tâche).
olive
yamo' écrivait :
Je souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation et la mise en veille mais, j'ai trouvé cette astuce pour les deux derniers cas : <http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Merci de te pencher sur la question.
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et pour honorer la réputation qui me précède, j'ai fait le bourrin de première classe : j'ai changé les permissions sur /sbin/halt.
J'ai écrit un petit script qui fait ssh authentifié par clé (sans mot de passe), puis commande 'halt' pour toutes les machines concernées.
Comme le grand méchant public a un accès physique aux machines et donc aux boutons "power" et "reset", et que donc, l'interdiction de rebooter reste toute théorique, je ne vois pas pourquoi je m'emmerderais davantage avec des permissions fines.
Ça me convient dans ma situation précise, mais je ne recommanderai certainement pas de faire ça dans tous les cas. Vous pouvez insérer les leçons de morale ici :
En passant, Gnome propose un script d'extinction (via l'interface graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre la machine. Je trouve ça aberrant quand par la même occasion, la commande 'halt' est verouillée. Si je trouve un moment, je chercherai comment désactiver ce script. Histoire de réserver l'extinction aux plus geeks.
Prochaine étape : WakeOnLan ; j'ai déjà trouvé un bon tuto.
Merci pour votre aide.
-- Olivier
yamo' écrivait :
Je souhaiterais écrire un script qui permette de les éteindre toutes
en une seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation
et la mise en veille mais, j'ai trouvé cette astuce pour les deux
derniers cas :
<http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Merci de te pencher sur la question.
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et
pour honorer la réputation qui me précède, j'ai fait le bourrin de
première classe : j'ai changé les permissions sur /sbin/halt.
J'ai écrit un petit script qui fait ssh authentifié par clé (sans mot de
passe), puis commande 'halt' pour toutes les machines concernées.
Comme le grand méchant public a un accès physique aux machines et donc
aux boutons "power" et "reset", et que donc, l'interdiction de rebooter
reste toute théorique, je ne vois pas pourquoi je m'emmerderais
davantage avec des permissions fines.
Ça me convient dans ma situation précise, mais je ne recommanderai
certainement pas de faire ça dans tous les cas. Vous pouvez insérer les
leçons de morale ici :
En passant, Gnome propose un script d'extinction (via l'interface
graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre
la machine. Je trouve ça aberrant quand par la même occasion, la
commande 'halt' est verouillée. Si je trouve un moment, je chercherai
comment désactiver ce script. Histoire de réserver l'extinction aux plus
geeks.
Prochaine étape : WakeOnLan ; j'ai déjà trouvé un bon tuto.
Je souhaiterais écrire un script qui permette de les éteindre toutes en une seule opération
Pour éteindre en SSH, il faut être root de même que pour l'hibernation et la mise en veille mais, j'ai trouvé cette astuce pour les deux derniers cas : <http://forum.ubuntu-fr.org/viewtopic.php?pid&2595#p262595>
Merci de te pencher sur la question.
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et pour honorer la réputation qui me précède, j'ai fait le bourrin de première classe : j'ai changé les permissions sur /sbin/halt.
J'ai écrit un petit script qui fait ssh authentifié par clé (sans mot de passe), puis commande 'halt' pour toutes les machines concernées.
Comme le grand méchant public a un accès physique aux machines et donc aux boutons "power" et "reset", et que donc, l'interdiction de rebooter reste toute théorique, je ne vois pas pourquoi je m'emmerderais davantage avec des permissions fines.
Ça me convient dans ma situation précise, mais je ne recommanderai certainement pas de faire ça dans tous les cas. Vous pouvez insérer les leçons de morale ici :
En passant, Gnome propose un script d'extinction (via l'interface graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre la machine. Je trouve ça aberrant quand par la même occasion, la commande 'halt' est verouillée. Si je trouve un moment, je chercherai comment désactiver ce script. Histoire de réserver l'extinction aux plus geeks.
Prochaine étape : WakeOnLan ; j'ai déjà trouvé un bon tuto.
Merci pour votre aide.
-- Olivier
yamo'
Salut,
olive a tapoté, le 20/10/2009 20:24:
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et pour honorer la réputation qui me précède, j'ai fait le bourrin de première classe : j'ai changé les permissions sur /sbin/halt.
En même temps sur CentOS 4 on n'a pas besoin d'être root pour lancer reboot pour shutdown ça doit être pareil donc, ce n'est peut-être pas si choquant.
Pour les permissions, je ne suis pas sûr qu'elle restent en place dans le long terme, la solution de Fabien LE LEZ me paraît plus pérenne, pour le code ad-hoc, je suis trop nul en shell.
-- Stéphane http://pasdenom.info/fortune
Salut,
olive a tapoté, le 20/10/2009 20:24:
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et
pour honorer la réputation qui me précède, j'ai fait le bourrin de
première classe : j'ai changé les permissions sur /sbin/halt.
En même temps sur CentOS 4 on n'a pas besoin d'être root pour lancer
reboot pour shutdown ça doit être pareil donc, ce n'est peut-être pas si
choquant.
Pour les permissions, je ne suis pas sûr qu'elle restent en place dans
le long terme, la solution de Fabien LE LEZ me paraît plus pérenne, pour
le code ad-hoc, je suis trop nul en shell.
J'ai résolu le problème et obtenu un script fonctionnel. Pour ça, et pour honorer la réputation qui me précède, j'ai fait le bourrin de première classe : j'ai changé les permissions sur /sbin/halt.
En même temps sur CentOS 4 on n'a pas besoin d'être root pour lancer reboot pour shutdown ça doit être pareil donc, ce n'est peut-être pas si choquant.
Pour les permissions, je ne suis pas sûr qu'elle restent en place dans le long terme, la solution de Fabien LE LEZ me paraît plus pérenne, pour le code ad-hoc, je suis trop nul en shell.
-- Stéphane http://pasdenom.info/fortune
Lucas Levrel
Le 20 octobre 2009, olive a écrit :
En passant, Gnome propose un script d'extinction (via l'interface graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre la machine.
(Je ne sais pas si c'est lié.) L'invite de login X propose aussi dans son menu l'extinction, par défaut c'est sans mot de passe mais configurable(*) pour demander le mot de passe root.
(*) je ne sais pas comment mais je peux me renseigner au besoin.
-- LL
Le 20 octobre 2009, olive a écrit :
En passant, Gnome propose un script d'extinction (via l'interface
graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre
la machine.
(Je ne sais pas si c'est lié.) L'invite de login X propose aussi dans son
menu l'extinction, par défaut c'est sans mot de passe mais configurable(*)
pour demander le mot de passe root.
(*) je ne sais pas comment mais je peux me renseigner au besoin.
En passant, Gnome propose un script d'extinction (via l'interface graphique) qui permet de toute façon à l'utilisateur connecté d'éteindre la machine.
(Je ne sais pas si c'est lié.) L'invite de login X propose aussi dans son menu l'extinction, par défaut c'est sans mot de passe mais configurable(*) pour demander le mot de passe root.
(*) je ne sais pas comment mais je peux me renseigner au besoin.