Qu'est-ce que l'AUR dans Arch Linux et devriez-vous l'utiliser ?

Publié: 2023-06-23
Logo Arch Linux sur le site ArchWiki.
Jordan Gloor / How-To Geek
Le référentiel Arch Linux AUR contient un logiciel communautaire qui peut être utilisé en toute sécurité si vous prenez quelques précautions simples. Même si vous ne comprenez pas les scripts shell, il existe des indicateurs que vous pouvez utiliser pour juger si un paquet est sûr ou non.

L'AUR est l'un des joyaux de la couronne d'Arch Linux, fournissant des milliers de packages logiciels supplémentaires. Mais ce référentiel piloté par l'utilisateur est-il sûr à utiliser ou devriez-vous l'éviter ?

Table des matières

Qu'est-ce que l'AUR ?
Les dangers de l'utilisation de l'AUR
Sécurité AUR : vérifiez les détails et la réputation du package
Vérifier le contenu du PKGBUILD et des autres fichiers
Vous pouvez aider d'autres utilisateurs AUR

Qu'est-ce que l'AUR ?

L'AUR (Arch User Repository) est un référentiel de logiciels piloté par la communauté qui fournit plus de 85 000 packages logiciels aux utilisateurs d'Arch Linux. Contrairement à d'autres référentiels Arch tels que les référentiels core, extra et multilib, l'AUR n'héberge pas de packages prêts à installer. En fait, il n'héberge pas du tout de fichiers binaires ou de logiciels packagés.

Les fichiers de construction de packages d'hôtes AUR, appelés PKGBUILDs. Ce sont des scripts shell exécutés par l'outil Arch makepkg . Lorsque makepkg s'exécute, il recherche un fichier appelé "PKGBUILD". S'il en trouve un, il l'ouvre et suit les instructions qu'il contient pour créer une archive de progiciels sur votre ordinateur. Si vous êtes familier avec la compilation en ligne de commande, un fichier PKGBUILD et makepkg fonctionnent ensemble de la même manière qu'un MAKEFILE et l'utilitaire make .

Les instructions PKGBUILD téléchargent les fichiers de code source et d'autres fichiers nécessaires à la création de l'archive de package. L'outil pacman est appelé automatiquement pour installer le logiciel à partir de l'archive du package.

Au risque d'introduire une certaine confusion, certains packages AUR fournissent des binaires pré-compilés. Mais ces fichiers binaires ne sont pas hébergés dans l'AUR, ils sont stockés ailleurs sur Internet. L'entrée AUR de ces packages ne contient qu'un fichier PKGBUILD qui télécharge le binaire précompilé sur votre ordinateur.

Arch Linux contre Ubuntu : lequel devriez-vous utiliser ?
CONNEXION Arch Linux contre Ubuntu : lequel devriez-vous utiliser ?

L'AUR permet à quiconque de créer un PKGBUILD pour un logiciel qu'il souhaite mettre à la disposition d'autres utilisateurs d'Arch. Il peut s'agir de packages open source ou fermés, ou même de logiciels commerciaux. Les packages AUR qui obtiennent suffisamment de votes des utilisateurs peuvent être promus vers un référentiel Arch standard appelé référentiel communautaire.

Le problème avec l'AUR devient apparent lorsque vous le résumez à l'essentiel. C'est une collection de scripts d'utilisateurs aléatoires sur Internet. Et ils aimeraient que vous les exécutiez sur votre ordinateur.

Pour atténuer les risques, les scripts téléchargés sont examinés par des bénévoles qualifiés et respectés, connus sous le nom d'utilisateurs de confiance. Les utilisateurs de confiance inspectent et testent les PKGBUILDS et suppriment ceux qui contiennent des erreurs dangereuses ou des intentions malveillantes.

CONNEXION: Comment mettre à jour Arch Linux

Les dangers de l'utilisation de l'AUR

C'est un événement très rare, mais parfois, les choses passent à travers le filet, malgré la diligence des utilisateurs de confiance. En 2015, un script Valve Software Steam effaçait votre répertoire personnel si vous aviez précédemment déplacé le répertoire Steam vers un nouvel emplacement.

Plus sinistre a été l'incident de 2005, lorsqu'un paquet AUR orphelin a été repris par un nouveau responsable qui a délibérément ajouté du code malveillant au fichier PKGBUILD. Ces exemples sont anciens et rares, mais les mêmes choses pourraient se reproduire.

Bien sûr, si vous êtes suffisamment compétent, vous pouvez vérifier vous-même le contenu du fichier PKGBUILD. Cette transparence est l'une des forces de l'AUR, mais elle nécessite une connaissance suffisante des scripts pour en bénéficier. Et cela ne couvre que le fichier PKGBUILD lui-même. S'il extrait une masse de code source d'application, cela devrait également être vérifié théoriquement.

