Como manter o Debian automaticamente atualizado com as correções de segurança

No mundo do software livre, as atualizações de segurança chegam a uma velocidade muito grande.
Comumente, os security patches estão disponíveis já no momento em que a vulnerabilidade é anunciada.
A questão é como obter a atualização o mais rápido possível?

A usuários normais (como eu, por exemplo), basta seguir o cronograma natural de atualizações do seu sistema.
Esta liberdade não se aplica a administradores de servidores, na rede. Quanto mais importante, maior a responsabilidade e a urgência.

As atualizações de que estamos falando aqui, são as referentes à segurança do sistema e a correções de bugs.
Computadores de usuários comuns, em geral, podem esperar uma semana para obtê-las. Já os servidores, não.
Neste post, vou mostrar um procedimento que irá fazer o download e upgrade dos patches de segurança em segundo plano, assim que estiverem disponíveis nos repositórios da sua distro, sem perguntar “se pode” — você será apenas avisado de que o seu sistema foi atualizado.

Por que as atualizações de segurança devem ocorrer em segundo plano

Obviamente, se o meu sistema operacional fosse atualizado por uma grande corporação, como a Oracle ou a Microsoft, a conversa seria bem diferente, aqui.
Contudo, há motivos sólidos para confiar na comunidade de desenvolvedores Debian — e o principal destes motivos é o fato de que todo o trabalho da comunidade pode ser 100% auditado, por qualquer pessoa.
Não dá para dizer o mesmo de empresas que repassam código essencialmente proprietário — caso em que nunca sabemos realmente o que está sendo modificado em nosso sistema.

Aplicar atualizações com frequência é prática importante para manter nossos sistemas seguros.

Como comportamento padrão, o Debian pede para que o administrador do sistema faça as atualizações ou as autorize manualmente.
Mas você pode optar pelo download e instalação automáticos dos updates de segurança mais importantes.

A instalação

O nome do pacote a ser instalado é ‘unattended-upgrades’.
Ele sugere a instalação dos pacotes ‘bsd-mailx’ – para enviar email, informando o adm de que houve uma atualização de segurança – e ‘needrestart’, que verifica junto aos daemons do seu sistema quais precisam ser reiniciados.
Opcionalmente, também podemos instalar o ‘apt-listchanges’ que, neste caso, atua como um plugin — que compara as versões instaladas dos pacotes às novas, lendo os changelogs e os news fles.
Veja como instalá-los:


sudo apt install unattended-upgrades apt-listchanges bsd-mailx needrestart

Configuração

Para poder receber mensagens via email, é necessário alterar o arquivo de configuração ’50unattended-upgrades’. Use o seu editor favorito para isso:


sudo editor /etc/apt/apt.conf.d/50unattended-upgrades 

Descomente a linha abaixo, removendo os ‘//’:


//Unattended-Upgrade::Mail "root";

Se deixar, do jeito que está, as mensagens serão encaminhadas ao root. Mas você pode inserir uma conta de email no lugar da string “root” (entre as aspas).
A seguir, apenas verifique se o arquivo ’20auto-upgrades’ bate com o conteúdo abaixo:


cat /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Você pode configurar o arquivo ’20auto-upgrades’ adequadamente com a seguinte linha de comando:


sudo dpkg-reconfigure -plow unattended-upgrades

Replacing config file /etc/apt/apt.conf.d/20auto-upgrades with new version

captura de tela debian unattended upgrades

captura de tela debian unattended upgrades

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://www.cyberciti.biz/faq/how-to-keep-debian-linux-patched-with-latest-security-updates-automatically/.

Use este emulador de compilação para fingir que está trabalhando duro.

De vez em quando precisamos de uma boa pausa para tomar um café e relaxar, antes de encarar os verdadeiros problemas do trabalho.
Com este script, em Bash, fica fácil deixar um terminal na tela do seu computador rodando “um monte de código desconexo” — que vai fazer os outros pensarem que você está “compilando alguma coisa muito importante”.
Este script pode ajudar a ganhar algum tempo precioso para você e (eu espero) tirar o chefe da sua cola por alguns minutos (mas não exagere…) 😉

