O AUR é uma das joias da coroa do Arch Linux, fornecendo milhares de pacotes de software adicionais. Mas esse repositório controlado pelo usuário é seguro para uso ou você deve evitá-lo?
Índice
O AUR ( Arch User Repository ) é um repositório de software conduzido pela comunidade que fornece mais de 85.000 pacotes de software para usuários do Arch Linux. Ao contrário de outros repositórios Arch, como os repositórios core, extra e multilib, o AUR não hospeda pacotes prontos para instalação. Na verdade, ele não hospeda arquivos binários ou software empacotado.
O AUR hospeda arquivos de construção de pacote, chamados PKGBUILDs. Estes são scripts de shell executados pela makepkg
ferramenta Arch. Quando makepkg
executado, procura um arquivo chamado “PKGBUILD”. Se encontrar um, ele o abre e segue as instruções contidas nele para criar um arquivo de pacote de software em seu computador. Se você estiver familiarizado com a compilação na linha de comando , um arquivo PKGBUILD makepkg
funciona em conjunto de maneira semelhante a um MAKEFILE e ao make
utilitário.
As instruções do PKGBUILD baixam arquivos de código-fonte e outros arquivos necessários para criar o arquivo do pacote. A pacman
ferramenta é chamada automaticamente para instalar o software do arquivo do pacote.
Correndo o risco de causar alguma confusão, alguns pacotes AUR entregam binários pré-compilados. Mas esses binários não estão hospedados no AUR, eles estão armazenados em outro lugar na Internet. A entrada AUR para esses pacotes contém apenas um arquivo PKGBUILD que baixa o binário pré-compilado para o seu computador.
O AUR permite que qualquer pessoa crie um PKGBUILD para um software que gostaria de disponibilizar para outros usuários do Arch. Podem ser pacotes de código aberto ou fechado, ou até mesmo software comercial. Pacotes AUR que obtiverem votos suficientes dos usuários podem ser promovidos para um repositório Arch regular chamado repositório da comunidade.
O problema com o AUR torna-se aparente quando você o resume ao básico. É uma coleção de scripts de usuários aleatórios da Internet. E eles gostariam que você os executasse em seu computador.
Para mitigar os riscos, os scripts carregados são revisados por voluntários qualificados e respeitados, conhecidos como usuários confiáveis. Os usuários confiáveis inspecionam e testam os PKGBUILDS e removem qualquer que contenha erros perigosos ou intenções maliciosas.
É uma ocorrência muito rara, mas às vezes as coisas escapam da rede, apesar da diligência dos usuários confiáveis. Em 2015, um script Steam da Valve Software apagou seu diretório inicial se você já tivesse movido o diretório Steam para um novo local.
Mais sinistro foi o incidente em 2005, quando um pacote AUR órfão foi assumido por um novo mantenedor que adicionou deliberadamente código malicioso ao arquivo PKGBUILD . Esses exemplos são antigos e incomuns, mas as mesmas coisas podem acontecer novamente.
Claro, se você tiver habilidade suficiente, poderá revisar o conteúdo do arquivo PKGBUILD você mesmo. Essa transparência é um dos pontos fortes do AUR, mas requer conhecimento de script suficiente para se beneficiar dela. E isso cobre apenas o próprio arquivo PKGBUILD. Se ele extrair uma grande quantidade de código-fonte do aplicativo, teoricamente isso também deverá ser verificado.
Outros perigos no uso do AUR são baseados na distribuição. Nem todas as distribuições baseadas em Arch são suficientemente semelhantes ao Arch para que o AUR funcione perfeitamente. O AUR assume que está sendo instalado no Arch Linux genuíno e em uma versão totalmente corrigida e atualizada. Manjaro, por exemplo, não oferece suporte oficial ao AUR , embora seja baseado em Arch.
Mas, dado que sua distribuição suporta o AUR, o que você pode fazer para ter certeza de que está usando-o da forma mais segura possível, quer você entenda o código-fonte e os scripts de shell ou não?
Mesmo sem revisões de código, existem etapas que você pode seguir para ajudá-lo a decidir se pode confiar em um pacote AUR.
Há uma página no AUR para cada pacote. A página do pacote descreve o pacote, quais dependências ele possui, quais pacotes dependem dele e outras informações úteis. Comece sua investigação indo ao AUR e procurando seu pacote.
Os pacotes podem ser votados pelos usuários e também há uma pontuação de popularidade atribuída a cada pacote. Quanto mais votos e maior a popularidade, melhor. Isso significa que o pacote é bem conhecido e amplamente utilizado. Em outras palavras, é um pacote confiável.
A reputação da embalagem é uma boa indicação da sua confiabilidade. Quanto mais pessoas o usarem e votarem nele, mais confortável você se sentirá em usá-lo.
Na seção “Detalhes do pacote” você verá seus votos, pontuação de popularidade e duas datas. Uma é quando os pacotes foram introduzidos pela primeira vez no AUR e a segunda é quando o pacote foi atualizado pela última vez.
A data da “Última atualização” informará se o pacote está sendo mantido ativamente. Pacotes que ficaram inativos por muito tempo devem ser tratados com cautela.
Verifique também o “URL upstream” e verifique se ele leva a uma página da web ou repositório de código válido para o pacote ou projeto. Se isso não acontecer, algo está errado.
Existem comentários de usuários no final de cada página do AUR. Eles podem se estender por muitas páginas. Veja o que outros usuários estão dizendo sobre o pacote e que tipo de perguntas eles fazem. Veja também quais soluções são oferecidas para as questões levantadas. Há algum comentário recente? Este pacote ainda possui uma base de usuários ativa?
Se você se cadastrar no AUR e criar uma conta gratuita poderá deixar comentários e fazer perguntas. Além disso, use outros recursos como fóruns e subreddits para perguntar sobre o pacote.
Mesmo que você não entenda os scripts de shell, ainda há algumas coisas que você pode verificar.
Uma maneira comum de acessar o AUR é com uma linha de comando “AUR helper”, como yay
, mas você também pode usar o AUR de maneira prática e manual.
Bons ajudantes do AUR oferecem a opção de inspecionar o arquivo PKGBUILD, interrompendo a instalação se você não quiser continuar. No processo manual, você procura o pacote no AUR e baixa o arquivo PKGBUILD e o inspeciona antes de usá-lo. Se você quiser prosseguir depois de revisá-lo, execute o makepkg manualmente.
É uma boa ideia instalar pelo menos um pacote manualmente, para que você conheça a mecânica do que o auxiliar AUR está fazendo em segundo plano. Usaremos o auxiliar yay AUR como exemplo .
O pacote foi enviado pela primeira vez em 2016 e atualizado pela última vez em maio de 2023. No momento em que este artigo foi escrito, essa era uma atualização muito recente. Também notável é que o remetente original, o mantenedor atual e a última pessoa a empacotar o software são todos a mesma pessoa. Essa continuidade é um bom sinal.
Clique no link URL “Git Clone URL” na seção “Detalhes do pacote” para copiá-lo para a área de transferência.
Em uma janela de terminal, digite “git clone”, um espaço e pressione Shift+Ctrl+V para colar o URL na linha de comando. Pressione “Enter” para iniciar o download.
clone do git https://aur.archlinux.org/yay.git
Quando o download for concluído, mude para o novo diretório “yay”.
CD, sim
Vamos ver quais arquivos temos .
eu
Existe um único arquivo, o arquivo PKGBUILD. Freqüentemente, há um ou dois arquivos auxiliares adicionais. Dê uma olhada nisso também. Usaremos less
para ler nosso único arquivo.
menos PKGBUILD
Um arquivo PKGBUILD bem formado que segue as convenções criará variáveis para armazenar as URLs que ele usa. Isso nos dá uma lista organizada no topo do arquivo de URLs que o PKGBUILD fará referência. Neste caso, há apenas um.
Podemos ver que ele está apontando para uma página GitHub do yay
projeto.
A página GitHub pertence a um usuário com o mesmo nome do mantenedor listado na página AUR deste pacote. Estas são duas boas indicações de que este é um pacote seguro.
Mas continuaremos e olharemos um pouco mais profundamente.
Use o less
recurso de pesquisa para pesquisar no arquivo os usos de wget
oucurl
. Ambas as ferramentas podem ser usadas para recuperar arquivos remotos. Um PKGBUILD bem comportado não deveria ter necessidade de tal atividade.
Se você encontrar alguma ocorrência, trate-a como um sinal de alerta e não instale o pacote até ter certeza de que é benigno. Qual é o URL ao qual os comandos wget
ou curl
estão se referindo? Eles parecem legítimos e relacionados ao pacote?
Se você conseguir a confirmação de uma fonte confiável de que o PKGBUILD é confiável e foi escrito de uma forma que não segue as convenções, você ainda poderá optar por instalá-lo.
Da mesma forma, não há necessidade de um arquivo PKGBUILD conter os comandos rm
ou mv
, nem eles devem fazer referência a nada no diretório “/dev”. Se o PKGBUILD chamar diretamente pacman
ou mencionar systemctl
, systemd
ou qualquer outro componente vital do sistema, como grub
, trate o arquivo PKGBUILD como perigoso e não o execute.
Você pode executar as etapas que usamos até agora, mesmo que não consiga ler scripts de shell. Se você conhece algum script de shell, pode revisar o código real no PKGBUILD.
As pessoas que escrevem códigos maliciosos muitas vezes tentam esconder suas intenções, ofuscando-as. Eles usam uma sintaxe minimalista, concisa e impenetrável, por isso é difícil decifrar o que estão tentando fazer. Se você vir alguma linha que use redirecionamento ou chamada sed
ou awk
, trate-a como suspeita.
Copiar essas linhas e colocá-las em um analisador on-line, como o explicashell.com, irá descompactá-las para que você possa ver o que elas realmente fazem. Se você se deparar com uma confusão densa de colchetes, ponto e vírgula e e comercial, vale a pena usar um analisador on-line para verificar se você interpretou corretamente o que a linha está tentando fazer. Mas, em geral, código difícil de ler é um sinal de alerta.
As compilações e construções do PKGBUILD ocorrem em um chroot
ambiente .
Esses são minisistemas de arquivos isolados que permitem aos desenvolvedores processar processos em sandbox, limitando seu acesso ao restante do sistema de arquivos do seu computador e reduzindo seu acesso a outros comandos do sistema.
Se o PKGBUILD estiver manipulando diretamente seu diretório inicial , trate isso como um sinalizador de aviso. Certifique-se de compreender totalmente o que ele está fazendo antes de decidir executá-lo.
Com pacotes extremamente populares, é muito provável que você esteja seguro. Devido ao grande número de usuários, os problemas são detectados e relatados mais rapidamente. Você pode fazer a sua parte relatando quaisquer problemas que encontrar e votando em bons pacotes para melhorar sua reputação.
Se você descobrir que há um problema com um pacote que faz com que você não queira instalá-lo, você pode se encontrar em uma situação difícil porque precisava desse pacote. Um caminho a seguir é pedir sugestões em fóruns de outros pacotes que possam satisfazer essa necessidade específica.
O Linux geralmente tem muitas maneiras de esfolar qualquer gato.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…