Shutdown utilisateur

Bonjour,

J’essaye d’autoriser un utilisateur simple à exécuter la commande shutdown, sans qu’il ait à entrer de mot de passe.

Je suis sous Debian Squeeze, et je n’utilise pas sudo.

J’ai ajouté un groupe nommé “shutdowners” :

Ensuite j’ai mis les utilisateurs “root” et “mon_prenom” dans ce groupe :

[code]# adduser root shutdowners

adduser mon_prenom shutdowners[/code]

J’ai cherché où se trouve la commande shutdown :

# which shutdown /sbin/shutdown

Enfin j’ai modifié le groupe du fichier /sbin/shutdown :

[code]# ls -l /sbin/shutdown
-rwxr-xr-x 1 root root 23696 1 janv. 2011 /sbin/shutdown

chgrp shutdowners /sbin/shutdown

ls -l /sbin/shutdown

-rwxr-xr-x 1 root shutdowners 23696 1 janv. 2011 /sbin/shutdown[/code]

Après redémarrage, je ne peux toujours pas lancer la commande shutdown avec un mon utilisateur simple :

$ shutdown -h 5 shutdown: you must be root to do that! Usage: .....

Savez-vous pourquoi ?

ton groupe shutdowner n’a pas les droits root.
Essaie de faire le contraire, c’est à dire de mettre shutdowner dans root, mai il aura alors tout les droits root.
Le plus simple est d’utiliser sudo, il est fait pour ça …

Il n’y a pas besoin d’avoir les droits root pour exécuter un programme normalement, il suffit d’avoir la permission d’exécuter (–x) le fichier. Je cherche juste à comprendre le fonctionnement du truc, la fonctionnalité n’est pas vitale pour moi.

Salut,

/sbin n’est pas dans le path de l’utilisateur mais seulement dans celui de root

Mais tu n’as aucun problème pour exécuter le programme shutdown… Je veux dire, il se lance sans aucun souci. Simplement, ce que ce programme essaye de faire a besoin des droits root, et ça tu pourras changer tous les droits de fichiers que tu veux ça n’aidera pas (sauf setuid, voir ci-dessous).

Deux solutions :

  • la méthode crado (et dangereuse) : chown root:shutdowners, chmod a-rwxs,u+rwxs,g+rx (le programme est en setuid, seuls root et shutdowners peuvent le lancer) ABSOLUMENT DÉCONSEILLÉ : si shutdown n’est pas setuid par défaut c’est qu’il y a une bonne raison ! On ne modifie pas le setuid n’importe comment, les implications sont trop vastes, on préférera passer par une méthode qui est faite pour ça.
  • la bonne méthode : passer par sudo ou super, et faire un alias

Cool ! J’ai compris maintenant, merci ! :023

Donc si je veux exécuter shutdown en utilisateur simple, il faut que j’inspecte toutes les actions que fait shutdown, et que j’autorise ces actions pour le groupe shutdowners. Ce que j’ai un peu la flemme de faire pour le moment. (Je vous l’accorde, sudo est utile dans ce cas).

Non, il fait des appels directement au kernel et tu ne peux pas changer les droits là-dessus. Il faut le lancer avec les droits root pour que ça marche, point barre.

Salut,

Avec ma méthode et yakuake cela donne F12 HALT soit 5 touches :041

Avec ma méthode, ça donne une seule “touche” : appui court sur le bouton d’alimentation, KDE se charge d’éteindre la machine proprement. :smiley:
(et accessoirement, c’est 6 touches pour toi… ne crois pas que tu vas nous faire oublier la touche Entrée :stuck_out_tongue:)