🌙
  • đŸ‡ș🇾 English
  • đŸ‡«đŸ‡· Français
  • đŸ‡Ș🇩 Español

NOTE Post Réécriture : Cet article, et bien d’autres, fait parti de la sĂ©rie “Script kiddie”. Il a Ă©tĂ© Ă©crit il y a plusieurs annĂ©es. Son contenu n’est pas Ă  jour et il contient potentiellement des erreurs. Plus d’information sur la page de prĂ©sentation de la sĂ©rie.

Continuons sur notre lancĂ©e en abordant ce qui fait toute l’utilitĂ© d’une machine : les processus, la gestion de multiples utilisateurs et la programmation. Au travers de cette partie, nous ferons donc un tour vers Python afin que vous puissiez maĂźtriser un premier langage de programmation. Cela vous permettra de gagner en logique mathĂ©matique et en confiance pour vos projets.

Le super utilisateur

Sur Linux comme sur Windows, il existe la possibilitĂ© d’avoir plusieurs utilisateurs sur la mĂȘme machine. Vous devez probablement ĂȘtre habituĂ© Ă  exĂ©cuter des programmes en tant qu’administrateur, eh bien Linux dĂ©livre Ă©galement cette fonctionnalité ; cependant, celle-ci demeure fortement diffĂ©rente.

Sur les machines Linux, l’administrateur est appelĂ© root. Il possĂšde tous les droits sur le systĂšme, c’est d’ailleurs de cette facultĂ© qu’il tire son nom, root signifiant « racine » en anglais. En effet, le super-utilisateur peut modifier le systĂšme de fichier Ă  partir de sa racine et Ă©crire dans n’importe quel dossier, de ce fait, il est la personne ayant le droit de vie ou de mort sur la machine (ainsi que sur les donnĂ©es de tous les autres utilisateurs).

WARN : Restez toujours bien concentrĂ© lorsque vous utilisez les permissions et les pouvoirs du super-utilisateur. Une petite faute peut rapidement se transformer en un enfer signant l’arrĂȘt de mort du PC.

En tant que simple utilisateur, vos pouvoirs sont limités. Par exemple, tapez ceci :

cat /etc/sudoers

La commande vous renvoie une erreur de permission :

cat: /etc/sudoers: Permission denied

Afin de remédier à ce problÚme, nous allons acquérir les pouvoir du super-utilisateur.

NOTE : Au dĂ©but de cet ouvrage, je vous avais conseillĂ© d’ĂȘtre le maĂźtre de votre machine, ou du moins, de la partie sur Linux. Si ce n’est pas le cas, vous aurez beaucoup de mal Ă  effectuer les tĂąches en tant qu’administrateur.

Afin d’acquĂ©rir les prĂ©cieuses permissions, il faut utiliser la commande suivante :

su

Le programme vous demande alors de rentrer un mot de passe :

Password:
root@ordinateur:/home/jean#

Vous voilà enfin root !

Ce qu’il y a de pratique dans l’utilisation du super-utilisateur sur Linux, c’est que vous n’ĂȘtes pas obligĂ© d’ĂȘtre constamment connectĂ© avec cet utilisateur pour utiliser ses privilĂšges, ce qui est un avantage indĂ©niable au niveau de la sĂ©curitĂ©.

Ainsi, pour obtenir les pleins pouvoirs, il ne suffit que de taper le mot sudo devant n’importe quelle commande. Par exemple :

sudo cat /etc/sudoers

L’ordinateur vous demandera une nouvelle fois de renseigner votre mot de passe pour continuer. S’il ne le fait pas, c’est que vous avez utilisĂ© les privilĂšges de root il n’y a pas si longtemps que ça.

Vous remarquerez que cette fois-ci, le systĂšme ne vous a pas renvoyĂ© d’erreur, tout c’est bien passĂ© lors de l’exĂ©cution de la commande car vous aviez les bonnes permissions au bon endroit.

Afin de passer de l’utilisateur au super-utilisateur, on prĂ©fĂ©rera quand mĂȘme cette mĂ©thode qui induit beaucoup moins d’erreurs sur les systĂšmes :

sudo su

De mĂȘme, vous remarquerez le # prĂ©sent Ă  la place du $ sur la ligne introduisant votre instruction. Elle symbolise root, nous la mettrons donc au dĂ©but des commandes nĂ©cessitant de plus amples privilĂšges pour vous indiquer qu’il faudra faire appel Ă  votre toute puissance.

