J'utilise Ubuntu 11.04. Je veux exécuter un script qui vérifie un processus en cours et arrête le système lorsque ce processus se termine. Pour ce faire, l'utilisateur requiert un accès d'arrêt afin que le script puisse être exécuté sans avoir besoin d'un mot de passe.
J'ai fait référence à cette page et ajouté le texte dans mon fichier sudoers. Cependant, il me demande toujours le mot de passe chaque fois que j'exécute sudo shutdown -h now
. De plus, je reçois une erreur indiquant que les privilèges root sont requis lorsque j'exécute l'arrêt sans sudo.
Mon fichier sudoers ressemble à ceci.
# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /sbin/shutdown
# User privilege specification
root ALL=(ALL:ALL) ALL
myusername ALL = NOPASSWD: SHUTDOWN
Comment puis-je autoriser un utilisateur à exécuter la commande d'arrêt sans avoir à saisir manuellement le mot de passe?
Merci.
sudoers
fichier réel et entier , s'il vous plaît?Réponses:
Vous pouvez arrêter ou redémarrer en utilisant HAL ou ConsoleKit qui ne vous demandera pas d'entrer un nom d'utilisateur / mot de passe:
HAL (anciennes versions d'Ubuntu):
ConsoleKit (nouvelles versions d'Ubuntu, testées sur Ubuntu 11.04):
la source
Je l'ai fait comme dans cette réponse, fonctionne parfaitement pour moi. Peut-être que votre approche manque la
visudo
partie?Ouvrez une ligne de commande et tapez:
Dans le fichier qui s'ouvre, ajoutez la ligne suivante à la fin:
Quittez ensuite l'éditeur et sécurisez-le (CTRL + x).
Vous pouvez maintenant arrêter votre ordinateur à partir de la ligne de commande, par exemple après avoir téléchargé quelque chose:
la source
Il y a quelque temps, je l'ai fait en définissant le suid (Set User ID). Cela fait que le programme s'exécute en tant que propriétaire du fichier et non en tant qu'utilisateur qui l'exécute. Étant donné que l'arrêt appartient à root, cela devrait vous permettre d'arrêter sans sudo.
Il y a cependant des implications en matière de sécurité, car n'importe qui peut alors exécuter l'arrêt. http://en.wikipedia.org/wiki/Setuid
la source
/etc
.sudo
est la bonne façon, à mon avis, mais malheureusement, l'utilisateur ne donne pas la chance de voir sonsudoers
fichier et ce qui ne va pas.Il semble que vous souhaitiez exécuter le script lui-même en tant que root. Si vous souhaitez exécuter un script qui attend que quelque chose se termine, puis éteindre votre ordinateur, vous devez simplement exécuter le script avec sudo. Cela vous demandera votre mot de passe lorsque vous exécuterez le script, mais le script lui-même est alors libre d'arrêter le système sans autre intervention.
la source