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.