NOTE : N’oubliez pas de quitter le mode super-utilisateur dĂšs que vous n’en avez plus besoin. Son utilisation peut ĂȘtre dangereuse sur votre machine, et, quelqu’un de malveillant pourrait passer aprĂšs vous et en profiter.

Installer un programme depuis les sources

Maintenant que vous avez obtenu les privilùges de root, il est temps d’installer vos premiers programmes sur la machine.

Sur n’importe quelle distribution Linux ouverte au grand public, on utilise ce que l’on appelle un gestionnaire de paquets. Celui-ci va, Ă  l’aide d’une base de donnĂ©es regroupant l’ensemble des logiciels que vous pouvez installer, retrouver l’adresse du programme que vous dĂ©sirez et exĂ©cuter les instructions pour l’installer Ă  votre place.

Sur Ubuntu et les machines basĂ©es sur Debian, on utilise apt en guise de gestionnaire. Son utilisation est trĂšs simple, mĂȘme si elle peut parfois s’avĂ©rer complexe lorsqu’il faut installer un paquet qui n’est plus disponible sur la base de donnĂ©es. Il faudra alors se battre quelque peu avec le logiciel


Avant toute utilisation, il faut mettre Ă  jour la base de donnĂ©es, et le faire assez rĂ©guliĂšrement. Au moins une fois par semaine n’est pas de trop, car une base de donnĂ©es non Ă  jour vous redirigera vers des liens dĂ©placĂ©s ou supprimĂ©s.

Ainsi, tapez cette commande pour la mettre à jour :

apt update

NOTE : Cette commande est inefficace si vous avez choisi une autre distribution qu’Ubuntu ou Debian. Inutile de vous arracher les cheveux pour cela.

Installer un paquet devient alors trÚs simple, il suffit de taper la ligne suivante :

apt install [paquet]

Remplacez paquet par le logiciel que vous désirez, par exemple cmatrix :

apt install cmatrix

Et le tour est joué. Vous pourrez ainsi bénéficier de votre nouveau programme !

Afin d’essayer de m’adresser au plus grand nombre, je vais rajouter des dĂ©tails sur les procĂ©dures d’installation sur les autres distributions. Pour les personnes ayant installĂ© Manjaro ou Arch Linux, les commandes seront les suivantes :

Mettre à jour la base de données :

pacman -Syu

Installer un paquet :

pacman -S [paquet]

Les commandes pour désinstaller un paquet sur Ubuntu et Debian sera :

apt remove [paquet]

Et elle ressemblera à ça pour les utilisateurs d’Arch et de Manjaro :

pacman -Rns [paquet]

NOTE : En tant qu’utilisateur de Debian ou d’Ubuntu, vous n’avez pas Ă  exĂ©cuter les commandes avec pacman. Et inversement pour les autres avec apt.

NOTE : Si vous ĂȘtes un utilisateur de Fedora, les commandes seront les mĂȘmes qu’avec apt, sauf qu’ici le gestionnaire s’appelle dnf. Par exemple :

dnf install cmatrix

Cette ligne installera cmatrix sur votre systĂšme. Pour plus d’informations, n’hĂ©sitez pas Ă  lire la doc.

Ce qu’il y a de pratique sur Linux, c’est que les possibilitĂ©s sont infinies dans l’exĂ©cution d’une seule et mĂȘme tĂąche. Le vieux gestionnaire de paquet apt-get avait dĂ©jĂ  laissĂ© sa place Ă  apt que voici un nouveau concurrent dans la liste des gestionnaires de paquets : Synaptic.

Ce gestionnaire a l’avantage d’ĂȘtre disponible sur tous les systĂšmes Linux, mais cela est aussi la raison de sa faiblesse, ses problĂšmes d’optimisation. Synaptic est lent, trĂšs lent, tout aussi lent qu’il est pratique d’y installer des paquets. En effet, le logiciel dispose d’une interface graphique en plus de celle par ligne de commande.

Ici pas de base de données à mettre à jour, juste un gestionnaire avec des commandes claires. Par exemple, pour Installer un paquet on utilisera :

snap install [paquet]

Cependant, Synaptic doit ĂȘtre installĂ© au prĂ©alable avec votre gestionnaire de paquets de base, sans quoi il ne fonctionne pas. L’interface graphique est-elle beaucoup plus facile Ă  apprĂ©hender pour un novice. Je vous laisse faire sa connaissance en tapant, depuis le terminal ou le menu dĂ©marrer, la commande :

gnome-software

NOTE : À proprement parler, gnome-software n’est pas snap, mais beaucoup de paquet de snap viennent de cet endroit chaleureux et accueillant.