Em outras palavras, o script vai te ajudar a “enrolar” no trabalho.

O que você precisa para rodar este script

O script mostra uma saída semelhante ao que você veria ao compilar um código em Python.
Ele é feito em Bash script e, portanto, você precisa ter suporte a esta linguagem — e não a Python.
Qualquer máquina Linux tem suporte a Bash.
Se você usa outro sistema operacional, baixe o suporte a Bash shell scripting aonde achar melhor e, depois, volte aqui (se quiser, claro).
elias praciano wallpaper and script

Como montar o emulador de compilação

Abra um editor de textos simples (eu usei o Nano).
Copie e cole o script dentro do editor, salve e vá para a linha de comando.
No terminal, rode o script:


bash ./emucomp.sh

Eu preferi gravar o meu script com o nome de emucomp.sh.
Se quiser, pode teclar F11 para deixar a execução em tela cheia — para evidenciar ainda mais que o PC ou laptop está ocupado com uma “tarefa importante”.

O script que emula a compilação de um código

Sugiro digitar na íntegra o código e, depois sair caçando os eventuais erros de digitação, se você tiver interesse em adquirir mais intimidade com programação.
Se esta não for a sua intenção, tá tudo ok em apenas copiar e colar o código.

#!/bin/bash
collect()
{
    while read line;do
        if [ -d "$line" ];then
            (for i in "$line"/*;do echo $i;done)|sort -R|collect
            echo $line
        elif [[ "$line" == *".h" ]];then
            echo $line
        fi
    done
}

sse="$(awk '/flags/{print;exit}' </proc/cpuinfo|grep -o 'sse\S*'|sed 's/^/-m/'|xargs)"

flags=""
pd="\\"

while true;do
    collect <<< /usr/include|cut -d/ -f4-|
    (
        while read line;do
            if [ "$(dirname "$line")" != "$pd" ];then
                x=$((RANDOM%8-3))
                if [[ "$x" != "-"* ]];then
                    ssef="$(sed 's/\( *\S\S*\)\{'"$x,$x"'\}$//' <<< "$sse")"
                fi
                pd="$(dirname "$line")"
                opt="-O$((RANDOM%4))"
                if [[ "$((RANDOM%2))" == 0 ]];then
                    pipe=-pipe
                fi
                case $((RANDOM%4)) in
                    0) arch=-m32;;
                    1) arch="";;
                    *) arch=-m64;;
                esac
                if [[ "$((RANDOM%3))" == 0 ]];then
                    gnu="-D_GNU_SOURCE=1 -D_REENTRANT -D_POSIX_C_SOURCE=200112L "
                fi
                flags="gcc -w $(xargs -n1 <<< "opt pipe gnu ssef arch"|sort -R|(while read line;do eval echo \$$line;done))"
            fi
            if [ -d "/usr/include/$line" ];then
                echo $flags -shared $(for i in /usr/include/$line/*.h;do cut -d/ -f4- <<< "$i"|sed 's/h$/o/';done) -o "$line"".so"
                sleep $((RANDOM%2+1))
            else
                line=$(sed 's/h$//' <<< "$line")
                echo $flags -c $line"c" -o $line"o"
                sleep 0.$((RANDOM%4))
            fi
        done
    )
done

Se preferir, torne o arquivo executável, para ficar mais fácil rodá-lo na linha de comando:


chmod +x emucomp.sh
./emucomp.sh

O código original deste script foi retirado deste site: https://codegolf.stackexchange.com/questions/30322/make-it-look-like-im-working.
O script usa informações sobre o próprio sistema para dar mais veracidade ao texto exibido. Como ele é projetado para não terminar nunca, você terá que teclar Ctrl + C, quando quiser que ele pare.

7 lojas alternativas de onde você pode baixar milhares de apps para seu dispositivo Android

A Google Play Store é muito boa e recheada de opções de softwares incríveis.
Infelizmente, nem todos os desenvolvedores têm produtos que se encaixam dentro das regras do Google para expor na vitrine oficial da empresa.
Além disto, tanto a lojinha do Google quanto a da Apple (neste caso, ainda tem) já tiveram restrições à softwares livres, sob a licença GPL.
repositório loja android jogos apkpure
Por outro lado, algumas das lojas ou repositórios de softwares de que vamos falar neste artigo, têm restrições talvez até mais rígidas que as da Apple ou do Google para permitir a distribuição de apps. Por exemplo, não aceitar softwares com DRM — que traz sérios riscos de segurança aos clientes.

O problema das grandes lojas não é com o software livre per se. Mas com o fato de que a licença GPL não lhes permite adicionar mais restrições aos usuários.

Não se esqueça que é necessário liberar a instalação de APKs externos no seu smartphone antes de poder instalar qualquer coisa.

É seguro baixar apps de repositórios ou lojas alternativas?

A segurança é sempre relativa e eu não afirmo que é seguro baixar software de lugar algum.
Quando uma grande distribuidora de apps admite a presença de DRM ou, mesmo, softwares proprietários (não-livres) em seus repositórios, fica difícil alegar segurança.
A única maneira de saber se um software é seguro ou não para você, é analisar ou auditar seu código fonte — o que só pode ser feito em apps com licenças de código aberto ou livre.
Softwares proprietários não podem ser auditados.
Se você não vai perscrutar o código de um programa que adquiriu, então terá que confiar cegamente nas pessoas/empresas que o forneceram.

Em resumo, o problema da segurança (ou da falta dela) não está na loja ou no repositório de softwares — mas na possibilidade que você tem ou não de fazer auditorias nos apps que adquire.

Para usuários comuns esta questão pode ser trivial.
Empresários ou gestores de TI, contudo, só deveriam permitir a aquisição de softwares 100% auditáveis, contudo.
Poderíamos nos estender mais sobre o assunto, mas precisamos falar das outras lojinhas…
captura de tela loja repositorio

As grandes lojas de apps do mercado

Entre as grandes lojas do mercado, dá para citar algumas que você certamente, já conhece.
Ao comprar um smartphone ou tablet novo, você provavelmente se deparou com o ícone da lojinha oficial do seu fabricante e, diferente, do Play Store ou da App Store, comumente só são acessíveis através do próprio dispositivo com o app exclusivo. Ou seja, não dá para chegar lá pela web.

  • Samsung Galaxy Apps — loja voltada para todo o universo de aparelhos vendidos pela Samsung, o que inclui smartphones, smartTVs etc.
  • Lenovo/Motorola — na linha de celulares Moto G, o App Box substitui o repositório de apps nacionais (brasileiros), o BR Apps. Nele é possível encontrar muita coisa voltada para a realidade brasileira, especificamente.
  • Amazon — possui sua loja, que vai além de apenas livros digitais, filmes e músicas.

Como você já deve imaginar, LG, Philco e quase todas as outras marcas também têm seus repositórios de softwares para atender a seus clientes.
Além disto as lojas não atendem apenas a quem tem aparelhos com o sistema operacional Android — se estendem a usuários do Windows, WebOS, Bada etc.
O foco deste artigo, contudo, são lojas ou repositórios de apps Android.
Vamos conhecer algumas…

Repositório de apps F-Droid

O foco específico do F-Droid é fornecer softwares de código aberto ou livre, para a plataforma Android.
Os aplicativos são exibidos de maneira bem organizada e é possível fazer buscas dentro do repositório por softwares do seu interesse.
É possível encontrar uma enorme coletânea de apps que obedecem a exigências de não rastrear seus usuários, não exibir propagandas e não requerer dependências.
f-droid logo
A gente conta mais sobre ele e ensina como instalar neste artigo, aqui.
Com certeza vale instalar e conhecer melhor.

AppsLib

A biblioteca de aplicativos AppsLib, conta com aproximadamente 40 mil títulos. Muitos destes mantém seu foco nos clientes que possuem tablets Android.
appslib
Boa parte dos softwares desta loja online não se encaixa nos termos do Google Play Store.
Conheça a loja neste link: http://appslib.com/download,

APKPure

O APK Pure tem uma enorme coletânea de apps para Android — a grande quantidade de jogos é um dos destaques.
apkpure captura de tela web
Segue o link para o site APKPure: https://apkpure.com/apkpure-app.html

MoboGenie

Esta alternativa é interessante, entre outras coisas, por que oferece uma grande coleção de apps curados — de certa, forma selecionados para cada usuário.
O Mobogenie tem um mecanismo inteligente de recomendação de apps, que analisa suas preferências e é capaz (alegadamente) de fazer sugestões pertinentes.
captura de tela web mobogenie
Além de loja de apps, o Mobogenie oferece outros serviços:

  • Sistema de gestão de seus arquivos locais.
  • Permite baixar conteúdo, como papéis de parede, ringtones, livros e vídeos do youtube.

Você vai encontrar muitos apps que também estão presentes na Play Store — é interesse dos desenvolvedores divulgar e colocar seu trabalho a mostra em todos os lugares possíveis.
Uma surpresa agradável é ver que a interface foi traduzida para o português, o que pode ajudar você a selecionar melhor o que quer instalar.
Site do Mobogenie em português: http://www.mobogenie.com/pt/.

Conheça o Itch.io

Como mercado de games, que usa a plataforma web, oferece um espaço muito apreciado por desenvolvedores de jogos independentes (ou indie game developers).
captura de tela itch.io
Há uma área do site destinada exclusivamente a clientes Android, que facilita a aquisição de aplicativos para esta plataforma.
Use os filtros e a caixa de busca para encontrar mais rápido os tipos de games que você deseja obter.
Segue o site, para você conhecer: https://itch.io/.

O Slide Me tem tradição online

Trata-se de um dos mais antigos serviços de distribuição e venda de apps online — é anterior à Play Store, inclusive.
screenshot slide me
Tem maior flexibilidade de pagamentos e um grande acervo.
Visite o site: http://slideme.org.

GetJAR

Disponibiliza uma vasta gama de apps para downloads (pagos e gratuitos).
Fácil de fazer buscar ou de filtrar resultados. Infelizmente ou felizmente, muito do que se encontra aqui, também se encontra na Play Store.
getjar screenshot web
Se você tem algum celular mais antigo (com sistema operacional Symbian, por exemplo), este é o lugar para encontrar apps feitos em Java, para rodar no seu aparelho.
Conheça o site: https://www.getjar.com/mobile-apps/.

Mobile9

Junto com o Slide Me e o GetJar, o Mobile9 está há um bom tempo no mercado, oferecendo opções de papéis de parede, ringtones, apps para as mais diversas plataformas etc.
screenshot mobile9 site web
Atualmente, foi construída uma rede social em torno do site, de forma que se cadastrar nele e baixar o app da lojinha pode trazer uma boa fonte de entretenimento.
Não perca este site: www.mobile9.com.

Mobango, a força da Índia

Os apps não são necessariamente da Índia, apesar da reconhecida qualidade dos programadores daquele país.
mobango screenshot site web
Ele se destaca pelo grande acervo de jogos, separados por categoria (collections) e vídeos gratuitos para download.
O site é este: www.mobango.com.

Opera Mobile Store não é só para quem tem navegador Opera

A loja do Opera atende a, pelo menos, 7 plataformas — o que inclui o Android, com certeza.
screenshot opera10
Quem usa o navegador Opera dispõe das vitrines da loja de dentro do próprio aplicativo, claro.
Quem usa outros navegadores, pode acessar a loja pelo site: http://android.oms.apps.opera.com/en_br/

Referências

https://forums.developer.apple.com/thread/18922.
https://theappsolutions.com/blog/marketing/alternative-android-app-stores/.
https://www.androidpit.com/best-google-play-store-alternative-app-stores.

Como instalar o Unity 3D Editor 5.6 beta game engine para Linux

A versão do Unity 3D Game Engine Editor pra Linux pode ser instalada em várias distribuições. Vários sites têm feito reviews e mostrado como instalar este framework.
Já escrevemos sobre o processo de instalação neste post — sugiro dar uma olhada, caso tenha alguma dúvida.
Atualmente, o Unity 3D está mais maduro e, se você ainda não o experimentou, vale a pena dar uma chance ao software.
O processo de download e instalação está super fácil e pode ser realizado em poucos passos.
Neste post, vou mostrar como fazer a instalação no Debian/Ubuntu e em outras distribuições (como Fedora, openSUSE etc.)

Baixe e instale o Unity 3D Editor no Debian ou Ubuntu

Os exemplos dados neste texto foram executados no KDE Neon 5.9 — baseado no Ubuntu 16.04 LTS “Xenial Xerus”.
Baixe o pacote .deb de instalação do Unity 3D Editor 5.6.0b8 beta, diretamente no site http://beta.unity3d.com/download/1da4c632c3f6/public_download.html.
Ou use o comando wget:

 wget http://beta.unity3d.com/download/1da4c632c3f6/unity-editor_amd64-5.6.0xb8Linux.deb

Feito o download,
verifique o md5sum:

 md5sum unity-editor_amd64-5.6.0xb8Linux.deb

6ab683eb7da634a613d97b6fdcad4ef5  unity-editor_amd64-5.6.0xb8Linux.deb

Se tudo estiver ok, até agora, proceda com a instalação do pacote:

 sudo dpkg --install unity-editor_amd64-5.6.0xb8Linux.deb

Como fazer a instalação em outras distribuições Linux

Na mesma página, dada anteriormente, faça download do script platform-agnostic ou use o comando wget:

 wget http://beta.unity3d.com/download/1da4c632c3f6/unity-editor-installer-5.6.0xb8Linux.sh

Teste o md5:

 md5sum unity-editor-installer-5.6.0xb8Linux.sh

Em seguida, torne o script executável e rode-o:

 chmod aug+x unity-editor-installer-5.6.0xb8Linux.sh

# ... e rode o script abaixo com privilégios administrativos:

 ./unity-editor-installer-5.6.0xb8Linux.sh

Pronto. Agora já é possível executar o Unity 3D Editor da linha de comando, do dash ou do menu da sua distribuição…

/opt/Unity/Editor/Unity


Antes de usar, caso você ainda não tenha cadastro com a empresa que desenvolve o aplicativo, terá que fazer um breve cadastro.
unity editor

Referências

Sugiro dar uma olhada no forum unity3d para verificar se não há uma versão mais atual, ao final da página:
https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/?_ga=1.161269565.1226268089.1487593352.

Instale a biblioteca pygame para Python no Linux via pip

A biblioteca pygame, é uma das várias feitas para tornar mais fácil o desenvolvimento de jogos — dos mais simples aos mais complexos — em Python, para desenvolvedores profissionais ou amadores.
O procedimento, que segue, pode ser realizado no Windows e em qualquer distro Linux, apesar do título — o fato é que só testei no Linux (Debian 9, para ser mais específico).
Devo acrescentar que os exemplos usam o Python 3 — mas é fácil adequá-los ao Python 2, se esta for a sua opção.
Há várias maneiras de instalar a biblioteca no seu sistema. Esta é uma das mais simplificadas e, por isto, vale a pena dar-lhe uma chance.
O texto pressupõe que você já tenha o pip instalado. Se não tiver, veja como fazer isso aqui (é fácil).
python pygames development logo
Não esqueça de realizar o procedimento de instalação com privilégios administrativos:


pip3 install pygame

Collecting pygame
  Downloading pygame-1.9.2-cp35-cp35m-manylinux1_x86_64.whl (9.4MB)
    100% |████████████████████████████████| 9.4MB 147kB/s 
Installing collected packages: pygame
Successfully installed pygame-1.9.2

Se tiver curiosidade, Leia mais sobre por que há mais de uma versão do Python, instalada no Linux.

Como testar se a biblioteca pygame está instalada e funcionando

Abra um editor de textos, copie e cole o seguinte código:


import pygame, sys
from pygame.locals import *

pygame.init()

DISPLAYSURF=pygame.display.set_mode((400,300))
pygame.display.set_caption("Hello World!")
while True: #principal loop
    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()
        pygame.display.update()

Grave-o com o nome ‘pygteste.py’ — ou qualquer outro nome que você achar melhor.
Em seguida, rode o código com o interpretador Python3:


python3 pygteste.py

Se uma janela preta, com nada dentro, aparecer, o programa funcionou bem. Parabéns!
python hello world pygame