10 Configurations Sudoers utiles pour définir «sudo» dans Linux

10 Configurations Sudoers utiles pour définir «sudo» dans Linux

Dans Linux et d'autres systèmes d'exploitation de type Unix, seuls le racine L'utilisateur peut exécuter toutes les commandes et effectuer certaines opérations critiques sur le système telles que l'installation et la mise à jour, supprimer les packages, créer des utilisateurs et des groupes, modifier des fichiers de configuration système importants, etc.

Cependant, un administrateur système qui assume le rôle de l'utilisateur racine peut autoriser d'autres utilisateurs système normaux à l'aide de la commande sudo et quelques configurations pour exécuter certaines commandes ainsi que pour effectuer un certain nombre d'opérations de système vitales, y compris celles mentionnées ci-dessus.

Alternativement, l'administrateur système peut partager le mot de passe de l'utilisateur racine (qui n'est pas une méthode recommandée) afin que les utilisateurs système normaux aient accès au compte d'utilisateur racine via su commande.

Sudo Permet à un utilisateur autorisé d'exécuter une commande en tant que root (ou un autre utilisateur), comme spécifié par la politique de sécurité:

  1. Il lit et parses / etc / sudoers, recherche l'utilisateur invoquant et ses autorisations,
  2. puis invite l'utilisateur invoquant un mot de passe (normalement le mot de passe de l'utilisateur, mais il peut également être le mot de passe de l'utilisateur cible. Ou il peut être ignoré avec la balise NOPASSWD),
  3. Après cela, Sudo crée un processus d'enfant dans lequel il appelle setuid () Pour passer à l'utilisateur cible
  4. Ensuite, il exécute un shell ou la commande donnée comme arguments dans le processus de l'enfant ci-dessus.

Ci-dessous, dix / etc / sudoers Configurations de fichiers pour modifier le comportement de Sudo commande en utilisant Par défaut entrées.

$ sudo chat / etc / sudoers 
/ etc / fichier sudoers
# # Ce fichier doit être modifié avec la commande 'Visudo' en tant que racine. # # Veuillez envisager d'ajouter du contenu local dans / etc / sudoers.d / au lieu de modifier directement ce fichier. # # Voir la page de l'homme pour plus de détails sur la façon d'écrire un fichier sudoers. # Defaults Env_Reset defaults mail_badpass defaults secure_path = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin" defaults logfile = "/ var / log / sudo / sudo.log "par défaut Lecture =" Always "par défaut Badpass_Message =" Le mot de passe est mauvais, veuillez réessayer "par défaut Passwd_Tries = 5 Par défaut Insults Par défaut LOG_INPUT, LOG_Output 

Types d'entrées par défaut

Paramètre par défaut, paramètre_list #Affecte tous les utilisateurs sur n'importe quel hôte [par e-mail protégé] _List Paramètre, paramètre_list #Affects tous les utilisateurs sur un hôte spécifique par défaut: paramètre user_list, paramètre_list #Affits un utilisateur spécifique par défaut!Paramètre CMND_LIST, paramètre_list #Affects une commande par défaut spécifique> Paramètre runas_list, paramètre_list #Affects Les commandes étant exécutées en tant qu'utilisateur spécifique 

Pour la portée de ce guide, nous allons zéro au premier type de Par défaut Dans les formes ci-dessous. Les paramètres peuvent être des drapeaux, des valeurs entières, des chaînes ou des listes.

Vous devez noter que les drapeaux sont implicitement booléens et peuvent être désactivés en utilisant le '!' l'opérateur et les listes ont deux opérateurs d'affectation supplémentaires, += (ajouter à la liste) et -= (retirer de la liste).

Paramètre par défaut ou paramètre par défaut Paramètre = valeur ou paramètre par défaut - = valeur Paramètre par défaut + = valeur ou par défaut !paramètre 

1. Définir un chemin sécurisé

Ceci est le chemin utilisé pour chaque commande exécutée avec sudo, il a deux importances:

  1. Utilisé lorsqu'un administrateur système ne fait pas confiance aux utilisateurs de Sudo pour avoir une variable d'environnement de chemin sécurisé
  2. Pour séparer le «chemin racine» et le «chemin utilisateur», seuls les utilisateurs définis par exonér_groupe ne sont pas affectés par ce paramètre.

Pour le définir, ajoutez la ligne:

Defaults Secure_Path = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / snap / bin" 

2. Activer Sudo sur la session de connexion de l'utilisateur TTY

Pour permettre à Sudo d'être invoqué d'un réel tty mais pas par des méthodes telles que cron ou cgi-bin scripts, ajoutez la ligne:

DefaultSivetty 

3. Exécuter la commande sudo en utilisant un pty

À quelques reprises, les attaquants peuvent exécuter un programme malveillant (comme un virus ou un logiciel malveillant) en utilisant Sudo, qui ferait à nouveau un processus de fond qui reste sur le périphérique de terminal de l'utilisateur même lorsque le programme principal a terminé.

Pour éviter un tel scénario, vous pouvez configurer Sudo pour exécuter d'autres commandes uniquement à partir d'un pSuedo-pty en utilisant le use_pty Paramètre, que la journalisation des E / S soit activée ou non comme suit:

Par défaut use_pty 

4. Créer un fichier journal sudo

Par défaut, Sudo se connecte via Syslog (3). Cependant, pour spécifier un fichier journal personnalisé, utilisez le paramètre Logfile comme tel:

Par défaut logfile = "/ var / log / sudo.enregistrer" 

Pour enregistrer le nom d'hôte et l'année à quatre chiffres dans le fichier journal personnalisé, utilisez log_host et log_year Paramètres respectivement comme suit:

Par défaut log_host, log_year, logfile = "/ var / log / sudo.enregistrer" 

Vous trouverez ci-dessous un exemple de fichier journal sudo personnalisé:

Créer un fichier journal SUDO personnalisé

5. Journal de la commande Sudo Entrée / sortie

Le log_input et log_output Les paramètres permettent à Sudo d'exécuter une commande dans Pseudo-Tty et de journaliser toute l'entrée de l'utilisateur et toutes les sorties envoyées à l'écran réceptivement.

Le répertoire de journal d'E / S par défaut est / var / log / sudo-io, Et s'il y a un numéro de séquence de session, il est stocké dans ce répertoire. Vous pouvez spécifier un répertoire personnalisé via le iolog_dir paramètre.

Par défaut log_input, log_output 

Il y a des séquences d'évasion soutenues telles que % seq qui s'étend à un numéro de séquence de base-36 augmentant monotone, tel que 000001, où chaque deux chiffres sont utilisés pour former un nouveau répertoire, E.g. 00/00/01 Comme dans l'exemple ci-dessous:

$ cd / var / log / sudo-io / $ ls $ cd 00/00/01 $ ls $ Cat journal 
Sortie d'entrée de log sudo

Vous pouvez afficher le reste des fichiers de ce répertoire à l'aide de la commande CAT.

6. Conférences utilisateurs sudo

Pour donner des conférences aux utilisateurs de Sudo sur l'utilisation du mot de passe sur le système, utilisez le conférence Paramètre comme ci-dessous.

Il a 3 valeurs possibles:

  1. Toujours - en train de donner des conférences à un utilisateur.
  2. Une fois - donne une conférence à un utilisateur la première fois qu'il exécute la commande sudo (ceci est utilisé lorsqu'aucune valeur n'est spécifiée)
  3. Jamais - ne donnez jamais de conférence à l'utilisateur.
 Par défaut Lecture = "Always" 

De plus, vous pouvez définir un fichier de conférence personnalisé avec le conférences_file Paramètre, saisissez le message approprié dans le fichier:

Par défaut Lecture_File = "/ Path / To / File" 
Conférences utilisateurs sudo

7. Afficher un message personnalisé lorsque vous entrez un mauvais mot de passe sudo

Lorsqu'un utilisateur entre dans un mauvais mot de passe, un certain message s'affiche sur la ligne de commande. Le message par défaut est «Désolé réessayez», Vous pouvez modifier le message à l'aide du badpass_message Paramètre comme suit:

Par défaut Badpass_Message = "Le mot de passe est mauvais, veuillez réessayer" 

8. Augmenter le mot de passe sudo essaie la limite

Le paramètre passwd_tries est utilisé pour spécifier le nombre de fois qu'un utilisateur peut essayer de saisir un mot de passe.

La valeur par défaut est 3:

Par défaut Passwd_tries = 5 
Augmenter les tentatives de mot de passe sudo

Pour définir un délai d'expiration du mot de passe (par défaut est de 5 minutes) en utilisant passwd_timeout Paramètre, ajoutez la ligne ci-dessous:

Par défaut Passwd_timeout = 2 

9. Laissez sudo vous insulter lorsque vous entrez un mauvais mot de passe

Dans le cas où un utilisateur tape un mauvais mot de passe, Sudo affichera les insultes sur le terminal avec le paramètre Insults. Cela éteindra automatiquement le badpass_message paramètre.

Insultes par défaut 
Allons-nous vous insulter lorsque vous entrez un mauvais mot de passe

En savoir plus: Laissez Sudo vous insulter lorsque vous entrez un mot de passe incorrect

dix. En savoir plus de configurations sudo

De plus, vous pouvez en savoir plus Sudo Configurations de commande par lecture: différence entre su et sudo et comment configurer Sudo dans Linux.

C'est ça! Vous pouvez partager d'autres configurations ou astuces de commande sudo utiles avec les utilisateurs de Linux via la section des commentaires ci-dessous.