Si un programme n’est pas installable depuis les sources, il a de fortes chances que vous puissiez le trouver sur GitHub ou sur SourceForge. Dans ces cas-lĂ , de nombreuses mĂ©thodes, ĂŽ combien diffĂ©rentes existent pour installer le logiciel en question. Nous les verrons toutes dans une prochaine partie, car beaucoup nĂ©cessitent des connaissances dans la gestion des permissions propres aux fichiers que nous allons Ă©tudier, et aux utilisateurs qui peuvent les employer.

NOTE : Avant de vous quitter pour cette partie, un dernier petit dĂ©tail doit ĂȘtre fait pour les utilisateurs d’Arch et de Manjaro : un accĂšs Ă  des dĂ©pots plus important est possible avec AUR. Vous obtiendrez plus d’informations sur le wiki de Manjaro

Les utilisateurs et les groupes

Pour cette partie, nous allons crĂ©er un utilisateur et changer ses droits. À la fin de celle-ci, vous ne serez pas obligĂ©s de garder cette personne inutile. Le restant de cette partie se fera avec root, vous savez donc ce qu’il vous reste Ă  faire


Notre ami Jean veut partager notre poste de travail fixe (le sien Ă  brĂ»ler suite Ă  une mauvaise utilisation des privilĂšges d’administrateur). Bien Ă©videmment, conscient du risque que peut reprĂ©senter Jean vis-Ă -vis des systĂšmes informatiques qu’il peut toucher, vous dĂ©cider de lui crĂ©er un endroit appropriĂ© sur votre systĂšme. Commençons par crĂ©er un utilisateur, pour ce faire, nous utiliserons la commande suivante :

adduser [nom]

Ce qui donnera ici :

adduser jean

L’ordinateur vous demande alors de taper le mot de passe de Jean et de rentrer quelques informations (facultatives) sur lui. Une fois fait, le dossier personnel de Jean se trouvera dans /home/jean.

Ne vous inquiétez pas pour la faiblesse du mot de passe de Jean, il pourra le changer à tout moment avec la commande suivante :

passwd

En tant qu’administrateur systĂšme, vous pouvez Ă©galement changer son mot de passe en rajoutant son nom derriĂšre la commande :

passwd jean

Jean en tant qu’apprenti hacker souhaiterait utiliser la suite de logiciel Metasploit (si vous ne l’avez pas installĂ©, ce n’est pas grave, Metasploit n’est pas l’objet de notre Ă©tude actuellement) Ă  laquelle il a pour habitude de rajouter ses propres programmes (un peu lourd ce Jean, vous devrez penser Ă  revoir vos frĂ©quentations). Pour ce faire, il va falloir lui donner la permission d’écrire dans le dossier /opt.

Un problĂšme se pose, si vous donner les permissions du super utilisateurs Ă  Jean, il risque de reproduire les mĂȘmes erreurs qu’il a commit sur sa propre machine sur la vĂŽtre. Une solution existe, les groupes ! Les groupes sont des listes d’utilisateurs ayant des privilĂšges communs aux membres du groupe.

En tant qu’utilisateur, vous faites dĂ©jĂ  partie de plusieurs groupes et vous pouvez en voir la liste en tapant :

groups

Je ne m’étendrai pas sur la liste que vous avez en face des yeux puisqu’elle se trouve ĂȘtre diffĂ©rente pour chaque utilisateur et est dĂ©finie par les actions entreprises sur la machine (programmes installĂ©s, privilĂšges obtenus, groupes créés par la suite). De rapides recherches sur internet vous permettront de comprendre Ă  quoi servent les groupes auxquels vous ĂȘtes inscrits.

Vous pouvez également visualiser la liste de Jean :

groups jean

CrĂ©ons donc un groupe auquel nous rajouterons Jean Ă  l’aide de la commande suivante :

addgroup [nom]

Pour ma part, je vais créer le groupe avec le nom suivant :

addgroup lesbg

Ajouter ce groupe à votre liste personnelle avec cette instruction :

usermod -a -G [group] [utilisateur]

Ce qui donne pour Jean :

usermod -a -G lesbg jean

Maintenant que Jean et moi sommes dans le mĂȘme groupe, je n’ai plus qu’à dire que le dossier /opt appartient au groupe Ă  l’aide de la commande chown :

chown -R [user]:[group] [dossier]

Ce qui donnera l’instruction suivante dans notre cas :

chown -R :lesbg /opt

