quinta-feira, 25 de janeiro de 2024

Desabilitar o wpa_supplicant no Ubuntu

wpa_supplicant é uma implementação de software livre de um programa de acesso Wi-Fi (IEEE 802.11i) para Linux. Ele também implementa a série de protocolos de segurança WPA bem como outros  protocolos de segurança de rede sem fio mais antigos.

Contudo, o seu computador (e principalmente servidor) não tenha uma placa de rede sem fio, mas o Ubuntu inicia este processo automaticamente. Abaixo você pode ver um exemplo que lista o processo rodando.
 

$ ps ax | grep wpa_supplicant | grep -v grep

10806 ?        Ss     6:11 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

No Ubuntu (20.04/22.04), você pode desabilitar o wpa_supplicant usando os dois comandos abaixo:
$ sudo systemctl stop wpa_supplicant
$ sudo systemctl disable wpa_supplicant

O primeiro comando para o processo enquanto o segundo impede que o processo inicie automaticamente durante a inicialização do Ubuntu.

sexta-feira, 22 de setembro de 2023

Como instalar o docker e o docker-composer no Ubuntu 20.04

Para realizar o processo de instalação no Ubuntu 20.04, devemos executar as seguintes etapas para instalar o Docker e o Docker Compose.

Começe atualizando o índice de pacote de apt e instalando alguns pacotes básicos:


sudo apt -y update

sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common


A seguir precisaremos adicionar a chave GPG do docker no sistema.

Utilizamos o seguinte comando curl para fazer o download a chave e a seguir fazemos o registro do repositório Docker na lista de fontes do apt:


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"


Faça novamente o update do índice de pacotes:

sudo apt -y update


Instalar o Docker

E agora podemos começar a instalação do docker.

sudo apt-get install -y docker-ce docker-ce-cli containerd.io


Vamos habilitar nosso usuário a executar comandos docker sem a necessidade de realizar `sudo`:

sudo usermod -aG docker $USER
newgrp docker

Para testar o funcionamento do docker, utilizamos o comando abaixo que carrega um container da internet que mostra uma mensagem informativa.

docker run hello-world



Note que o comando acima está sem `sudo`. Lembre-se que se você pulou os 2 passos com `usermod` e `newgrp`, o comando não será executado sem sudo em função de falta de permissão.

Troubleshooting # 1

Se você recebeu uma mensagem de erro similar a:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied


Tente alterar a seguinte permissão: 

sudo chmod 666 /var/run/docker.sock



Instalar o docker compose

Para instalar o Docker Compose, basta baixar o binário diretamente do repositório mantido pelo Docker no github usando o comando abaixo. Você precisa ativar a permissão de execução deste arquivo.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

PS: Você pode ver todos os binários disponíveis na página de Releases do repositório do docker.


Confirme que o applicativo Docker Compose está funcionando, solicitando sua versão:

docker-compose --version


terça-feira, 27 de junho de 2023

Como parar e desabilitar o resolvedor DNS stub

Se você está tendo problemas com um resolvedor de DNS stub ("stub DNS resolver") no seu computador com Ubuntu, explicamos neste post como lidar com esse problema. Este problema decorre do uso do stub, porém pode ser que você não precise dele, pois tem outro serviço DNS instalado.

Ao listar o conteudo de /etc/resolv/conf, você deve ter notado que seu servidor DNS está definido como 127.0.0.53. O problema é que, às vezes, ao executar serviços locais, por exemplo apt, o DNS stub será o primeiro a responder, quando queremos que a resposta seja fornecida pelo servidor DNS real (interno ou externo).

Para resolver este problema, basicamente desativamos este serviço, que no meu caso é desnecessário:

sudo service systemd-resolved disable
sudo service systemd-resolved stop

Uma alternativa para os comandos acima é:

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved

Você pode precisar ainda alterar as configurações do NetworkManager. Abra o /etc/NetworkManager/NetworkManager.conf e localize a seção [main]. Você vai acrescentar (ou alterar) a linha:

dns=default


Depois de desativar o serviço, pode ser que seu computador pare de acessar a internet. Teste usando:

ping www.google.com

A mensagem de erro é algo semelhante com a linha mostrada abaixo:

ping: www.google.com: Falha temporária na resolução de nomes

Pode ser que você precise remover o link antigo do arquivo /etc/resolv.conf com

rm /etc/resolv.conf


Agora você pode editar /etc/resolv.conf e adicionar seus próprios servidores de nomes nele. Se o arquivo não for gravável ou não existir, você mesmo poderá adicioná-lo.

Edite o arquivo:

vi /etc/resolv.conf

e adicione uma linha semelhante a abaixo, porém trocando o endereço IP para o seu servidor de DNS.

nameserver 8.8.8.8  # DNS do google
options edns0 trust-ad

Você pode ter vários nameserver relacionados. Mais informações podem ser encontradas na página de ajuda deste arquivo.


Por fim, pode ser necessário reiniciar o NetworkManager com os comandos (um dos dois):

sudo service network-manager restart
sudo systemctl restart NetworkManager.service



quarta-feira, 10 de maio de 2023

Resetar permissões no Windows