D'autres dangers liés à l'utilisation de l'AUR sont basés sur la distribution. Toutes les distributions basées sur Arch ne ressemblent pas suffisamment à Arch pour que l'AUR fonctionne parfaitement. L'AUR suppose qu'il s'installe sur un véritable Arch Linux, ainsi qu'une version entièrement corrigée et mise à jour. Manjaro, par exemple, ne prend pas officiellement en charge l'AUR même s'il est basé sur Arch.

Mais, étant donné que votre distribution prend en charge l'AUR, que pouvez-vous faire pour vous assurer que vous l'utilisez de la manière la plus sûre possible, que vous compreniez ou non le code source et les scripts shell ?

Sécurité AUR : vérifiez les détails et la réputation du package

Même sans revue de code, vous pouvez suivre certaines étapes pour vous aider à décider si vous pouvez faire confiance à un package AUR.

Trouvez votre forfait sur l'AUR

Il y a une page dans l'AUR pour chaque paquet. La page Web du package décrit le package, ses dépendances, les packages qui en dépendent et d'autres informations utiles. Commencez votre enquête en vous rendant à l'AUR et en recherchant votre colis.

La barre de recherche sur le site de l'AUR

Quelle est sa réputation ?

Les packages peuvent être votés par les utilisateurs, et un score de popularité est également attribué à chaque package. Plus il y a de votes et plus la popularité est élevée, mieux c'est. Cela signifie que le package est bien connu et largement utilisé. En d'autres termes, c'est un package réputé.

Les détails du package AUR pour les packages yay, avec les votes et les chiffres de popularité mis en évidence

La réputation du paquet est une bonne indication de sa fiabilité. Plus il y a de gens qui l'utilisent et votent pour lui, plus vous vous sentirez à l'aise de l'utiliser.

Vérifiez les dates d'activité

Dans la section "Détails du package", vous verrez ses votes, son score de popularité et deux dates. La première est la date à laquelle les packages ont été introduits pour la première fois dans l'AUR et la seconde est la date à laquelle le package a été mis à jour pour la dernière fois.

Les détails du package AUR pour les packages yay, avec les dates de première soumission et de dernière mise à jour mises en évidence

La date de « dernière mise à jour » vous indiquera si le package est activement maintenu. Les colis inactifs depuis longtemps doivent être traités avec prudence.

L'URL en amont est-elle un emplacement valide ?

Vérifiez également "l'URL en amont" et vérifiez qu'elle renvoie à une page Web valide ou à un référentiel de code pour le package ou le projet. Si ce n'est pas le cas, quelque chose ne va pas.

Les détails du package AUR pour les packages yay, avec l'URL en amont en surbrillance

Lire les commentaires des utilisateurs

Il y a des commentaires d'utilisateurs au bas de chaque page AUR. Ceux-ci peuvent s'étendre sur plusieurs pages. Découvrez ce que les autres utilisateurs disent du package et le type de questions qu'ils posent. Voyez également quelles solutions sont proposées aux problèmes soulevés. Y a-t-il des commentaires récents ? Ce package a-t-il encore une base d'utilisateurs actifs ?

Inscrivez-vous et participez

Si vous vous inscrivez sur l'AUR et créez un compte gratuit, vous pourrez laisser des commentaires et poser des questions. Utilisez également d'autres ressources telles que des forums et des subreddits pour poser des questions sur le package.

Même si vous ne comprenez pas les scripts shell, vous pouvez toujours vérifier certaines choses.

Vérifier le contenu du PKGBUILD et des autres fichiers

Un moyen courant d'accéder à l'AUR consiste à utiliser une ligne de commande "AUR helper" telle que yay , mais vous pouvez également utiliser l'AUR de manière pratique et manuelle.

Les bons assistants AUR vous donnent la possibilité d'inspecter le fichier PKGBUILD, en interrompant l'installation si vous ne voulez pas continuer. Dans le processus manuel, vous recherchez le package sur l'AUR, téléchargez le fichier PKGBUILD et l'inspectez avant de l'utiliser. Si vous êtes satisfait de continuer après l'avoir examiné, vous exécutez makepkg manuellement.

C'est une bonne idée d'installer au moins un paquet manuellement, afin que vous connaissiez les mécanismes de ce que fait l'assistant AUR en arrière-plan. Nous utiliserons l'assistant yay AUR comme exemple.

Le package a été soumis pour la première fois en 2016 et a été mis à jour pour la dernière fois en mai 2023. Au moment de la rédaction, il s'agit d'une mise à jour très récente. Il convient également de noter que l'expéditeur d'origine, le responsable actuel et la dernière personne à avoir empaqueté le logiciel sont tous la même personne. Cette continuité est un bon signe.

Cliquez sur le lien URL « Git Clone URL » dans la section « Package Details » pour le copier dans le presse-papiers.

Dans une fenêtre de terminal, tapez "git clone", un espace, puis appuyez sur Maj + Ctrl + V pour coller l'URL sur la ligne de commande. Appuyez sur "Entrée" pour lancer le téléchargement.

 git clone https://aur.archlinux.org/yay.git 

Clonage du fichier yay PKGBUILD à partir de son référentiel git

Une fois le téléchargement terminé, accédez au nouveau répertoire "yay".

 cd oui 

