Minicurso de GNU/Linux Aula 04 - rra.etc.br · Modo interativo: # adduser ... varias questões Modo...

27
Rudson Ribeiro Alves Mestre em Física (Semi-Condutores) Usuário Unix de 1991-1998 Usuário Slackware deste 1994 Professor da UVV deste 1998 Noções básicas sobre GNU/Linux Plataforma Debian Mini-curso de GNU/Linux Aula 04

Transcript of Minicurso de GNU/Linux Aula 04 - rra.etc.br · Modo interativo: # adduser ... varias questões Modo...

Rudson Ribeiro AlvesMestre em Física (Semi­Condutores)Usuário Unix de 1991­1998Usuário Slackware deste 1994Professor da UVV deste 1998

Noções básicas sobre GNU/Linux Plataforma Debian

Mini­curso de GNU/LinuxAula 04

2

Cronograma 2/2

Script ShellAdministração do Sistema

Criação de contas e gruposRunlevelsLogs do sistemaInstalação de programas

RedesConfiguraçãoServidores: ssh, ftp e httpConfigurando Clientes: NIS e NFS

3

Shell Script

Apresentação: “Um passeio pelo Shell Script”ENCASOFT: 2006-1

4

Criando uma Conta

Pelo Shell:

Modo interativo: # adduser <nome_do_usuário>

... varias questões

Modo não interativo: # useraddusage: useradd [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] name

“adduser” é um Script Shell que invoca o comando “useradd” para criar um usuário no sistema.

# less $(which adduser)

5

Criando uma Conta

Método gráfico:Existem várias GUIs para o useradd nos sistemas GNU/Linux. As mais utilizadas:

