Skip to content

Sudoers Builder

Generateur de regles sudoers avec validation de syntaxe.

Configuration de la regle

ALL = tous les hotes
:
Utilisateur : Groupe (ex: root:wheel)
Une commande par ligne ou separees par virgules

Presets courants

Regle generee

admin ALL=(ALL) ALL
Syntaxe valide

Fichier complet

# /etc/sudoers.d/custom-rules
# Genere par ShellBook Sudoers Builder

admin ALL=(ALL) ALL

Commandes d'installation

# Creer le fichier (TOUJOURS utiliser visudo!)
sudo visudo -f /etc/sudoers.d/custom-rules

# Ou via echo (risque)
echo 'admin ALL=(ALL) ALL' | sudo tee /etc/sudoers.d/custom-rules
sudo chmod 440 /etc/sudoers.d/custom-rules

# Verifier la syntaxe
sudo visudo -c -f /etc/sudoers.d/custom-rules

Generateur d'Alias

User_Alias ADMINS = user1, user2, user3

Reference Syntaxe

Element Description Exemples
ALL Wildcard universel Tous les hotes, users, commandes
%groupe Groupe systeme %wheel, %sudo, %admin
! Negation ALL, !/bin/su
NOPASSWD: Sans mot de passe NOPASSWD: /usr/bin/apt
sha256: Verification hash sha256:abc123... /path/cmd

Bonnes pratiques sudoers

Toujours utiliser visudo

Ne jamais editer /etc/sudoers directement. Utiliser visudo qui valide la syntaxe avant de sauvegarder.

Structure recommandee

/etc/sudoers           # Fichier principal (ne pas modifier)
/etc/sudoers.d/        # Fichiers supplementaires
  ├── 10-admins        # Regles admin
  ├── 20-developers    # Regles dev
  ├── 30-services      # Comptes de service
  └── 90-monitoring    # Monitoring

Exemples courants

# Admin complet
admin ALL=(ALL:ALL) ALL

# Groupe wheel sans mot de passe
%wheel ALL=(ALL:ALL) NOPASSWD: ALL

# Commandes specifiques
deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart myapp

# Exclusion de commandes dangereuses
operator ALL=(ALL) ALL, !/bin/su, !/bin/bash, !/usr/bin/passwd root

# Avec logging
auditor ALL=(ALL) LOG_INPUT: LOG_OUTPUT: ALL

Securite

Pratique Recommandation
NOPASSWD Limiter aux commandes specifiques
ALL Eviter sauf pour admins
Wildcards Attention aux injections de commandes
Chemins Toujours utiliser des chemins absolus
Logging Activer LOG_INPUT/LOG_OUTPUT pour audit