
En plus comme ça, personne ne râle parce que le PC a tourné toute la nuit !
Éteindre son PC...
Il faut bien commencer par le commencement !
Sous GNU/Linux et Ubuntu en particulier c'est très simple à faire, il suffit de cliquer sur le bouton qui va bien dans le menu. La commande qui est appelé par ce clic et qui éteint le PC est shutdown :
shutdown -h now
En ligne de commande, seul l'utilisateur root a le droit d'utiliser la commande shutdown, il faut donc sous Ubuntu absolument utiliser sudo pour avoir le droit d'éteindre la machine :
sudo shutdown -h now
Le problème ici c'est qu'il faut rentrer son mot de passe pour valider la commande, et forcement, quand on est dans son lit, qui plus est en train de dormir, c'est pas toujours facile à gérer... Mais chaque chose en son temps, commençons par éteindre le PC quand on le décide.
...au bon moment...
La commande shutdown a plus d'un tour dans son sac !
Par exemple :
sudo shutdown -h 60
permet de provoquer l'extinction de la machine dans 60 minutes. On peut à la place de ce 60 spécifier n'importe quel nombre de minutes.
Mais on peut aussi préciser une heure d'extinction :
sudo shutdown -h 23:45
Là le PC s'éteindra la prochaine fois que l'horloge indiquera 23h45.
Si pour une raison ou pour une autre vous voulez annuler l'extinction, la commande suivante est là pour ça :
sudo shutdown -c
Et comme toujours, tous les détails sont dans la page de manuel :
man shutdown
Voilà donc comment éteindre la machine au bon moment sans avoir à rester devant.
...sans devoir rentrer son mot de passe
Maintenant que l'on sait programmer l'extinction de son PC quand on veut, il faut se tourner vers le deuxième problème, ne pas avoir à rentrer son mot de passe lors de l'exécution de la commande.
Il y a deux méthodes pour réaliser ça.
1) Utiliser la propriété suid pour /sbin/shutdown
Comme nous le dit WikiPédia :
« Quand un fichier exécutable est propriété de l'utilisateur root, et est rendu suid, tout processus exécutant ce fichier peut effectuer ses tâches avec les permissions associées au root »
En ajoutant la propriété "suid" à /sbin/shutdown, on va pouvoir lancer cette commande comme si nous étions l'utilisateur root. Et donner la propriété "suid" à une fichier est très simple :
sudo chmod u+s /sbin/shutdown
Et c'est tout... Plus besoin d'utiliser sudo pour lancer la commande shutdown maintenant. C'est une solution radicale et terriblement efficace, mais peu sécurisée...
2) Modifier les droits via sudo
Il est possible de se tourner vers sudo, et d'affiner les permissions du fichier de configuration /etc/sudoers. Attention, ce fichier ne se modifie pas en l'éditant directement avec vi, nano ou emacs, mais en utilisant une commande dédiée, visudo, lancée par l'utilisateur root :
sudo visudo
visudo ouvre alors le fichier /etc/sudoers. Il suffit maintenant d'ajouter la ligne suivante dans ce fichier :
mpatout ALL = NOPASSWD: /sbin/shutdown
Elle donne le droit à l'utilisateur nommé "mpatout" d'exécuter la commande /sbin/shutdown sans avoir à renter de mot de passe. Il faut par contre toujours passer par sudo pour lancer la commande, contrairement à la solution passant par la propriété "suid".
Si plusieurs personnes utilisent le PC, il peut être plus intéressant d'accorder ce droit non pas à chaque utilisateur, mais à un groupe, et d'incorporer à ce groupe les utilisateurs du système. Par exemple pour un groupe nommé "poweruser" :
%poweruser ALL = NOPASSWD: /sbin/shutdown
Ainsi, tous les membres du groupes "poweruser" pourront utiliser la commande /sbin/shutdown sans avoir à rentrer un mot de passe. La classe quoi ! :-)





Commentaires
Salut,
flintJ'ai fait "sudo chmod u+s /sbin/shutdown"
"terriblement efficace, mais peu sécurisée..."
Quelle est la commande à taper pour revenir en arrière stp?
Merci
@flint : Salut,
Tu peux retirer le SUID avec par exemple la commande :
sudo chmod u-s /sbin/shutdownou aussi :
Matthieu Patoutsudo chmod 0755 /sbin/shutdown