Pas Tout A Fait

Aller au contenu | Aller au menu | Aller à la recherche

Eteindre son PC à heure fixe sans mot de passe

Dernière mise à jour le 30 octobre 2011

Il est souvent bien pratique de laisser tourner sa machine le soir après être allez au lit, histoire de finir un téléchargement un peu long par exemple. Ce qui est encore plus pratique, c'est de l'éteindre automatiquement à une heure précise ou après quelques heures.

shut-down.jpg

En plus comme ça, personne ne râle parce que le PC a tourné toute la nuit !


Petit rappel avant de commencer

Voici les commandes pour éteindre ou redémarrer une machine :

  • shutdown permet avec le paramètre -h de passer au runlevel 0 (arrêt) ou avec le paramètre -r de passer au runlevel 6 (redémarrer). shutdown travaille proprement en envoyant un signal SIGTERM à l'ensemble des processus, en prévenant les utilisateurs de l'arrêt/redémarrage imminent du système, et enfin en bloquant la commande login, le tout avant d'entamer l'arrêt effectif du système.
  • halt est une commande qui appelle un shutdown -h si le système n'est pas déjà au runlevel 0 ou 6.
  • reboot est une commande qui appelle un shutdown -r si le système n'est pas déjà au runlevel 0 ou 6.
  • poweroff est un simple lien symbolique dirigeant vers la commande halt.
  • init 0 est une commande similaire à shutdown -h, mais qui ne bloque pas la commande login et ne prévient par les autres utilisateurs du système.

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

Matthieu Patout

Auteur: Matthieu Patout

Restez au courant de l'actualité et abonnez-vous au Flux RSS

flint flint ·  06 mai 2010, 21:59

Salut,
J'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

Matthieu Patout Matthieu Patout ·  10 mai 2010, 10:44

@flint : Salut,

Tu peux retirer le SUID avec par exemple la commande :

sudo chmod u-s /sbin/shutdown

ou aussi :

sudo chmod 0755 /sbin/shutdown

Bbert Bbert ·  29 novembre 2010, 14:58

Moi j'aurais dis (d'après le titre) qu'on pouvais faire ça avec :
- un passage en root $ su
- une petite ligne en crontab avec le shutdown : $ crontab -e ou encore vi /etc/crontab.
A heure fixe, de manière régulière et sans rentrer de mot de passe ! Les autres solutions sont tout de même intéressantes

En tout cas un blog avec des explications au top et des articles intéressant ça fait toujours plaisir. merci

Ajouter un commentaire Fil des commentaires de ce billet

aucune annexe



Voir Aussi

android.jpg

Accéder aux fichiers d'une tablette Archos 101 G9 depuis Debian Squeeze

Android 3 Honeycomb utilise le protocole MTP (Media Transfer Protocol) pour gérer les connexions à...

Lire la suite

googleplus1.jpg

Améliorer la vitesse de chargement et valider le bouton Google +1

Le bouton Google +1 s'affiche partout sur le web depuis quelques semaines. En plus de permettre la...

Lire la suite