Il ne reste plus qu’à accorder les droits de modifier, exĂ©cuter et lire les fichiers au groupe, ce que l’on va apprendre Ă  faire dans la prochaine partie.

NOTE : N’oubliez pas de supprimer Jean aprĂšs avoir fini, Ă  moins que vous ne vouliez qu’il vous hante pour l’éternitĂ©. Cette ressource devrait vous aider.

Changer les permissions pour un fichier

Une fois tous les groupes bien paramĂ©trĂ©s, il va falloir changer les permissions des fichiers que Jean voulait consulter. Cette partie est un peu complexe mais reste l’une des plus importantes.

Elle vous permettra ensuite de repĂ©rer trĂšs facilement, dans un systĂšme de fichier, ce que vous pouvez ou non consulter, exĂ©cuter ou modifier. Pour ceux ayant lu le manuel de la commande ls, ils ont pu remarquer que l’option -l prĂ©sentez un rĂ©sultat assez particulier :

ls -l
drwxr-xr-x  2 jean          jean          4096 avril 13 17:24 jean

Voici le rĂ©sultat que j’obtiens dans mon dossier /home. Dans l’ordre :

PrĂȘtons attention Ă  la partie suivante : drwxr-xr-x Je vais la dĂ©couper en 4 pour vous expliquer Ă  quoi correspond ce charabia :

TypeDroit utilisateurDroit groupeDroit des autres
drwxr-xr-x

Commençons par le type, cette part indique s’il s’agit d’un fichier, d’un dossier ou d’un lien (l’alternative aux raccourcis sur Windows).

Cette case peut prendre trois valeurs : d, l, -.

Le droit utilisateur est l’ensemble des permissions accordĂ©es Ă  la personne ayant la possession du dossier. Il s’exprime de la mĂȘme maniĂšre que le droit du groupe (permissions que possĂšde le groupe ayant créé l’élĂ©ment) et le droit des autres utilisateurs (permissions des utilisateurs n’ayant aucuns rapports avec l’élĂ©ment).

Ils existent trois autorisations que l’on peut accorder à un utilisateur (ou un groupe) :

Quand une de ces lettres est prĂ©sente, cela veut donc dire que l’utilisateur (ou le groupe) possĂšde cette permission. Dans le cas contraire, il y aura un tiret (-) Ă  la place de la lettre. L’utilisateur Jean (propriĂ©taire du rĂ©pertoire Jean) a donc tous les droits sur son rĂ©pertoire personnel puisque les trois lettres (rwx) sont prĂ©sentes.

Pour changer les permissions d’un utilisateur sur un Ă©lĂ©ment :

chmod [valeur] [fichier/dossier/lien]

L’argument [valeur] peut prendre deux formes diffĂ©rentes, nous n’en verrons qu’une seule afin d’abrĂ©ger un peu.

Pour faire simple, chaque permission est associée à une valeur numérique. 1 pour exécuter, 2 pour lire et 4 pour écrire (modifier). On peut additionner ces valeurs pour donner de multiples permissions à un utilisateur.

Par exemple, si je veux donner l’accĂšs Ă  la lecture et Ă  l’écriture Ă  un document, je vais devoir rentrer la valeur 4 (pour la modification) + 2 (pour la consultation) = 6 (lecture + Ă©criture). Ce paramĂštre doit ĂȘtre exprimĂ© avec trois chiffres, le premier reprĂ©sentant les droits du possesseur, le second, ceux du groupe et le dernier, l’accĂšs accordĂ© aux autres utilisateurs.

Ainsi, la valeur 666 permettra Ă  l’utilisateur possĂ©dant le fichier, au groupe possĂ©dant le fichier et Ă  un utilisateur quelconque de pouvoir lire et modifier le fichier. Elle donnera rw-rw-rw- comme chaĂźne de permission lorsque vous la visualiserez avec ls.

Cependant, nous dĂ©vions un peu de la tĂąche de dĂ©part, offrir Ă  Jean l’accĂšs au dossier /opt. Histoire de ne pas avoir Ă  recommencer cette opĂ©ration pour les futurs utilisateurs de notre machine, on va donner les droits d’accĂšs au groupe directement (il n’y aura plus qu’à ajouter la personne dans le groupe pour qu’elle ait accĂšs Ă  ces fichiers) Ă  l’aide des paramĂštres de chmod :

chmod 775 /opt

