web-dev-qa-db-fra.com

Afficher un message en demandant un mot de passe Sudo

J'avais déjà vu un utilisateur Ubuntu utiliser une commande Sudo dans un terminal. Avant de demander un mot de passe, le message suivant a été affiché:

user1@linuxbox:~$ Sudo apt-get update
Please do not run this command if you have not been granted Sudo rights.
[Sudo] password for user1:

Je souhaite afficher un message similaire sur mon système lorsqu'un utilisateur exécute une commande Sudo. Que dois-je modifier/modifier pour afficher un message similaire lorsqu'un utilisateur exécute une commande Sudo sur le terminal?

4
John Smith

Vérifiez si votre Sudo prend en charge l’option lecture_file

man sudoers | grep lecture_file

Voici ce que dit l'homme sudoers dans mon cas:

lecture_file Chemin d'accès à un fichier contenant une autre conférence Sudo qui sera utilisée à la place de la conférence standard si le fichier nommé existe. Sudo utilise par défaut une lecture intégrée.

Ainsi, pour changer le texte, ajoutez-le à un fichier, par exemple /etc/sudoers.lecture et pointez-le à partir de /etc/sudoers:

Defaults        lecture_file = /etc/sudoers.lecture

Pour afficher la conférence sur chaque invocation de Sudo, ajoutez également le texte suivant à /etc/sudoers:

Defaults        lecture = always
10
storm

Ecrivez un "script wrapper" autour de la commande Sudo.

En gros, vous remplacez la commande standard Sudo par un script contenant une fonction appelée Sudo(). Cette fonction fait d'abord écho à votre message personnalisé, puis appelle la commande standard Sudo /usr/bin/Sudo.

Ce script serait quelque chose comme:

#!/bin/bash
Sudo(){
        echo "This is a custom message."
        /usr/bin/Sudo "$@"
}

Vous devez vous assurer que le script est dans le chemin de l'utilisateur. Ici (sous "Assembler tous les éléments") est une bonne explication de la façon de procéder. Google "script wrapper" pour d'autres exemples.

2
Jos