shut-down.jpg

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 ! :-)

  • Dernière modification le : 21 janvier 2010 à 10:50