Je ne peux malheureusement pas couvrir l’entiĂšretĂ© des commandes gĂ©rant les droits des utilisateurs et de leurs groupes ici, faute de temps et d’envie
 Je vous recommande cependant, bien que le sujet n’intĂ©resse pas grand monde (moi-mĂȘme ne suis pas en adoration devant ce genre de manipulation), de poursuivre votre apprentissage dans ce domaine. En effet, lorsque vous vous retrouverez Ă  exploiter une machine, il sera nĂ©cessaire de faire ce qu’on appelle une escalade de privilĂšge, passant de simple utilisateur Ă  root. Les quelques connaissances (qui forment dĂ©jĂ  une bonne base ceci-dit) qui sont en votre possession ne sont guĂšre suffisantes pour certaines tĂąches, qui certes n’arriveront pas dans l’immĂ©diat face Ă  vous, mais qui pourront tĂŽt ou tard vous poser problĂšme. Le Web est donc votre plus grand ami dans l’enrichissement de vos connaissances


Compiler et installer manuellement des programmes

Maintenant que nous avons vu comment changer les permissions des fichiers, des dossiers et des utilisateurs, il est temps de voir la derniùre façon d’installer des programmes, celle que nous utiliseront assez souvent en raison de la nature des programmes que nous allons installer.

Dans un premier temps, certains programmes possĂšdent un script d’installation, ce sont les plus simples Ă  ajouter Ă  votre logithĂšque. Trouvez le fichier et exĂ©cuter le avec la syntaxe suivante :

./[fichier]

./ suivi du nom du fichier permet de le lancer. Quelques fois, le dĂ©veloppeur ne spĂ©cifie pas le langage Ă  utiliser et ./ sera donc inutile. Dans ces cas lĂ , en fonction de l’extension du fichier, il va falloir le lancer avec le bon langage (bonne chance).

NOTE : Certains fichiers d’installation nĂ©cessitent des droits d’administrateur.

Si vous ne voyez pas de fichier d’installation, peut-ĂȘtre voyez-vous un fichier nommĂ© MakeFile. Ce dernier sert de base aux instructions de compilation, il suffit donc de taper les commandes suivantes pour installer le programme :

make && make install

De mĂȘme, parfois ce sera un fichier dont le nom commencera par cmake qui sera prĂ©sent au sein du rĂ©pertoire. Il faut donc utiliser le logiciel cmake :

mkdir build && cd build
cmake ..

Un fichier Makefile devrait ĂȘtre gĂ©nĂ©rĂ© dans le dossier build, alors, vous savez ce qu’il vous reste Ă  faire pour compiler !

NOTE : Sur beaucoup de systĂšme, make et cmake ne sont pas installĂ©s par dĂ©faut, vous savez ce qu’il vous reste Ă  faire :

apt install make cmake

S’il n’y a pas de fichier d’installation, ni de quoi compiler avec make ou cmake, peut-ĂȘtre y a-t-il de quoi faire avec python. Dans ces cas-lĂ , il y a trois cas de figure pour installer un logiciel Ă©crit en python :

Abordons le premier cas, celui du fichier requirements.txt. Ce fichier texte pourvu par le dĂ©veloppeur contient toutes les dĂ©pendances python, Ă  installer, nĂ©cessaires Ă  l’exĂ©cution du programme. Elles peuvent ĂȘtre installĂ©es avec pip.

Mais dans un premier temps, il faudra d’abord installer pip ;)

curl -sSL https://bootstrap.pypa.io/get-pip.py | python3

NOTE : Pour les versions de Python supĂ©rieures Ă  la 3.10, pip est prĂ©installĂ© avec le langage de programmation. Pour les autres, vĂ©rifiez bien que la version de Python sur laquelle vous vous apprĂȘtez Ă  installer pip est bien la bonne.

Installer un module avec pip (plus de détails sur ce point dans la partie Python) :

pip3 install [modules]

Installer les dépendances du fichier requierements.txt :

pip3 install -r requirements.txt

NOTE : Les modules installĂ©s ne sont pas appliquĂ©s pour tous les utilisateurs. Cela signifie que si vous l’avez installĂ© en root, votre utilisateur normal ne bĂ©nĂ©ficiera pas de ces modules, et inversement.

La deuxiĂšme mĂ©thode que nous devions Ă©tudier, celle du fichier setup.py, est encore plus simple. Il suffit d’exĂ©cuter :

python3 setup.py install && python3 setup.py build

NOTE : Le programme peut avoir besoin des permissions d’administrateur. De plus, veuillez utiliser la bonne version de python pour procĂ©der. Un programme installĂ© avec python3 ne fonctionnera pas avec python2 et inversement.