[LAB] Fazendo o Primeiro Boot do Sistema

ApĆ³s gravar a imagem completa do SD card, abra o arquivo config.txt.

Uma forma fĆ”cil de fazer a gravaĆ§Ć£o atravĆ©s do Ubuntu Ć© dar um duplo clique no sdcard.img e selecionar a opĆ§Ć£o de restaurar a imagem em um disco. Desta forma, jĆ” serĆ” aberto o aplicativo de manipulaĆ§Ć£o de discos do prĆ³prio Ubuntu e basta seguir o processo.

Este arquivo esta presente na partiĆ§Ć£o boot e faƧa as seguintes alteraƧƵes:

[...]
#fixes rpi3 ttyAMA0 serial console
#dtoverlay=pi3-miniuart-bt
enable_uart=1

isso habilitarƔ o boot via serial (conforme explicado nas seƧƵes anteriores). Ao carregar seu sistema pela primeira vez, serƔ necessƔrio realizar algumas configuraƧƵes bƔsicas para ativar o servidor SSH e criar uma nova conta de usuƔrio, por exemplo.

Criando uma senha de root e nova conta de usuƔrio

De acordo com a configuraĆ§Ć£o realizada no Buildroot, somente o usuĆ”rio root foi criado no sistema. Na tela de login, entre como root e senha em branco. Note que o conteĆŗdo da mensagem de boas vindas serĆ” exibido de acordo com sua configuraĆ§Ć£o no Buildroot:

Welcome to DSLE20
dsle20 login: root
#

ApĆ³s logar no sistema, crie os diretĆ³rios /home e /boot. Em seguida adicione um segundo usuĆ”rio no sistema:

mkdir /home
mkdir /boot
adduser -h /home/gbs gbs

Nota: substitua o nome gbs pelo nome/nick de seu usuƔrio desejado. SerƔ necessƔrio definir uma nova senha para o usuƔrio. Aproveite e defina tambƩm uma senha para o root:

Changing password for gbs
New password:
Bad password: too weak
Retype password:
passwd: password for gbs changed by root

Feito isso, altere o arquivo /etc/sudoers para dar permissƵes de root ao seu usuƔrio por meio do comando sudo. Encontre as linhas referentes a permissƵes de usuƔrio dos grupos wheel e sudo e remova seus respectivos comentƔrios:

nano /etc/sudoers
[...]
## Uncomment to allow members of group wheel to execute any command## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

[...]
## Uncomment to allow members of group sudo to execute any command
%sudo ALL=(ALL) ALL

[...]

Em seguida, crie o grupo sudo e adicione seu usuƔrio nos grupos dialout, root, sudo e wheel:

 addgroup sudo
 nano /etc/group
root :x:0:gbs
[...]
wheel:x:10:root, gbs
[...]
dialout :x:18:gbs
[...]
sudo:x:1003:gbs

Nota: Ʃ possƭvel utilizar esse arquivo para adicionar usuƔrios em qualquer grupo do sistema. Basta encontrar o grupo desejado e adicionar o usuƔrio no final da linha.

Caso jƔ exista algum usuƔrio definido naquele grupo (como no caso do grupo wheel acima, adicione uma vƭrgula, espaƧo e o novo usuƔrio).

Configurando um EndereƧo IP estƔtico

Para configurar um IP estƔtico no novo sistema, edite o arquivo /etc/network/interfaces da seguinte maneira:

nano /etc/network/interfaces
[...]
auto eth0
iface eth0 inet static
    address 10.1.1.100
    netmask 255.255.255.0
    gateway 10.1.1.1
    pre-up /etc/network/nfs_check
    wait-delay 15
[...]

Habilitando o SSH

Inicialmente, altere as configuraƧƵes do arquivo/etc/ssh/sshd_config:

nano /etc/ssh/sshd_config
[...]
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
[...]
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords yes
[...]

As configuraƧƵes acima permitem

  • Logar como root via SSH;

  • Possibilita logar atravĆ©s de login e senha (caso contrĆ”rio somente com chaves pĆŗblicas);

  • Permite logar somente com login, sem a necessidade de digitar a senha. Este Ćŗltimo serĆ” Ćŗtil para copiar automaticamente o binĆ”rio do seu programa pelo comando scp sem precisar digitar a senha.

Em seguida, altere o arquivo /etc/shadow. Este arquivo Ʃ responsƔvel por armazenar informaƧƵes seguras de contas de usuƔrio.

Os campos sĆ£o separados por ":". O primeiro campo representa o nome de usuĆ”rio, o segundo representa a senha de usuĆ”rio encriptada e o terceiro, que devemos alterar, representa o nĆŗmero de dias que se passaram, desde a Ćŗltima alteraĆ§Ć£o de senha para a respectiva conta de usuĆ”rio. Ɖ necessĆ”rio alterar esse campo de 0 para um nĆŗmero qualquer (10 por exemplo) para que tal usuĆ”rio possa logar na RPi via SSH:

nano /etc/shadow
root :$1$8N/irElt$uJ8THhDt.c2plt8cU336j/:10:0:99999:7:::
[...]
gbs:$1$cmF9.YCp$ATeyqkHK..4sDEq9jkbq71:10:0:99999:7:::

Para maiores informaƧƵes sobre o arquivo shadow: https://www.cyberciti.biz/faq/understanding-etcshadow-file/.

Reinicie o sistema e teste o SSH, tanto com root quanto seu usuĆ”rio. Caso apareƧa alguma mensagem de warning relacionada Ć  mudanƧa de identificaĆ§Ć£o de Host, apague o arquivo āˆ¼/.ssh/known_hosts:

reboot
ssh root@10.1.1.100
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
[...]
rm ~/.ssh/known_hosts

ApĆ³s remover o arquivo, serĆ” pedido a autorizaĆ§Ć£o para gerar uma nova key para o IP 10.1.1.100. Digite yes e prossiga com o login.

Last updated