Changement de répertoire dans le dossier yay.

Voyons quels fichiers nous avons.

 ls 

Lister les fichiers récupérés avec ls

Il y a un seul fichier, le fichier PKGBUILD. Il existe souvent un ou deux fichiers d'aide supplémentaires. Regardez-les aussi. Nous en utiliserons less pour lire notre fichier unique.

 moins PKGBUILD 

Démarrage de la visionneuse de fichiers less pour ouvrir le fichier yay PKGBUILD

Quelles URL le fichier PKGBUILD utilise-t-il ?

Un fichier PKGBUILD bien formé qui suit les conventions créera des variables pour contenir les URL qu'il utilise. Cela nous donne une liste soignée en haut du fichier des URL que PKGBUILD référencera. Dans ce cas, il n'y en a qu'un.

Inspecter le fichier yay PKGBUILD avec la visionneuse de fichiers less

Nous pouvons voir qu'il pointe vers une page GitHub pour le projet yay .

La page GitHub appartient à un utilisateur portant le même nom que le responsable répertorié sur la page AUR de ce package. Ce sont deux bonnes indications qu'il s'agit d'un emballage sûr.

Mais nous allons continuer et regarder un peu plus en profondeur.

Recherchez les commandes de téléchargement

Utilisez la fonction de recherche less pour rechercher dans le fichier les utilisations de wget ou curl . Ces deux outils peuvent être utilisés pour récupérer des fichiers distants. Un PKGBUILD bien élevé ne devrait pas avoir besoin d'une telle activité.

Si vous trouvez des occurrences, traitez-les comme un drapeau rouge et n'installez pas le paquet tant que vous n'êtes pas certain qu'il est bénin. Quelle est l'URL à laquelle les commandes wget ou curl font référence ? Ont-ils l'air légitimes et liés au colis ?

Si vous pouvez obtenir la confirmation d'une source fiable que le PKGBUILD est digne de confiance et qu'il est simplement écrit d'une manière qui ne suit pas les conventions, vous pouvez toujours choisir de l'installer.

Recherchez rm, mv et autres commandes dangereuses

De même, il n'est pas nécessaire qu'un fichier PKGBUILD contienne les commandes rm ou mv , ni qu'ils aient besoin de référencer quoi que ce soit dans le répertoire "/dev". Si le PKGBUILD appelle directement pacman , ou mentionne systemctl , systemd ou tout autre composant système vital tel que grub , considérez le fichier PKGBUILD comme dangereux et ne l'exécutez pas.

Vous pouvez effectuer les étapes que nous avons utilisées jusqu'à présent même si vous ne pouvez pas lire les scripts shell. Si vous connaissez des scripts shell, vous pouvez revoir le code réel dans le PKGBUILD.

Méfiez-vous du code obscurci

Les personnes qui écrivent du code malveillant essaient souvent de cacher ses intentions en l'obscurcissant. Ils utilisent une syntaxe minimaliste, concise et impénétrable, il est donc difficile de déchiffrer ce qu'ils essaient de faire. Si vous voyez des lignes qui utilisent la redirection ou appellent sed ou awk , traitez-les comme suspectes.

Copier ces lignes et les déposer dans un analyseur en ligne tel que EXPLAINSHELL.com les décompressera afin que vous puissiez voir ce qu'ils font réellement. Si vous êtes confronté à un désordre dense de parenthèses, de points-virgules et d'esperluettes, il vaut la peine d'utiliser un analyseur en ligne pour vérifier que vous avez correctement interprété ce que la ligne essaie de faire. Mais en général, un code difficile à lire est un signe d'avertissement.

Votre /home devrait être votre château

Les compilations et constructions de PKGBUILD ont lieu dans un environnement chroot .

Il s'agit de mini-systèmes de fichiers isolés qui permettent aux développeurs d'effectuer des processus de bac à sable en limitant leur accès au reste du système de fichiers de votre ordinateur et en réduisant leur accès aux autres commandes système.

Si le PKGBUILD manipule directement votre répertoire personnel, considérez cela comme un drapeau d'avertissement. Assurez-vous de bien comprendre ce qu'il fait avant de décider de l'exécuter.

Vous pouvez aider d'autres utilisateurs d'AUR

Avec des forfaits extrêmement populaires, vous êtes très susceptible d'être en sécurité. En raison du nombre élevé d'utilisateurs, les problèmes sont détectés et signalés plus rapidement. Vous pouvez faire votre part en signalant tous les problèmes que vous rencontrez et en votant pour de bons packages pour améliorer leur réputation.

Si vous trouvez qu'il y a un problème avec un paquet qui vous empêche de l'installer, vous pouvez vous retrouver dans une impasse parce que vous aviez besoin de ce paquet. Une solution consiste à demander sur les forums des suggestions d'autres packages pouvant répondre à ce besoin particulier.

Linux a généralement de nombreuses façons de dépouiller un chat donné.

CONNEXION: Comment installer Arch Linux à partir d'une interface graphique