Le Laboratoire Virtuel & Terminal Pratique est en ligne :

Ouvrir le Labo
Volume 2 : Linux, Terminal & Bash Scripting Avancé/Module 1 : Maîtrise du Terminal Linux & Gestion Système

Commandes Linux, Pipelines, Filtres (grep, awk, sed) & Permissions

Labo Virtuel >_

Commandes Linux, Pipelines, Filtres & Permissions POSIX



Dans l'univers de la cybersécurité, le terminal Linux est votre interface principale de travail. La quasi-totalité des serveurs cibles, des pare-feux et des conteneurs s'administrent en ligne de commande.

---

1. La Philosophie des Flux Standard & Pipelines UNIX



Sous UNIX, « tout est fichier », et tout programme lancé dispose automatiquement de trois descripteurs de flux fondamentaux : * Descripteur 0 : Entrée standard (stdin) — flux entrant depuis le clavier ou un pipe. * Descripteur 1 : Sortie standard (stdout) — flux de sortie normale des résultats. * Descripteur 2 : Sortie d'erreur (stderr) — flux des messages d'erreur et alertes.

Redirections :

``bash

Rediriger stdout vers un fichier (écrase le fichier)

commande > resultat.txt

Rediriger stdout en mode ajout (append)

commande >> historique.log

Rediriger stdout ET stderr dans le même fichier

commande > sortie.txt 2>&1

Ignorer totalement les erreurs en les envoyant dans le trou noir /dev/null

find / -name "*.conf" 2>/dev/null
`

Le Pipe (|) : La Chaîne de Traitement

Le tube (|) injecte directement la sortie standard du programme de gauche dans l'entrée standard du programme de droite.

Exemple d'extraction d'adresses IP uniques connectées à un serveur :
`bash netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr `

---

2. Les Outils de Filtrage Essentiels : grep, awk et sed



*
grep (Global Regular Expression Print) : Recherche de motifs textuels ou d'expressions régulières. `bash # Trouver tous les échecs de connexion SSH dans le journal d'authentification grep -i "failed password" /var/log/auth.log ` * awk : Langage complet de traitement par colonnes. Par défaut, awk découpe chaque ligne selon les espaces. `bash # Afficher le nom d'utilisateur ($1) et son shell par défaut ($7) depuis /etc/passwd awk -F: '{print $1, "utilise le shell :", $7}' /etc/passwd ` * sed (Stream Editor) : Édition de flux à la volée (rechercher/remplacer). `bash # Remplacer toutes les occurrences de HTTP par HTTPS dans un fichier de configuration sed -i 's/http:/https:/g' /etc/nginx/sites-available/default `

---

3. Le Modèle de Permissions POSIX & Calcul Octal



Chaque fichier ou répertoire sous Linux possède des droits pour trois entités distinctes : 1. User (u) : Le propriétaire du fichier. 2. Group (g) : Le groupe propriétaire. 3. Others (o) : Tout autre utilisateur du système.

Les droits se décomposent en trois permissions binaires : * Read (r) : Valeur octale 4 (binaire
100). Permet de lire le contenu. * Write (w) : Valeur octale 2 (binaire 010). Permet de modifier ou supprimer. * Execute (x) : Valeur octale 1 (binaire 001). Permet d'exécuter un script ou de traverser un répertoire (cd).

` Droits : r w x r - x r - - Binaire : 1 1 1 1 0 1 1 0 0 Octal : 7 5 4 Total : chmod 754 mon_script.sh `

Les Permissions Spéciales Majeures pour le Pentesteur :

* SUID (Set User ID) — Octal 4000 : Lorsqu'un binaire possède le bit SUID (ex:
-rwsr-xr-x), il s'exécute toujours avec les privilèges de son propriétaire, souvent root, quel que soit l'utilisateur qui le lance ! * SGID (Set Group ID) — Octal 2000 : Exécute avec les privilèges du groupe propriétaire. * Sticky Bit — Octal 1000 : Présent sur /tmp (drwxrwxrwt), il empêche un utilisateur de supprimer le fichier d'un autre utilisateur même dans un dossier partagé en écriture.

Pour trouver tous les binaires SUID sur un serveur Linux lors d'une phase d'élévation de privilèges :
`bash find / -perm -4000 -type f 2>/dev/null ``
Informations
Formatarticle
Durée40 min
StatutEn cours
Laboratoire Virtuel Pratique

Pratiquez cette le?on dans le Terminal Linux et l'ex?cuteur WebAssembly Python en direct.

Ouvrir dans le Labo >_