Les fondamentaux de Linux
Rédigé le 14/03/2024En cours de rédactionCommandes de base
Afficher le répertoire actuel
pwd
Se déplacer dans le répertoire "Desktop"
cd /Desktop
# Retourner au répertoire précédent
cd ../
Afficher le contenu d'un répertoire
ls
# Afficher les détails avec les permissions
ls -l
# Afficher les fichiers cachés
ls -a
Créer un nouveau répertoire
mkdir nom_du_répertoire
Créer un fichier vide ou mettre à jour la date de modification d'un fichier existant
touch nom_du_fichier
Copier un fichier ou un répertoire
cp nom_du_fichier destination
Déplacer ou renommer des fichiers et/ou répertoires
mv fichier_source fichier_destination
Supprimer des fichiers ou répertoires
rm nom_du_fichier
rm -r nom_du_répertorie # Supprime récursivement
Afficher le contenu d'un fichier
cat nom_du_fichier
Entrer dans l'éditeur de fichier
nano nom_du_fichier
Afficher le mode d'emploi d'une commande
man commande
Afficher le nom d'utilisateur sur lequel nous sommes connecté
whoami
Télécharger un fichier
wget https://rootdev.fr/cybersecurite/recon/assets/whatweb-resultats.txt
Installer un package
dpkg -i package.deb
Pilotes cartes Wifi
Recherche de fichiers
┌─[root@parrot]─[~/Desktop]
└──╼ ls
Images Répertoire1 fichier.txt
Ci-dessus, on peut lire les différents noms des répertoires présents dans Desktop. Pour éviter de chercher dans chaque répertoire le fichier fichier2.txt, la commande find
s'offre à nous.
Dans le cas où l'on connaît le nom du fichier :
┌─[root@parrot]─[~/Desktop]
└──╼ find -name fichier2.txt
./Répertoire1/fichier2.txt
Ici, le fichier2.txt a été trouvé dans ./Répertoire1/fichier2.txt.
Dans le cas où l'on ne connaît pas son nom, ou que l'on veut rechercher chaque fichier portant l'extension .txt
┌─[root@parrot]─[~/Desktop]
└──╼ find -name *.txt
./Répertoire1/fichier2.txt
Ici, un fichier fichier2.txt a été trouvé car il porte l'extension .txt.
Rechercher dans le contenu d'un fichier
Dans le cas des logs de connexion d'un serveur web :
┌─[root@parrot]─[~/]
└──╼ wc -l access.log
244 access.log
On peut lire qu'il y a 244 entrées. Si on cherche une valeur en particulier, cela peut se montrer long avec la commande cat
. Pour cela, on va utiliser la commande grep
:
┌─[root@parrot]─[~/]
└──╼ grep "81.143.211.90" access.log
81.143.211.90 - - [25/Mar/2021:11:17 + 0000] "GET / HTTP/1.1" 200 417 "-" "Mozilla/5.0 (Linux; Android 7.0; Moto G(4))"
Ici est affiché le résultat de la commande grep
en ayant comme paramètre l'adresse IP entrée précédemment.
Gestion des paquets
# Installation d'un paquet
sudo apt-get install <nom_du_paquet>
# Mise à jour des paquets
sudo apt-get update
sudo apt-get upgrade
# Recherche d'un paquet
apt-cache search <terme_de_recherche>
# Suppression d'un paquet
sudo apt-get remove <nom_du_paquet>
Gestion des services
# Redémarrer un service
sudo systemctl restart <nom_du_service>
# Arrêt du service
sudo systemctl stop <nom_du_service>
Gestion des processus
# Afficher les processus en cours
ps aux
# Fermer un processus en cours
kill [PID] # le PID est vu en faisant la commande ps
# Fermer un processus en effectuant un nettoyage avant
sigterm [PID]
# Fermer un processus sans nettoyage
sigkill [PID]
# Suspendre un processus
sigstop [PID]
Gestion des utilisateurs
# Ajout d'un utilisateur
sudo adduser <nom_utilisateur>
# Changement de mot de passe d'un utilisateur
sudo passwd <nom_utilisateur>
# Suppression d'un utilisateur
sudo deluser <nom_utilisateur>
Fichiers systèmes
Structure de répertoires principaux
- /bin: Contient les programmes essentiels du système.
- /etc: Fichiers de configuration système.
- /home: Répertoires des utilisateurs normaux.
- /var: Données variables telles que les journaux et les bases de données.
Fichiers de configuration importants
- /etc/apt/sources.list: Liste des sources de paquets APT.
- /etc/passwd: Informations sur les comptes d'utilisateurs.
- /etc/group: Informations sur les groupes d'utilisateurs.
- /etc/fstab: Table de montage des systèmes de fichiers.
Droits d'accès sur les fichiers
Commandes de gestion des droits
# Change les permissions d'accès à un fichier ou un répertoire
chmod u+rwx fichier
# Change le propriétaire d'un fichier ou d'un répertoire
chown [options] nouvel_utilisateur:fichier
# Change le groupe d'un fichier ou d'un répertoire
chgrp [options] nouveau_groupe fichier
Structure de permissions
Les permissions sont généralement représentées par une série de caractères qui indiquent le droit de lecture (r), d'écriture (w) et d'exécution (x) pour l'utilisateur, le groupe et les autres utilisateurs :
- r : Permission de lecture.
- w : Permission d'écriture.
- x : Permission d'exécution.
Exemples pratiques
Changer les permissions d'un fichier
Supposons que nous voulons donner la permission de lecture et d'écriture à l'utilisateur, mais seulement la permission de lecture aux autres :
chmod u+rw,o+r fichier
Changer le propriétaire d'un fichier
Supposons que nous voulons changer le propriétaire du fichier exemple.txt à l'utilisateur aurelien :
chown aurelien:exemple.txt
Changer le groupe d'un fichier
Supposons que nous voulons changer le groupe du fichier exemple.txt au groupe comptabilite :
chgrp comptabilite exemple.txt
Transfert de fichiers depuis un hôte - SCP (SSH)
La copie sécurisée, ou SCP, n'est que cela : un moyen de copier des fichiers en toute sécurité. Contrairement à la commande cp classique, cette commande permet de transférer des fichiers entre deux ordinateurs à l'aide du protocole SSH pour fournir à la fois l'authentification et le chiffrement.
Travaillant sur un modèle de SOURCE et DESTINATION, SCP permet de :
- Copiez les fichiers et répertoires de notre système actuel vers un système distant
- Copiez les fichiers et répertoires d'un système distant vers notre système actuel
À condition que l'on connaît les noms d’utilisateur et les mots de passe d’un utilisateur sur notre système actuel et d’un utilisateur sur le système distant.
Variable | Valeur |
---|---|
L'adresse IP du système distant | 10.10.168.8 |
Utilisateur sur le système distant | root |
Nom du fichier sur le système local | text.txt |
Nom sous lequel il doit s'enregistrer sur le système distant | transfert.txt |
Ce qui, en forme de commande, ressemblerait à :
scp text.txt root@10.10.168.8:/home/root/transfert.txt
L'inverse ressemblerait à :
scp root@10.10.168.8:/home/root/text.txt transfert.txt