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
#
Afficher le répertoire courant :
pwdLister les fichiers :
lsAfficher les fichiers cachés :
ls -laChanger de répertoire :
cd /UsersRevenir au répertoire parent :
cd ..Revenir dans son dossier personnel :
cd ~Nettoyer le terminal :
clear02 // Créer et manipuler des fichiers
#
Créer un répertoire :
mkdir laboratoireCréer un fichier :
touch notes.txtCopier un fichier :
cp notes.txt backup.txtDéplacer un fichier :
mv backup.txt ~/Documents/Renommer un fichier :
mv notes.txt notes-old.txtSupprimer un fichier :
rm notes-old.txtSupprimer un répertoire :
rm -r laboratoire⚠️ Contrairement à la corbeille graphique, rm supprime directement les fichiers.
03 // Lire les fichiers
#
Afficher un fichier :
cat notes.txtLire un fichier page par page :
less notes.txtAfficher le début :
head notes.txtAfficher les dernières lignes :
tail notes.txtSuivre un fichier en temps réel :
tail -f application.log04 // Rechercher
#
Rechercher un fichier :
find . -name "notes.txt"Rechercher du texte :
grep "error" application.logRecherche récursive :
grep -R "password" ./laboratoire/Trouver un programme :
which python3Obtenir des informations sur une commande :
man ls05 // Permissions
#
Afficher les permissions :
ls -lModifier les permissions :
chmod +x script.shAfficher le propriétaire :
ls -l script.shChanger le propriétaire nécessite généralement des privilèges administrateur :
sudo chown user:staff script.shLes permissions Unix sont essentielles pour comprendre la sécurité d’un système macOS.
06 // Identifier le système
#
Afficher l’utilisateur actuel :
whoamiAfficher les informations système :
uname -aAfficher la version macOS :
sw_versAfficher le nom de la machine :
scutil --get ComputerNameAfficher l’architecture :
uname -m07 // Les processus
#
Afficher les processus :
ps auxRechercher un processus :
ps aux | grep SafariSurveiller les processus :
topRechercher le PID d’un processus :
pgrep SafariArrêter un processus :
kill PIDForcer l’arrêt :
kill -9 PID08 // Analyser le réseau
#
Afficher les interfaces réseau :
ifconfigAfficher les interfaces avec leurs adresses :
ifconfig en0Afficher la route par défaut :
route -n get defaultTester la connectivité :
ping 8.8.8.8Résoudre un nom DNS :
nslookup example.comOu :
dig example.comAfficher les connexions réseau :
netstat -an09 // Identifier les ports et services
#
Pour rechercher les sockets réseau utilisés par les processus :
lsof -iAfficher les connexions TCP :
lsof -iTCP -sTCP:ESTABLISHEDRechercher un port particulier :
lsof -i :443Cette commande permet notamment d’associer un port à un processus.
Par exemple :
PORT
↓
PROCESS
↓
PIDC’est un réflexe très utile lors d’une analyse système.
10 // DNS et configuration réseau
#
Afficher les informations DNS :
scutil --dnsAfficher les interfaces réseau :
networksetup -listallhardwareportsAfficher la configuration d’une interface :
networksetup -getinfo Wi-FiAfficher les réseaux Wi-Fi disponibles :
networksetup -listpreferredwirelessnetworks en0Selon la version de macOS et l’interface utilisée, le nom de l’interface Wi-Fi peut être différent.
11 // Gestion des utilisateurs
#
Afficher les informations de l’utilisateur courant :
idAfficher les utilisateurs locaux :
dscl . list /UsersAfficher les groupes :
dscl . list /GroupsExécuter une commande avec les privilèges administrateur :
sudo commande12 // SSH
#
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
#
curl est disponible nativement sur macOS.
Tester une URL :
curl https://example.comAfficher uniquement les en-têtes HTTP :
curl -I https://example.comAfficher les informations détaillées de la connexion :
curl -v https://example.comcurl est très utile pour comprendre les communications HTTP et tester des services dans un environnement autorisé.
14 // Gestion des logiciels avec Homebrew
#
Sur de nombreux Mac utilisés pour le développement, Homebrew est un gestionnaire de paquets très pratique.
Rechercher un paquet :
brew search nmapInstaller un paquet :
brew install nmapMettre à jour Homebrew :
brew updateMettre à jour les logiciels :
brew upgrade15 // Les commandes à retenir
#
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 administrateur16 // macOS, Unix et cybersécurité
#
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
│
▼
macOSMais 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.