Para redefinir as permissões NTFS no Windows 10 ou 11, faça o seguinte:


1- Abra um prompt de comando com permissão de administrador



2- Execute o seguinte comando para redefinir as permissões: 

a) para um arquivo

icacls "caminho completo para seu arquivo" /reset

b) para uma pasta:
icacls "caminho completo para a pasta" /reset

c) para uma pasta, seus arquivos e subpastas:
icacls "caminho completo para a pasta" /reset /t /c /l


Substitua os caminhos de exemplo pelos valores reais correspondentes ao seu sistema.



terça-feira, 24 de janeiro de 2023

Alterar o tamanho do arquivo de swap no Ubuntu

Swap é um área de armazenamento no seu disco rígido que pode ser usado como RAM adicional. 

Esta área pode ser uma partição especial ou um arquivo no sistema de arquivos.

Se você quiser alterar o tamanho do seu arquivo de troca (ou swap) basta seguir os seguintes passos:

  1. Desligue todos os processos de troca em execução usando:
    swapoff -a

  2. Redimensionar o arquivo utilizando (mude 64G para o tamanho em gigabytes que você deseja):
    swap fallocate -l 64G /swapfile

    Note que estamos utilizado o arquivo swapfile na raiz do sistema de arquivos.

  3. Trocar as permissões do arquivo:
    chmod 600 /swapfile

  4. Tornar o arquivo utilizável como swap:
    mkswap /swapfile

  5. Ative o arquivo de troca:
    swapon /swapfile

Todas as operações acima devem ser realizadas como "root" ou você precisar acrescentar o comando sudo antes de executar cada uma das linhas.

Alguns comandos podem demorar um pouco para serem executados, basta aguardar que os comandos terminem.

Pronto!


Para verificar o tamanho da troca, execute o seguinte comando e você verá o tamanho da troca:

free -m -h

O resultado é algo similar ao mostrado abaixo:

lab@lab-XPS-15-7590:~$ free -h -m
              total        used        free      shared  buff/cache   available
Mem:           15Gi       575Mi        14Gi        35Mi       369Mi        14Gi
Swap:          63Gi       1,1Gi        62Gi


sábado, 25 de setembro de 2021

Como evitar que o apt faça update de pacotes de kernel

A ideia é que em alguns casos eu gostaria de fazer atualizações de kernel manualmente, em vez de ter atualizações automaticas via apt contudo deixando as demais atualizações de sistema funcionando automaticamente. Por exemplo, em um servidor, que tem um kernel específico.

Neste post vamos colocar duas opções que podem ser feitas por meio da CLI, imaginando que não temos acesso a nenhum GUI.

A primeira opção consiste em acrescentar os pacotes que desejamos excluir da atualização ao arquivo de configuração 50unattended-upgrades. Edite portanto /etc/apt/apt.conf.d/50unattended-upgrades. Abra o arquivo e localize a seção onde é definida a lista negra (blacklist). Edite a seção para incluir os pacotes desejados. Note que você pode adicionar até mesmo uma expressão regex para fazer o match.

// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
        "linux-generic";
        "linux-image-generic";
        "linux-headers-generic";
};

Note que no nosso caso não precisamos de colocar regex. Os pacotes indicados acima são metapacotes que representam todas as versões.


A segunda opção (mais fácil) é utilizar o comando:

sudo apt-mark hold linux-image-generic linux-headers-generic

Isso conterá a atualização dos meta pacotes pelo apt. Desta forma a atualição não baixará os pacotes de kernel que surjam no repositório.

sexta-feira, 17 de setembro de 2021

Instalar X server no WSL do Windows 10

Existem duas formas básicas de instalação.

A primeira é a instalação do client X11. Isto permite que você consiga acessar as aplicações X de outros computadores. A segunda é a instalação do servidor X11, que permite que você rode localmente no seu computador, aplicações X windows, como por exemplo o GIMP.

Instalação do cliente X

Para fazer isso, instale o pacote xauth, então instale os aplicativos que você precisa. O apt buscará e instalará os outros pacotes conforme necessário para satisfazer as dependências.

sudo apt install xauth


Instalação do servidor X 

Para instalar um X11 mínimo no Ubuntu dentro do WSL2 do Windows 10, entre no terminal do seu ubuntu do WSL2 e digite o seguinte:

sudo apt install xorg openbox

O apt irá instalar todos os aplicativos e suas dependências.

Finalmente

Edite o arquivo ~/.bashrc e acrescente (se não tiver):

export DISPLAY=:0.0

Você precisará sair e entrar novamente no terminal para esta alteração ficar ativa. 


No Windows você precisar instalar um XServer para que as aplicações do linux sejam renderizadas no Windows. Minha sugestão é instalar o XMing Server que pode ser baixado aqui. O XMing precisá estar rodando para as aplicações X do ubuntu rodarem.


Transforme seu Raspberry Pi em um Servidor de Desenvolvimento Completo (Debian 13 Trixie, ARM64)

  O Raspberry Pi evoluiu muito desde seus primeiros dias como uma placa para experimentos. Hoje, com o Debian 13 (Trixie) rodando em ARM64, ...