KDE: kuser (geralmente em System->KUser

6

Criando uma Conta

No Gnome:

7

Arquivos de controle de Contas

/etc/passwdEste arquivo armazena as informações das contas dos usuários. Por questões de segurança, sua função mais básica (armazenar as senhas dos usuários) foi substituído pelo shadow, na maioria das distribuições.

Exite alguns arquivos importantes no gerenciamento de contas no GNU/Linux:

Uma linha típica do /etc/passwd tem a forma:

Ex: sandro:x:1003:100:Sandro Eliberto da Silva,,,:/home/sandro:/bin/bash

nome:senha:uid:gid:Informações:diretório_da_conta:Shell_padrão

8

Arquivos de controle de Contas

/etc/groupEste arquivo armazena os grupos do sistema e a interação entre estes grupos com outros grupos e usuários. A senha do grupo, geralmente é gerenciado pelo /etc/gshadow.

Ex:audio::17:rudson,daniela,gabriel,sandro

root::0:rootadm::4:root,adm,daemondaemon::2:root,bin,daemon

nome_do_grupo:senha:group-id:lista_de_usuários (separados por vírgula)

9

Arquivos de controle de Contas

/etc/shadowEste arquivo armazena as senhas criptografadas

Ex:sandro:$1$5Gy0o6u3$rwWDYIhR5c28Z1cGhZF3u/:13804:0:99999:7::13872:

Para remover uma senha de um usuário, basta substituir a senha criptografada ($1$5Gy0o6u3$rwWDYIhR5c28Z1cGhZF3u/, no exemplo acima) por um “x”.

nome_do_usuário:senha_criptografada:outras_informações:::::::

/etc/gshadowEste arquivo armazena as senhas criptografadas para os grupos.

10

Runlevels

Nível de execução do sistema:

No Linux e outros sistemas baseados no Unix o runlevel indica o modo de operação atual da máquina, definindo quais serviços e recursos devem permanecer ativos. O runlevel pode ser alterado a qualquer momento pelo root, através do comando telinit (# telinit 3, # telinit 5, etc.).

0: halt – desliga o sistema1: single user – geralmente usado para manutenção do sistema. A

rede e o ambiente gráfico é desabilitado, bom como vários outros servisos (ssh, ftp, ...).

2 a 5: multiuser – sistema no modo multi-usuário com todas as configurações ativas

6: reboot – reinicia o sistema.

11

Runlevels

Mudando o runlevel:

Comando “telinit”

# telinit <runlevel>

Ex:# telinit 1muda para o runlevel 1 (mono-usuário: manutenção)

Definindo o runlevel no boot:

O runlevel padrão é definido no arquivo /etc/inittab, na linha iniciada por “id:...”

Ex:id:4:initdefault:

12

Definindo runlevel

As definições sobre o runlevel estão todas no arquivo /etc/inittab.Ex:# Default runlevel. (Do not set to 0 or 6)id:4:initdefault:

# System initialization (runs when system boots).si:S:sysinit:/etc/rc.d/rc.S

# Script to run when going single user (runlevel 1).su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user.rc:2345:wait:/etc/rc.d/rc.M

# What to do at the "Three Finger Salute".ca::ctrlaltdel:/sbin/shutdown -t5 -r now

# System halt (CtrlaltEnd)kb::kbrequest:/sbin/shutdown -t5 -h now

# Runlevel 0 halts the system.l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.

l6:6:wait:/etc/rc.d/rc.6...

13

Iniciando e parando serviços

Os scripts de inicialização dos serviços do sistema estão localizados no diretório /etc/init.d.

Estes processo podem ser iniciados e parados passando o argumento “start” e “stop”.

Ex:# /etc/init.d/gdm stoppara o gerenciador de login gráfico gdm. Para reinicializá-lo basta usar a opção “start”# /etc/init.d/gdm start

Alguns processos podem ser reinicializados com a opção “restart”. Isto é bem útil quando se está alterando alguma configuração do sistema. Ex:# /etc/init.d/networking restartreinicia a rede.

14

Iniciando e parando serviços no boot

Os scripts podem ser habilitado e desabilitados alterando a permissão de execução:

# chmod -x bluetoothdesabilita o bluetooth para o próximo boot.

Para alterar os serviços que serão carregados em um runlevel específico, basta alterar os nomes dos serviços iniciando-os por um K (kill), ao invés do S (start), no diretório do runlevel desejado.

# ls /etc/rc4.d/README S20gpm@ S30gdm@S05vbesave@ S20hotkey-setup@ S89anacron@S10acpid@ S20makedev@ S89atd@S10sysklogd@ K20nvidia-kernel@ S89cron@S10xserver-xorg-input-wacom@ S20powernowd@ K98usplash@S11klogd@ S20rsync@ S99acpi-support@S12dbus@ S22consolekit@ S99laptop-mode@S12hal@ S23ntp@ S99rc.local@S19cupsys@ S24avahi-daemon@ S99rmnologin@S20apmd@ S24dhcdbd@S20apport@ K25bluetooth@

15

Logs do sistema

Os logs do sistema são armazenados no diretório /var/log:

# ls /var/log/Xorg.0.log btmp httpd/ packages/ setup/ wtmpXorg.0.log.old cron iptraf/ removed_packages/ spoolerXorg.1.log cups/ kdm.log removed_scripts/ syslogXorg.1.log.old debug lastlog sa/ uucp/Xorg.2.log dmesg maillog scripts/ vmware/acpid faillog messages secure vsftpd.log

Comando dmesg: apresenta mensagens de boot e sobre acesso a dispositivos solicitados ao kernel (/var/log/message).

# dmesgLinux version 2.6.22.6-r02 (root@khelben) (gcc version 4.1.2) #2 Fri Oct 19 18:$BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f800 (usable) BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000001fef0000 (usable)

16

Instalando programas

Nas distribuições Debian-like a instalação de aplicativos pode ser feita manualmente pelos aplicativos:

Apt-get/apt-cache

# apt-get updateatualiza informações dos pacotes. Deve ser feito regularmente.

# apt-get upgradeatualiza todo o sistema

# apt-get dist-upgradeatualiza a distribuição

# apt-get install [nome do pacote]instala um pacote

# apt-get remove [nome do pacote]remove o pacote

# apt-get –purge remove [nome do pacote]remove o pacote e seus arquivos de configuração

# apt-get source [nome do pacote]baixa as fontes do pacote

# apt-get –helpapresenta todas as opções do apt-get

# apt-cache search [nome do pacote]pesquisa pelo pacote

# apt-get moo

17

Instalando programas

Aptitude

# aptitude updateatualiza informações dos pacotes

# aptitude upgradeatualiza o sistema

# aptitude dist-upgradeatualiza a distribuição

# aptitude install [nome do pacote]instala um pacote

# aptitude remove [nome do pacote]remove o pacote

# aptitude [nome do pacote]pesquisa pelo pacote

18

Instalando programas

SynapticO Synaptic é um gerenciador gráfico de pacotes para o apt do Debian. Ele oferece as mesmas funções do utilitário de linha de comando apt-get, só que com uma interface amigável, baseada em Gtk+.

19

Configurando Rede

O GNU/Linux pode ter várias interfaces de rede com diferentes Ips. Alguns das interfaces suportadas são:

Loopback: loEthernet: eth0, eth1, ...Wi-Fi: wlan0, wlan1, wifi0, ...Token Ring: tr0, tr1, ...PPP: ppp0, ppp1, ...

Tradicionalmente endereços de IP são agrupados em classes:

IP addresses net mask lengthClass A 1.0.0.0 - 126.255.255.255 255.0.0.0 /8Class B 128.0.0.0 - 191.255.255.255 255.255.0.0 /16Class C 192.0.0.0 - 223.255.255.255 255.255.255.0 /24

Endereços fora destes intervalos são usado para propósitos especiais.

20

Configurando Rede

Alguns comandos úteis para a configuração de uma rede são:

modprobe: carregar módulo da placa de rededmesg: apresentar mensagens de inicialização do sistemalspci: listar dispositivos de redeipconfig: configura uma interface de rededhcpd ou dhclient: cliente dhcproute: manipula os roteamentos da rede/etc/resolv.conf: arquivos com os IPs dos servidores de nomes (DNS)hostname: define o nome da máquina e rede

Geralmente a rede é configurada com exito no momento da instalação do sistema. Mas pode acontecer de você necessitar fazer uma intervenção manual na configuração, como a adição de mais dispositivos de rede, novo roteamento, ...

21

Configurando Rede: Geral

1º Passo: Identificar os dispositivos de rede. Isto pode ser feito através do comando lspci (graficamente kinfocenter -> PCI)

# lspci | grep -i net03:02.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

2º Passo: Verificar o carregamento dos módulos dos dispositivos. Isto pode ser feito checando as mensagens de inicialização do sistema com o comando dmesg (graficamente pelo ksystemlog -> messages)

# dmesg | grep -i eth8139too Fast Ethernet driver 0.9.28eth0: RealTek RTL8139 at 0xe0820400, 00:0f:b0:6c:bb:6e, IRQ 10eth0: Identified 8139 chip type 'RTL-8100B/8139D'wlan0: ethernet device 00:90:4b:ac:98:9e using NDIS driver: bcmwl5, version: 0x3644101, NDIS version: 0x501, vendor: '', 14E4:4320:103C:12F8.5.confeth1: link downADDRCONF(NETDEV_UP): eth1: link is not ready

22

Configurando Rede: Geral

3º Passo: Carregar módulos de rede se necessário. Em alguns casos os módulos da placa de rede podem não ser carregados na inicialização, embora isto não seja muito comum.

Quando isto ocorre, o dmesg não apresentará nenhuma informação sobre a placa. A carga de um módulo de rede é feita pelo comando modprobe.

# modprobe 8139toocarrega o módulo da RealTek RTL8139

Se for necessário remover algum módulo utilize o comando rmmod (remove module)

# rmmod 8139tooremove o módulo da RealTek RTL8139 da memória.

4º Passo: Definir o nome da máquina e da rede. Este processo é feito pelo comando hostname. O Nome darede é automaticamente escrita no arquivo /etc/HOSTNAME ou /etc/hostname, dependendo da distribuição.

# hostnema arabel.forgottennomeia a máquina como “arabel” e a rede como “forgotten”

23

Configurando Rede: IP Fixo

5º Passo: Configurar um endereço de rede com o ifconfig. Configurar uma rede com o ifconfig é bem simples:

# ifconfig [disp]apresenta a configuração de rede para o dispositivo [disp]. Se [disp] for omitido, apresenta as configurações de todos os dispositivos carregados.

# ifconfig [disp] downabaixa (down) a rede do dispositivo [disp] (eth0, eth1, lo, ...)

# ifconfig [disp] [addr] netmask [mask] broadcast [addr] uplevanta a rede no dispositivo [disp] com o endereço [addr], máscara de rede [mask], broadcast [baddr].

# ifconfig wlan0wlan0 Link encap:Ethernet HWaddr 00:90:4B:AC:98:9E inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::290:4bff:feac:989e/64 Scope:Link ...

# ifconfig eth0 192.168.1.10

24

Configurando Rede: IP Fixo

6º Passo: Configurar o roteamento da rede. O roteamento é configurado pelo comando route:

# route [-n]apresenta a tabela de roteamento da rede.

# route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0adiciona o roteamente para a rede 192.168.1.0 através do dispositivo wlan0

# route del -net 192.168.1.0 netmask 255.255.255.0 dev wlan0remove o roteamente para a rede 192.168.1.0 através do dispositivo wlan0

# route add default gw 192.168.1.1define o gateway padrão como sendo 192.168.1.1

# route add -net 127.0.0.0 netmask 255.0.0.0 loadiciona o roteamente para o dispositivo loopback

# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0

25

Configurando Rede: IP Fixo

7º Passo: Configurar o DNS. Os Ips dos servidores de nomes ficam armazenados no arquivo /etc/resolv.conf. Os servidores de nomes devem ser adicionados em linhas iniciadas por “nameserver”, como segue abaixo:

# cat /etc/resolv.conf# Generated by dhcpcd for interface wlan0search forgottennameserver 201.30.255.6nameserver 200.255.125.211nameserver 200.19.74.21

26

Configurando Rede: DHCP

5º Passo: Configurar uma rede via dhcp é bem mais simples. Os passos de 1 a 4 são os mesmo anteriores. A configuração é feita chamando o comando “dhclient” como segue

# dhclient eth0Configurar a placa eth0 via dhcp. O dhclient configura o roteamento e DNS da rede.

27

Configurando Rede: via boot

Com exceção da alteração feita pelo comando “hostname”, as demais configurações serão perdidas no primeiro boot. Para fixar estas mudanças, elas devem ser declaradas no arquivo /etc/network/interfaces, como segue:

# The loopback network interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface eth0 inet static address 192.168.1.90 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255

IP fixo

# The loopback network interfaceauto loiface lo inet loopback

# The primary network interface - # use DHCP to find our addressauto eth0iface eth0 inet dhcp

dhcp

Após qualquer alteração, a rede pode ser reiniciada com o script /etc/init.d/networking

/etc/init.d/networking restart