GREY-X // macOS LAB
MacBook:~ user$ whoami
macOS possède une interface graphique complète, mais son terminal reste un outil extrêmement puissant.
Basé sur Unix, macOS partage de nombreuses commandes avec Linux : ls, cd, cp, mv, grep, find, chmod, ssh, curl, ps et bien d’autres.
Pour l’administration système, le développement ou la cybersécurité, savoir utiliser le terminal permet d’aller beaucoup plus loin que l’interface graphique.
01 // Se déplacer dans le système
Link to heading
Afficher le répertoire courant :
pwd
Lister les fichiers :
ls
Afficher les fichiers cachés :
ls -la
Changer de répertoire :
cd /Users
Revenir au répertoire parent :
cd ..
Revenir dans son dossier personnel :
cd ~
Nettoyer le terminal :
clear
02 // Créer et manipuler des fichiers
Link to heading
Créer un répertoire :
mkdir laboratoire
Créer un fichier :
touch notes.txt
Copier un fichier :
cp notes.txt backup.txt
Déplacer un fichier :
mv backup.txt ~/Documents/
Renommer un fichier :
mv notes.txt notes-old.txt
Supprimer un fichier :
rm notes-old.txt
Supprimer un répertoire :
rm -r laboratoire
⚠️ Contrairement à la corbeille graphique, rm supprime directement les fichiers.
03 // Lire les fichiers
Link to heading
Afficher un fichier :
cat notes.txt
Lire un fichier page par page :
less notes.txt
Afficher le début :
head notes.txt
Afficher les dernières lignes :
tail notes.txt
Suivre un fichier en temps réel :
tail -f application.log
04 // Rechercher
Link to heading
Rechercher un fichier :
find . -name "notes.txt"
Rechercher du texte :
grep "error" application.log
Recherche récursive :
grep -R "password" ./laboratoire/
Trouver un programme :
which python3
Obtenir des informations sur une commande :
man ls
05 // Permissions
Link to heading
Afficher les permissions :
ls -l
Modifier les permissions :
chmod +x script.sh
Afficher le propriétaire :
ls -l script.sh
Changer le propriétaire nécessite généralement des privilèges administrateur :
sudo chown user:staff script.sh
Les permissions Unix sont essentielles pour comprendre la sécurité d’un système macOS.
06 // Identifier le système
Link to heading
Afficher l’utilisateur actuel :
whoami
Afficher les informations système :
uname -a
Afficher la version macOS :
sw_vers
Afficher le nom de la machine :
scutil --get ComputerName
Afficher l’architecture :
uname -m
07 // Les processus
Link to heading
Afficher les processus :
ps aux
Rechercher un processus :
ps aux | grep Safari
Surveiller les processus :
top
Rechercher le PID d’un processus :
pgrep Safari
Arrêter un processus :
kill PID
Forcer l’arrêt :
kill -9 PID
08 // Analyser le réseau
Link to heading
Afficher les interfaces réseau :
ifconfig
Afficher les interfaces avec leurs adresses :
ifconfig en0
Afficher la route par défaut :
route -n get default
Tester la connectivité :
ping 8.8.8.8
Résoudre un nom DNS :
nslookup example.com
Ou :
dig example.com
Afficher les connexions réseau :
netstat -an
09 // Identifier les ports et services
Link to heading
Pour rechercher les sockets réseau utilisés par les processus :
lsof -i
Afficher les connexions TCP :
lsof -iTCP -sTCP:ESTABLISHED
Rechercher un port particulier :
lsof -i :443
Cette commande permet notamment d’associer un port à un processus.
Par exemple :
PORT
↓
PROCESS
↓
PID
C’est un réflexe très utile lors d’une analyse système.
10 // DNS et configuration réseau
Link to heading
Afficher les informations DNS :
scutil --dns
Afficher les interfaces réseau :
networksetup -listallhardwareports
Afficher la configuration d’une interface :
networksetup -getinfo Wi-Fi
Afficher les réseaux Wi-Fi disponibles :
networksetup -listpreferredwirelessnetworks en0
Selon la version de macOS et l’interface utilisée, le nom de l’interface Wi-Fi peut être différent.
11 // Gestion des utilisateurs
Link to heading
Afficher les informations de l’utilisateur courant :
id
Afficher les utilisateurs locaux :
dscl . list /Users
Afficher les groupes :
dscl . list /Groups
Exécuter une commande avec les privilèges administrateur :
sudo commande
12 // SSH
Link to heading
macOS permet également d’utiliser SSH directement depuis le terminal.
Se connecter à une machine distante :
Copier un fichier vers une machine distante :
scp fichier.txt [email protected]:/tmp/
Récupérer un fichier :
scp [email protected]:/tmp/fichier.txt .
SSH est particulièrement utile pour administrer des serveurs et des environnements de laboratoire.
13 // Télécharger et tester avec curl
Link to heading
curl est disponible nativement sur macOS.
Tester une URL :
curl https://example.com
Afficher uniquement les en-têtes HTTP :
curl -I https://example.com
Afficher les informations détaillées de la connexion :
curl -v https://example.com
curl est très utile pour comprendre les communications HTTP et tester des services dans un environnement autorisé.
14 // Gestion des logiciels avec Homebrew
Link to heading
Sur de nombreux Mac utilisés pour le développement, Homebrew est un gestionnaire de paquets très pratique.
Rechercher un paquet :
brew search nmap
Installer un paquet :
brew install nmap
Mettre à jour Homebrew :
brew update
Mettre à jour les logiciels :
brew upgrade
15 // Les commandes à retenir
Link to heading
Pour commencer, maîtrisez surtout :
pwd → répertoire courant
ls → fichiers
cd → navigation
mkdir → créer un dossier
touch → créer un fichier
cp → copier
mv → déplacer / renommer
rm → supprimer
cat → afficher
less → lire
grep → rechercher
find → rechercher des fichiers
man → documentation
whoami → utilisateur
uname → informations système
sw_vers → version macOS
ps → processus
top → surveillance
kill → arrêter un processus
ifconfig → interfaces réseau
ping → connectivité
route → routage
netstat → connexions
lsof → fichiers / ports / processus
dig → DNS
ssh → connexion distante
scp → transfert de fichiers
curl → HTTP / réseau
sudo → privilèges administrateur
16 // macOS, Unix et cybersécurité
Link to heading
L’un des avantages de macOS pour quelqu’un qui travaille avec plusieurs environnements est la proximité avec l’écosystème Unix.
Une partie importante des commandes utilisées sous Linux existe également sous macOS.
On retrouve donc rapidement une logique commune :
Linux
│
├── ls
├── grep
├── find
├── ssh
├── curl
└── chmod
│
▼
macOS
Mais macOS possède également ses propres outils et mécanismes d’administration.
L’objectif n’est donc pas de mémoriser une liste de commandes.
Il faut comprendre ce que l’on cherche à observer et choisir ensuite la commande adaptée.
┌──────────────────────────────────────┐
│ GREY-X │
│ │
│ macOS → UNIX → NETWORK → SECURITY │
│ │
│ MASTER THE TERMINAL │
└──────────────────────────────────────┘
Le terminal permet de voir ce que l’interface graphique ne montre pas toujours.