Sistema Operacional GNU/Linux

Documentos relacionados
Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Introdução ao Linux: Parte I

03/11/2011. Apresentação. SA do Linux. Sistemas de Arquivos. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

CONTEÚDO PROGRAMÁTICO

Aula 01 Visão Geral do Linux

16:21:50. Introdução à Informática com Software Livre

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Aula 02. Introdução ao Linux

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Administração de Sistemas Operacionais Não-Proprietários II

Sistema Operacional LINUX

Roteiro 3: Sistemas Linux arquivos e diretórios

UM dos protocolos de aplicação mais importantes é o DNS. Para o usuário leigo,

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

Instalação e Configuração Iptables ( Firewall)

LISTA DE COMANDOS DO LINUX 1

Linux Administração. Sobre o curso. Destinatários. Redes e Sistemas - Sistemas Operativos

Informática Fácil NOÇÕES DE LINUX. Prof.: Adelson Gomes Ferraz Antonio Carlos Reis

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

TCP é um protocolo de TRANSMISSÃO, responsável pela confiabilidade da entrega da informação.

PROJETO INTERDISCIPLINAR I

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Fuctura Tecnologia Rua Nicarágua, 159 Espinheiro (81) /

Revisão Aula Explique a MBR(Master Boot Record)

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

Objetivos Instalação Gerência de Pacotes UNIX Shell. Curso UNIX. Matheus Braun Magrin Felipe dos Santos Silveira

Iptables. Adailton Saraiva Sérgio Nery Simões

Obs: Endereços de Rede. Firewall em Linux Kernel 2.4 em diante. Obs: Padrões em Intranet. Instalando Interface de Rede.

Práticas de Desenvolvimento de Software

Conteúdo do pacote de 03 cursos hands-on

PROCESSOS COMPONENTES DE UM PROCESSO. A execução de um processo possui vários componentes. PID e PPID

Administração de Redes I Linux Prof: Frederico Madeira <fred@madeira.eng.br> Lista de Exercícios 3

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA

GNU/Linux/Bash. Aula 2

Aula prática. Objetivo IPCONFIG. Prof. Leandro Pykosz Informa a configuração atual de rede da máquina;

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Sumário. Introdução ao Universo Linux Parte I

Gerenciamento de Boot

Fundamentos dos protocolos internet

1- Qual das opções abaixo não corresponde a um parâmetro do comando ls? A) -L B) -e C) -a D) -S

MANDRIVA CONECTIVA LINUX - ADMINISTRAÇÃO DE SISTEMAS E REDES

Oficina de ferramentas de Gerência para Redes em Linux. Prof. Jefferson Santiago

Fundamentos de Administração de Sistemas

Informática I. Aula Aula 19-20/11/06 1

Segurança em Sistemas de Informação

Conteúdo 1 Comandos Básicos. Questão 1: Que comando permite encerrar o sistema definitivamente?

REVISÃO LINUX CAP /SIN PROF. ESTRELA. e) os

Firewalls em Linux. Tutorial Básico. André Luiz Rodrigues Ferreira

Linux. Wagner de Oliveira

Gerenciamento de Processos

Introdução ao Shell Script


FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

COMPETÊNCIAS A DESENVOLVER CONTEÚDOS. Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO. Unidade de Ensino/Aprendizagem 1 O SISTEMA OPERATIVO UNIX/LINUX

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

Elaboração de Script de Firewall de Fácil administração

Projeto e Instalação de Servidores Introdução a Servidores

Planeamento. Introdução ao Sistema Operativo UNIX. Java: Ferramentas, Entradas/Saídas, Excepções. Threads e Semáforos. Problemas de Sincronização

Curso Firewall. Sobre o Curso de Firewall. Conteúdo do Curso

LSOF - LiSt Open Files

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos

Redes. Pablo Rodriguez de Almeida Gross

Senha Admin. Nessa tela, você poderá trocar a senha do administrador para obter acesso ao NSControl. Inicialização

Mini curso de GNU/Linux

Administração de Sistemas Operacionais

Segurança de Redes. Firewall. Filipe Raulino

Escola Profissional Vasconcellos Lebre

Prática DNS. Edgard Jamhour

Introdução a Sistemas Abertos

Introdução a. Shell Script. Clésio Matos

Professor: Gládston Duarte

Projeto e Instalação de Servidores Servidores Linux Aula 6 Firewall e Proxy

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

>>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard. === Sistemas de arquivos e Partições

IPTABLES. Helder Nunes

Redes de Computadores

Uso Eficiente da Linha de Comando com os Shells do Unix. Fábio Olivé

Entendendo o Sistema Operacinal. Prof. Armando Martins de Souza armandomartins.souza@gmail.com

DNS Parte 2 - Configuração

Configurando servidor de DNS no CentOS O Domain Name System Sistema de Nomes de Domínio é de fundamental importância em uma rede.

Prof. Samuel Henrique Bucke Brito

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Objetivos do Curso. Organização do Curso. Apresentação do Curso. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Curso Tecnológico de Informática Matriz de Exame de Equivalência de Tecnologias Informáticas Prova Prática - Código 259

Labgrad. Usúario: <matricula> Senha: senha

Fundamentos de Sistemas Operacionais. GNU / Linux. Prof. Edwar Saliba Júnior Março de Unidade GNU / Linux

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

Windows NT 4.0. Centro de Computação

Sumário. Parte I - Linux básico O início de tudo Visão geral do Linux Comandos básicos... 37

Gerenciamento de Processos

Aula 1 Windows Server 2003 Visão Geral

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

FTP Protocolo de Transferência de Arquivos

Transcrição:

Fundação Guimarães Rosa Sistema Operacional GNU/Linux Hélio Marques Sobrinho hmarx@linuxtech.com.br

Conteúdo programático Módulo 1 Introdução ao Linux Histórico e licenciamento Distribuições Instalação do sistema Planejamento, instalação e configuração Sistemas de arquivos e estrutura de diretórios Tipos de arquivos Permissões e propriedades de arquivos Utilização do Linux Principais comandos 2

Conteúdo programático Módulo 2 Introdução à administração de sistemas Gerenciamento de pacotes Instalando e atualizando pacotes com RPM Gerenciamento de usuários e grupos Gerenciar processos e serviços Agendador de tarefas cron Editor de runlevels Identificação do hardware Configuração de dispositivos de hardware Gerenciamento de discos Rotinas de backup Linux kernel Gerenciador de boot Utilização do bash Editoração usando joe e vim Programação shell (bash) 3

Conteúdo programático Módulo 3 Rede TCP/IP Rotas e redirecionamento Servidor de DHCP Serviços de Rede Servidor de nomes Bind Administrando o Apache WEB server Servidor de e-mail Sendmail e noções de Postfix SMTP, POP3, anti-spam e antivirus Acesso remoto e administração através de ssh Samba server Proxy server Análise de log de acesso Implementando relatório de acesso à WEB com SARG Segurança Implementação de firewall utilizando iptables Principais regras do iptables; proxy transparente Noções básicas de VPN em Linux Políticas de segurança Virtualização VMWare 4

Histórico do Unix 1964 : Projeto MULTICS Bell Labs, MIT e General Electrics (GE-465) 1969: Ken Thompson Sistema operacional em linguagem assembly do PDP-7 1971 : Dennis Ritchie Linguagem C 1973 : Ken Thompson, Dennis Ritchie e Brian Kernigham Unix reescrito na linguagem C, aprox. 10000 linhas Bell Laboratories / AT&T Distribuição dos fontes pelas universidades Xenix, SCO, BSD 1983: AT&T Unix System V 1990: AT&T Unix System V Release 4 5

O padrão Unix Unix SVR4 AT&T 1990 System V Interface Definition - SVID AT&T Unix SCO Xenix SunOS Berkeley BSD DEC Unix DEC Ultrix IBM AIX HP-ux Sun Solaris Sidix Sox, Edix Plurix... Unix System Laboratories USL Novell 1993 Novell / Caldera Systems Caldera + SCO SCO Group 1995 Unix : X/Open OpenGroup - 1995 http://www.opengroup.org 6

Introdução Projeto GNU GNU is Not Unix GPL GNU General Public License FSF Free Software Foundation Richard Stallman MIT - Boston, USA, 1984 Linux kernel núcleo do sistema operacional clone completo do Unix Linus Benedict Torvalds Univ. Helsinki, Finlândia, 1991 Ambiente operacional GNU/Linux 7

Histórico do kernel Linux Linus Torwalds Inspirirado no Minix de Andrew Tanenbaum Modelo GNU / FSF Plataforma i386 Primeira versão oficial : 5 de outubro de 1991 Versões do kernel : http://www.kernel.org 1999: 2.2.x e 2.3.x 2001: 2.4.x 2002: 2.5.x 2004: 2.6.x versão atual (estável): 2.6.32.7 jan/2010 8

As licenças GNU: GPL e LGPL GPL - General Public License direito de utilizar o programa livremente direito de estudar o programa e modificá-lo direito de redistribuir cópias do programa direito de melhorar o programa e distribuir as melhorias LGPL - Lesser General Public License mais indicada para bibliotecas podem ser utilizadas em programas proprietários compatível com a licença GPL 9

Arquitetura dos sistemas Unix-like Abstração do hardware bibliotecas padrão shells poderosos Portabilidade Intel, AMD, PPC, Motorola,S390, ARM,Sun Sparc, RISC, HP-pa, DEC alpha, 32 ou 64 bits Intel EMT64, AMD 64,... 10

Conceitos do Linux Clone completo da arquitetura Unix Sistema Multiusuário Sistema Multitarefa Múltiplos programas em execução (processos) Preemptivo Resolução de conflitos de alocação de recursos B A Requisição Acesso Acesso R1 R2 Suporte a multi-processamento 11

Gerenciamento de Memória Memória Virtual Tamanho do processo = RAM + espaço em disco para swap swap in e swap out Paginação Espaço de endereçamento virtual Aplicações Espaço de endereçamento real Processador(es) Segmentação Elementos do modelo computacional Blocos de código, blocos de dados, pilha Arquitetura x86 (i386 e superiores) Segmentação e paginação 12

Processo de boot Execução de um processo multi-camada BIOS Inicialização do hardware Carga do loader do sistema operacional Loader Pode ser parte do próprio sistema operacional Carrega o kernel do sistema operacional Identifica o sistema de arquivos raiz ( / ) LILO ou GRUB no Linux Kernel Identifica o hardware instalado e carrega os drivers Monta o sistema de arquivos raiz ( / ) Monta os outros sistemas de arquivos Executa os processos iniciais 13

Sessões Terminais reais Monitor, teclado e interface serial Terminais virtuais Acessíveis através das teclas - a - Welcome to SuSE Linux 11.2 (i386) - Kernel 2.6.31 (tty1) earth login: Usuário e senha Have a lot of fun... Last login: Tue Jan 5 22:24:43 on tty1 No mail: tux@earth:~> 14

O usuário root Usuário privilegiado Acesso completo e irrestrito ao sistema! Comando su tux@earth:~> su Password: earth:~# Execução de comandos privilegiados tux@earth:~> su -c shutdown -h 10m Password: Broadcast message from root (tty1)... The system is going DOWN for system halt in 10 minutes!! Escolha sempre senhas seguras! 15

Sistemas de Arquivos Abstração para facilitar a localização dos dados dos usuários Organização em diretórios hierárquicos caminho ou path (absoluto ou relativo) [ / ] [ { componente / } * ] componente Nodos de informação - inodes número de identificação de um arquivo, diretório ou dispositivo Diretórios mapeamento do número do inodo para um nome de arquivo Diferencia maiúsculas de minúsculas nos nomes tux@earth:~/tmp> ls -l total 6 -rw-r--r-1 tux -rw-r--r-1 tux -rw-r--r-1 tux tux@earth:~/tmp> users users users 1800 Oct 29 09:01 Letter1.tex 1619 Oct 29 09:02 letter1.tex 1593 Oct 29 09:02 letter1.tex 16

Arquivos Sequências de bytes identificadas por um i-nodo Conteúdo do i-nodo Tipo do arquivo Permissões de acesso (rwx para dono, grupo e outros) Links : número de nomes para o i-nodo Dono : UID Grupo : GID Tamanho Datas e horas de criação, modificação e acesso tux@earth:~/work> ls -lid Arquivo Diretorio total 6 48226 -rw-r--r-1 tux users 1754 2010-01-07 09:01 Arquivo 48223 drw-r--r-2 tux users 48 2010-01-06 17:35 Diretorio tux@earth:~/work> 17

Diretórios Conjunto de nomes de arquivos Nome e número do i-nodo Múltiplos nomes para o mesmo arquivo Podem estar em diretórios diferentes hard links e symbolic links tux@earth:~/work> ls -lid file* 48231 lrwxrwxrwx 1 tux users 13 2010-01-07 20:07 file0 -> /usr/bin/file 48230 -rw-rw---- 2 tux users 17033 2010-01-07 20:03 file1 48230 -rw-rw---- 2 tux users 17033 2010-01-07 20:03 file2 tux@earth:~/work> 18

Links simbólicos Restrição do hard link Arquivos e nomes devem estar no mesmo sistemas de arquivos i-nodos estão associados ao sistema de arquivos Links simbólicos Arquivos e/ou nomes podem estar em sistemas de arquivos diferentes tux@earth:~> ls -li total 1 69188 -rw-r r-- 1 tux users tux@earth:~> ln -s old new tux@earth:~> ls -li total 2 69189 -rw-r r-- 1 tux users 69188 -rw-r r-- 1 tux users tux@earth:~> 35 Nov 10 21:23 old 35 Nov 10 21:23 new -> old 35 Nov 10 21:23 old 19

A Estrutura hierárquica de arquivos / bin ls opt oracle kde bin lib etc init.d dev Usr share doc bin home jose arq1 sbin maria arq2 20

Dispositivos No diretório /dev (normalmente) Arquivos especiais representam dispositivos de hardware Tipo caracter, bloco, pipe, link, socket Identificação do dispositivo major number e minor number tux@earth:~> brw-rw---brw-rw---crw-rw---crw-rw---crw-rw---tux@earth:~> ls 1 1 1 1 1 -l /dev/tty0 /dev/tty1 /dev/hda /dev/hdb /dev/lp0 root disk 3, 0 Mar 23 2002 /dev/hda root disk 3, 64 Mar 23 2002 /dev/hdb root lp 6, 0 Mar 23 2002 /dev/lp0 tux tty 4, 0 Apr 15 10:09 /dev/tty0 root tty 4, 1 Apr 15 10:12 /dev/tty1 Alguns dispositivos importantes Discos : Terminais: Impressoras: Captura de imagem: fdi, sd[a-z][i], hd[a-z][i], cdromi, sri,... console, ttyi, tty[a-z]i, pts/i,... lpi videoi i é um número inteiro 21

Diretórios de Aplicativos Utilitários gerais utilizados pelo sistema e pelo usuário Aplicativos padrão : /bin Aplicativos não padrão: /usr/bin Utilitários do sistema X Windows /usr/x11r6/bin Utilitários para administração do sistema Aplicativos padrão : /sbin Aplicativos não padrão : /usr/sbin Aplicativos opcionais Aplicativos padrão /opt Aplicativos específicos da máquina Aplicativos gerais /usr/local/bin Aplicativos administrativos /usr/local/sbin 22

Arquivos de configuração Diretório /etc Arquivos principais /etc/suse-release /etc/inittab /etc/fstab /etc/lilo.conf /etc/modules.conf /etc/profile /etc/passwd /etc/shadow /etc/group /etc/printcap /etc/hosts /etc/inetd.conf /etc/syslog.conf Versão da distribuição SuSE-release redhat-release fedora-release debian-version slackware-release... Subdiretórios principais /etc/init.d/ /etc/sysconfig/ /etc/pam.d/ /etc/x11/ 23

Diretórios pessoais Diretório /home/login name Acessível também por ~login name Arquivos de configurações personalizadas Arquivos ocultos : nomes iniciados com..profile.bashrc.bash_history.exrc.xinitrc.emacs.gnu_emacs.xemacs.aliases entre outros 24

Formatos do sistema de arquivos O Linux suporta diversos tipos de sistemas de arquivos: FAT16, FAT32, HFS, XFS, EXT2, REISER,... Organização dos dados no sistema de arquivos ext2 25

Permissões de acesso Tipo do objeto (-, d, c, b, l, s, p) Permissões por grupos de usuários rwx: read, write, execute Para o dono do objeto Para o grupo do objeto Para os outros usuários Objetos : arquivos, diretórios ou dispositivos tux@earth:~> ls -ld hello.txt Mail -rw-r--r-1 tux users 6 Oct 1 10:33 hello.txt drwx-----2 tux users 1024 Aug 10 09:58 Mail tux@earth:~> Alteração de propriedade do objeto chown dono [ {. : } grupo ] objeto... chown {. : } grupo objeto... chgrp grupo objeto... Alteração de permissões chmod { u g o a} { + - = } objeto... chmod modo_octal objeto... Modo octal : 0000 a 7777 26

Permissões especiais Quarto dígito octal de mais alta ordem S SUID - Set User Id Válido para arquivos executáveis Aplicativo assume a identificação do dono na execução s SGID - Set Group Id Válido para diretórios Arquivos criados no diretório herdarão o grupo do diretório T Sticky bit Válido para diretórios Arquivos neste diretório só podem ser removidos pelos donos Exemplo: /tmp tux@earth:~> ls -ld /tmp drwxrwxrwt 11 root root tux@earth:~> 4096 Apr 12 13:32 /tmp 27

Atributos do Sistema de arquivos ext2 Lista de controle de acesso (ACL) A a c d i s u Comandos lsattr access time append only (grava adiciona informação) compressed (não implementado) não salvo pelo programa de backup dump imutável (não pode ser apagado ou alteado) secure deletion (conteúdo apagado com zero) undeletable (não pode ser removido) e chattr tux@earth:/work # touch blabla tux@earth:/work # chattr +i blabla tux@earth:/work # ls -l blabla -rw-r--r-- 1 root root 0 Apr 12 13:32 blabla tux@earth:/work # rm blabla rm: remove write-protected file blabla? y rm: cannot unlink blabla : Operation not permitted tux@earth:/work # 28

Documentação Ajuda on-line para os comandos do shell help comando tux@earth:~> help exit exit: exit [n] Exit the shell. Exits the shell with a status of N. If N is omitted, the exit status is that of the last command executed. tux@earth:~> Ajuda para os aplicativos gerais Lista opções válidas e argumentos Podem ter opção -h ou help Alguns podem exibir o texto de ajuda se não passar os argumentos necessários se não passar os argumentos corretos 29

Documentação Manual on-line para os comandos Man [ [ -k ] volume ] ] comando Abaixo a tela para man 1 ps NAME ps - report a snapshot of the current processes. SYNOPSIS ps [options] DESCRIPTION ps displays information about a selection of the active processes. If you want a repetitiveupdate of the selection and the displayed information, use top(1) instead. This version of ps accepts several kinds of options: 1 UNIX options, which may be grouped and must be preceded by a dash. Manual page ps(1) line 1 30

Páginas de manual Sessões do manual NAME SYNOPSIS DESCRIPTION OPTIONS COMMANDS FILES SEE ALSO DIAGNOSIS EXAMPLE BUGS Volumes dos manuais 1 0p 1p 2 3 3p 4 5 6 7 8 9 n s * : comandos do usuário : manual de programação POSIX (headers) : manual de programação POSIX : chamadas do sistema : funções e bibliotecas de rotinas : manual de programação POSIX : manual de dispositivos : arquivos de configuração e formatos de arquivos : jogos : pacotes de macros e formatos de arquivos : comandos de administração do sistema : funções internas : biblioteca Tcl : especificações : manuais novos, ainda não classificados 31

Arquivos Info Documentos estruturados Acesso direto a seções a partir do índice Links entre sessões específicas Algumas vezes mais completo que o man File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing 10.1 `ls': List directory contents ================================== The `ls' program lists information about files (of any type, including directories). Options and file arguments can be intermixed arbitrarily, as usual. For non-option command-line arguments that are directories, bydefault `ls' lists the contents of directories, not recursively, and omitting files with names beginning with `.'. For other nonoptionarguments, by default `ls' lists just the file name. If no non-opt Ion argument is specified, `ls' operates on the current directory, acting as if it had been invoked with a single argument of `.'. --zz-info: (coreutils.info.gz)ls invocation, 73 lines --Top--------Welcome to Info version 4.13. Type h for help, m for menu item. 32

Documentação Arquivos HOWTO Funcionamento, configurações de aplicativos, serviços e dispositivos Normalmente em /usr/share/doc/howto/ Documentações de pacotes instalados Em /usr/share/doc/packages/pacote Milhares de livros Linux Unix Software livre Coleção da O'Reilly http://oreilly.com/linux Site Wikipedia: http://www.wikipedia.org 33

Ferramentas importantes no Linux O shell Interpretador de comandos Linguagem de programação Bourne shell Korn shell C shell Tcsh Bourne-Again-Shell bash... O shell padrão : bash Arquivos de inicialização /etc/profile.bash_profile.bashrc 34

Ambiente do shell Variáveis de ambiente importantes PATH MANPATH TERM HISTSIZE Definição de variáveis do shell variavel=texto $variavel Uso de, ' e \ como escape para caracteres especiais. tux@earth:~> echo $PATH /bin:/usr/bin:/usr/bin/x11:/usr/x11r6/bin:/usr/local/: /usr/sbin:/home/tux/bin: tux@earth:~> PESSOA= Richard tux@earth:~> EMPRESA= Free Software Foundation tux@earth:~> echo $PESSOA da $EMPRESA Richard da Free Software Foundation tux@earth:~> 35

Ambiente do shell Prompt do shell PS1 PS2 PS3 PS4 prompt normal prompt de continuação prompt do comando select prompt do trace do shell > + Algumas macros \u \w \d \! usuário caminho completo data número do comando \h \W \t \j hostname diretório corrente hora número de jobs tux@earth:~> PS1= \u:\t@\h:\w {\j} #\! > tux:15:32:27@earth:~ {0} #1041 > 36

Comandos do shell Comandos internos if/then/else, for, select, set,... export ulimit functions... Comandos externos executáveis no path scripts (shell, perl, tcl,...) binários (linguagens compiladas) Apelidos alias Histórico de comandos history!n 37

Redirecionamento de E/S Operadores de redirecionamento > 1> 2> i> < i>&j >> <<texto tux@earth:/work> echo GNU/Linux rev Operador pipe Remificação comando tee xunil/ung tux@earth:/work> ls -1 Arquivo Diretorio file0 file1 file2 tux@earth:/work> ls -1 wc 5 5 36 tux@earth:/work> 38

Expansão de comandos Expansão de chaves tux@earth:~/tmp> mkdir test{1,2,3,4,5} tux@earth:~/tmp> ls -F test1/ test2/ test3/ test4/ test5/ tux@earth:~/tmp> Substituição de comandos tux@earth:~> echo "Hoje é $(date +%d/%b/%y)." Hoje é 22/Mar/2003. tux@earth:~> echo "Hoje é `date +%d/%b/%y`." Hoje é 22/Mar/2003. tux@earth:~> 39

Comandos no Linux Sintaxe geral comando [ opções ] [ argumentos ] built-in do shell função definida no shell executável ou script em um diretório definido pela variável PATH Case sensitive: A!= a Prompt Totalmente configurável pelo usuário (PS1) padrão do Linux usuário@máquina:diretóriocorrente> Opções -caracter ou --texto 40

Comandos básicos do Linux Tratamento de diretórios cd [ diretório - ] mkdir [ opções ] caminho rmdir diretório pwd ls [ opções ] [ arquivo ] Tratamento de arquivos cat [ arquivo ] cp [ opções ] arquivo... [ diretório ] mv [ opções ] arquivo... [ diretório ] rm [ opções ] arquivo ln [ opções ] nome... [ diretório ] echo [ -n -e -E ] texto 41

Metacaracteres Processados pelo shell antes de executar o comando * qualquer cadeia de caracteres? um caracter qualquer [ conjunto ] um caracter do conjunto [! conjunto ] um caracter não presente no conjunto Exemplos de conjuntos [!abcdefgh] ou [!a-h] [0123456789ABCDEF] ou [0-9A-F] tux@earth:~/arqs> ls * chap1 chap2 chap3 programb2 tux@earth:~/arqs> ls *[1-3] chap1 chap2 chap3 tux@@earth:~/arqs> ls *[!1-3] programa tux@@earth:~/arqs> ls *[A-B]? programb1 programb2 tux@earth:~/arqs > programa programb1 programb1 programb2 42

Criando links Links hard links symbolic links (atalhos) tux@earth:~> ls -li total 1 69188 -rw-r r-- 1 tux users tux@earth:~> ln old new tux@earth:~> ln -s old brandnew tux@earth:~> ls -li total 2 69190 lrwxrwxrwx 1 tux users 69188 -rw-r r-- 2 tux users 69188 -rw-r r-- 2 tux users tux@earth:~> 35 Nov 10 21:23 old 3 Nov 10 21:23 brandnew -> old 35 Nov 10 21:23 new 35 Nov 10 21:23 old 43

Procurando arquivos find caminho opções algumas opções : -print -true -name padrão -exec comando ; -atime [+/-] n -amin [+/-] n -inum n -uid n -gid n -anewer arquivo -false -maxdepth nivel -iname padrão -size tamanho[cwbkmg] -ctime [+/-] n -cmin [+/-] n -type t -user name -group name -cnewer arquivo suporta expressões utilizando operadores relacionais ( expr )! expr -not expr expr1 -a expr2 expr1 -and expr2 expr1 -o expr2 expr1 -or expr2 44

Procurando arquivos locate opções padrão base de dados criada pelo programa updatedb executado periodicamente através do cron algumas opções -i -w -b -S -c -e -E -p -r ignore case nome completo último componente do nome (basename) estatísticas somente imprime quantidade de arquivos somente arquivos existentes somente arquivos não existentes força a impressão expressão regular 45

Processos Processo init : PID 1 Comando ps (process status) opções mais usuais a u x w l u informações exibidas PID TTY PRI NI STAT TIME COMMAND estado do processo R S D T SIZE Z Outros comandos top qps pstree 46

Enviando sinais Comandos kill killall Sinais mais comuns veja kill l para ver a lista completa SIGTERM SIGKILL SIGSTOP SIGCONT o prefixo SIG pode ser omitido SIGINT SIGQUIT tux@earth:~> xclock & [ 1 ] 24727 tux@earth:~> kcalc & [ 2 ] 24729 tux@earth:~> kill -SIGTERM 24727 [ 1 ]- Terminated xclock tux@earth:~> kill -SIGKILL %2 [ 2 ]+ Killed kcalc tux@earth:~> 47

VI - o editor de textos do Unix tux@earth:~> vi exercicio ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "exercicio" [New File] 0,0-1 All 48

O editor VI Editor padrão do Unix Modos comando edição comando de linha : /?! ¹ volta para o modo comando Utiliza expressões regulares Para a tecla de comando ( ), o comportamento depende do que foi digitado antes (➊) e do que sera digitado depois (➋). ➊ ➋ Exemplo: 5dw : deleta 5 palavras cty : deleta até o caracter y e inicia inserção 49

VI - o editor de textos do Unix Modos de operação comando edição linha de comando volta ao modo comando Comando ª Edição : /? Linha de comando 50

VI Comandos principais ➊ ➋ Movendo pelo texto h j k l 0 $ + -G H M L w b W B e E % Ç Ê È Ê Ã Ä +B +F +U +D ª «Inserindo texto i I a A Substituindo texto r R c C Apagando texto x X d D Saindo do VI ZZ ZQ Localizando caracteres t T f F '`,; Copy and Paste y Y p P Marcando texto " m v V +v Desfazendo últimas alterações u U 51

VI Comandos principais Comandos especiais Repetindo o último comando. Alternando para modo ex (edição linha a linha) Q Execução de comandos! Obtendo o manual do texto sob o cursor K Informações sobre o arquivo +G 52

VI Comandos de linha Comandos de linha ( iniciados por : ) Faixa: [ buffer ] [ [ início ], [ fim ] ] comando buffer: k número da linha marca: 'k /padrão/ Tratando arquivos e r w f Substituindo textos s/padrão1/padrão2/opções g/padrão/s/padrão1/padrão2/opções Ajuda h Que arquivo? f Saindo do VI x q 53

O editor VI expressões regulares. * [conjunto] [^conjunto] ^ $ \< \> \(...\) \n um caracter qualquer 0 ou mais caracteres um caracter do conjunto um caracter não pertencente ao conjunto início de linha fim de linha início de palavra fim de palavra agrupa sub-expressões n-ésima sub-expressão agrupada Utilizadas em pesquisas (comandos :g/.../, / e?) em substituições (comando :s/.../.../) 54

VI Opções Comandos :set opções lógicas [no]number [no]list... [no]wrap [no]ic [no]showmatch [no]hlsearch opções com valores ts=n sw=n fileformat=fmt fileencoding=enc backupcopy={yes no auto} backupext=ext... 55

O Editor Joe Joe's Own Editor Joseph Allen Interface semelhante ao WordStar (MicroPro International) WordStar: desenvolvido inicialmente para o CP/M - 1978 processador Intel 8080/8085 portado p/ o DOS 1981 Mistura de WordStar e Emacs Variantes joe, jstar (wordstar), jmacs (emacs), jpico (pico) 56

O editor Emacs Richard Stallman - FSF Poderoso e altamente configurável alta utilização de memória pode ser transformado em um ambiente operacional ou de desenvolvimento pode trabalhar em partes de um arquivo (seções) Versão para X Window xemacs 57

Tela inicial do Emacs 58

Imprimindo no GNU/Linux Formatando arquivos para impressão pr Colocando jobs na fila de impressão lpr Mostando as filas de impressão lpq Removendo jobs da fila de impressão lprm 59

O bash linguagem de programação Variáveis de ambiente comandos env unset export let tux@earth:~> tux@earth:~> tux@earth:~> VAR=Um texto tux@earth:~> tux@earth:~> tux@earth:~> tux@earth:~> tux@earth:~> 2 tux@earth:~> tux@earth:~> 26 tux@earth:~> env grep ^VAR= export VAR= Um texto env grep ^VAR= unset VAR env grep ^VAR= let V=1 let ++V echo $V let V=V*13 echo $V 60

Algumas variáveis padrão Redefiníveis pelo usuário PATH PS1 PS2 PS3 HOSTNAME HOME TERM MANPATH IFS DISPLAY USER LANG CDPATH... Não redefiníveis pelo usuário?! 0 1 2 3 4 5 6 7 8 9 # * @ 61

Operação com variáveis Expansão de parâmetros $variável ${variável} ${variável:-texto} ${variável:+texto} ${variável:offset} ${variável:offset:tamanho} ${#variável} ${!variável} ${variável#padrão} ${variável##padrão} ${variável%padrão} ${variável%%padrão} ${variável/padrão/texto} ${variável/padrão/texto} 62

Exemplos tux@earth:~> unset A tux@earth:~> echo ${A:-texto} texto tux@earth:~> echo ${A:?Variável não definida} bash: A: Variável não definida tux@earth:~> A= Um texto muito longo tux@earth:~> echo ${#A} 20 tux@earth:~> echo ${A:3:11} texto muito tux@earth:~> echo ${A/muito/quase} Um texto quase longo tux@earth:~> A=/x/y/z/w/x tux@earth:~> echo ${A%/x} /x/y/z/w tux@earth:~> echo ${A#/x} /y/z/w/x tux@earth:~> A=B tux@earth:~> B=1234 tux@earth:~> echo ${!A} 1234 tux@earth:~> 63

Comandos condicionais Condicional simples if condição ; TRUE é 0! FALSE é qualquer valor diferente de 0! then comandos ; fi Condicional composto if condição ; then comandos1 ; else comandos2 ; fi tux@earth:~> 0 tux@earth:~> 1 tux@earth:~> > then > ls > else > ps > fi 22768 p7 S 27773 p1 S 28003 p1 R tux@earth:~> true ; echo $? false ; echo $? if expr 3 \> 4 0:33 bash 0:27 bash 0:00 ps 64

Comandos condicionais Condicional composto agrupado if condição1 ; then comandos1 ; elif condição2 ; TRUE é 0! FALSE é qualquer valor diferente de 0! then comandos2 ; elif condição3 ; then comandos3 ;... else comandosn ; fi 65

Operadores do bash Redirecionamento de E/S < > >> i>&j <<texto Pipeline Separador de comandos ; Disparo em background & Agrupamento de comandos { comando1; comando2;... } Sub-shell ( comando1; comando2;... ) 66

Operadores do bash Substituição de comandos `comando1; comando2;...` $( comando1; comando2;... ) Expressões aritméticas TRUE é 0! FALSE é qualquer valor diferente de 0! (( expressão )) Expressões lógicas [[ expressão ]] 67

Comandos iterativos Teste de continuação do loop while condição ; do comandos ; done Teste do fim do loop until condição ; do comandos ; done #!/bin/bash unset NOME while [ z $NOME ] do echo n Entre seu nome : read NOME done echo Bem vindo $NOME #!/bin/bash unset NOME until [ s $NOME ] do echo n Entre seu nome : read NOME done echo Bem vindo $NOME 68

Comandos iterativos Loop controlado for nome [ in lista_de_palavras ] do comandos done tux@earth:~> for i in > do > echo $i > done A B C D A B C D hmarx@thor:~> 69

Comandos condicionais Seleção múltipla case valor in padrão1) comandos1 ;; padrão2) comandos2 ;; tux@earth:~> cat que_e #!/bin/bash case $1 in [a-z]) echo [A-Z]) echo [0-9]) echo *) echo esac $1 $1 $1 $1 é é é é letra minúscula ;; letra maiúscula ;; numérico ;; caracter especial ;; tux@eath:~>./que_e R R é letra maiúscula tux@earth:~>... esac 70

Comandos interativos Saída echo, cat, printf Entrada read tux@earth:~> printf %04d 0015 %s\n 15 Descrição Descrição tux@earth:~> echo -n Entre seu nome : ; read NOME SOBRENOME Entre seu nome : Helio Marques tux@earth:~> echo Prazer $NOME $SOBRENOME Prazer Helio Marques tux@earth:~> 71

Comandos interativos Geração de menus select nome [ in lista_de_palavras ] do comandos ; done Usa a variável PS3 como prompt! default: #? 72

Exemplo do comando select tux@earth:~> PS3= Escolha a fruta : tux@earth:~> select fruta in uva maçã pera nenhuma > do > if [ $fruta == nenhuma ] > then > break > fi > echo Você escolheu $fruta > done 1) uva 2) maçã 3) pera 4) nenhuma Escolha a fruta : 2 Você escolheu maça 1) uva 2) maçã 3) pera 4) nenhuma Escolha a fruta : 4 tux@earth:~> 73

Programação shell scripts scripts para facilitar tarefas administrativas Exemplo: earth:~# cat /tmp/istodaymonday #!/bin/bash d=`date +%w` if test $d eq 1 then echo yes exit 0 else echo no exit 1 fi earth:~# chmod a+x /tmp/istodaymonday earth:~# 74

Programação shell expressões Forma não portável tux@earth:~> x=1 tux@earth:~> y=2 tux@earth:~> echo $x $y 12 tux@earth:~> echo $(($x + $y)) 3 Forma portável tux@earth:~> x=1 tux@earth:~> y=2 tux@earth:~> echo `expr $x + $y` 3 75

Programação shell Depuração Comando set set -v : verbose set -x : mostra substituições set -t :executa apenas um comando separação de strings tux@earth:~> x= a b c d e tux@earth:~> set $x tux@earth:~> echo $# $1 $2 $3 $4 $5 5 a b c d e tux@earth:~> IFS= : tux@earth:~> set $x tux@earth:~> echo $# $1 $2 $3 $4 $5 1 a b c d e tux@earth:~> x= a b c:d e tux@earth:~> set $x tux@earth:~> echo $# $1 $2 $3 $4 $5 2 a b c d e tux@earth:~> 76

O sistema X Window Interface gráfica padrão do Unix - MIT, 1984 modelo cliente/servidor X clients X servers Protocolo X11 Rede TCP/IP Nome do display: Endereço : servidor:display.tela (localhost: :0.0) 77

Arquitetura do X Window Servidor X xorg - X11R7.1 Gerenciadores de desktop (Desktop Managers) xdm kdm gdm... Gerenciadores de janelas (Window Managers) twm fvwm fvwm2 mlwm qvwm cdwsim kwin plasma gnome kwin WindowMaker Enlightment... 78

Gerenciadores de arquivos do KDE Dolphin Diversos modos de visualização Manipulação completa de arquivos e suas propriedades Preview de arquivos e diretórios 79

Konqueror : Gerenciador de Arquivos Browser WEB completo Diversos modos de visualização Manipulação completa de arquivos e suas propriedades Múltiplas janelas horizontais e/ou verticais 80

Outros aplicativos X Office, multimedia, bancos de dados,... 81

Iniciando/Finalizando o Linux Boot sector MBR (floppy, HD, CD, DVD,...) Carga do kernel Detecção e inicialização do hardware Montagem dos sistemas de arquivos Disparo do processo 1 : /sbin/init Niveis de execução /etc/inittab earth:~# 0 = halt earth:~# 1 = monousuário 2 = multiusuário sem rede 3 = multiusuário com rede 4 = não utilizado 5 = multiusuário com rede e xdm 6 = reboot init Q 82

reboot / shutdown / halt Parada controlada pelo sistema halt poweroff shutdown reboot Comportamento de  /etc/inittab ca::ctrlaltdel:comando earth:~# shutdown +5 O novo disco chegou 83

Do boot ao login 84

Scripts de inicialização Processo init scripts em /etc/init.d/* script rc scripts no subdiretório rci.d para cada runlevel i Sxx* Knn* links para /etc/init.d/* parâmetros start e stop - start - kill scripts boot* iniciar serviços dependentes de outros /etc/sysconfig/* configurações de serviços network/*, pcmcia, hotplug,... apache, firewall, nfs,... 85

Adicionando hardware Módulos do kernel (drivers para os dispositivos) Discos, placas de rede, som, modems,... Discos fdisk particionamento mkfs criação de sistema de arquivos ext2, ext3, ext4, xfs, jfs, reiserfs, minix,... mount integração ao sistema de arquivos Arquivo /etc/fstab dispositivo ou arquivo ponto de montagem tipo do sistema de arquivos opções de montagem backup e verificação 86

Impressoras Padronização CUPS Common Unix Printing System PostScript apsfilter ou lpdfilter Definição padrão de impressoras /etc/cups/printers.conf /etc/printcap Controle de filas de impressão lpc Controle de impressão de arquivos pr lpr lprm 87

O kernel do Linux kernel e módulos do kernel /boot/vmlinuz /lib/modules/versão/* suporte a hardware e serviços protocolos IP, IPX, SMB sistemas de arquivos Comandos lsmod insmod rmmod modprobe Recompilação do kernel adequação ao hardware otimização de uso de memória parametrização de serviços 88

Recompilação do kernel Linux Fontes do kernel /usr/src/linux link para linux-versão Makefile Configuração make config make menuconfig make xconfig make cloneconfig Compilação make make modules Instalação make install make modules-install Outras opções make help make rpm-pkg make binrpm-pkg make deb-pkg make tar-pkg make targz-pkg make tarbz2-pkg... 89

Instalação de software Gerenciadr de pacotes Instalação e atualização CD, DVD, NFS, SMBFS, FTP Atualização on-line Arquivos.rpm rpm (RedHat Package Manager) pacotes binários pacotes com códigos fonte Outros formatos arquivos comprimidos.z.gz.bz2 arquivos tar.tar.tar.z.tar.gz.tgz.tar.bz2 90

Monitoração do Sistema Processos Carga do(s) processador(es) Número de processos em execução Uso de memória e swap Comandos ps free top swapon vmstat sensors iostat... Informações interessantes (ps, top,...) PID USER PRI NI RSS SHARE %CPU %MEM SWAP COMMAND SIZE TIME 91

Arquivos de log syslog registro de eventos do sistema processo syslogd /etc/syslog.conf /etc/syslog ng/syslog ng.conf facilities auth authpriv cron daemon kernel lpr mail mark news syslog user uucp local0 a local7 priorities debug info notice warning err crit alert emerg Diretorio /var/log arquivos messages mail warn firewall serviços/*... 92

Visualização de logs Ferramentas básicas tail -f /var/log/arquivo_de_log dmesg Jan 5 13:45:12 earth sshd[31234]: error: PAM: Authentication failure for root from 200.117.252.38 Jan 5 13:45:13 earth kernel: BAD IP IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13: 5f:05:67:05:08:00 SRC=58.223.240.115 DST=201.17.146.157 LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=43341 DF PROTO=TCP SPT=53654 DPT=22 WINDOW=5648 RES=0x00 SYN URGP=0 Jan 5 14:07:42 earth kernel: [ 1720.408936] lp0: using parport0 (interrupt-driven). Jan 5 14:07:42 earth udev-configure-printer: add /module/lp Jan 5 14:07:42 earth udev-configure-printer: add /devices/pci0000:00/0000:00:04.0/printer/lp0 Jan 5 14:07:42 earth udev-configure-printer: SERN fields match Jan 5 14:07:42 earth udev-configure-printer: URI match: usb://hp/psc%201500%20series? serial=br5881r00n0498 Jan 5 14:07:42 earth udev-configure-printer: SERN fields match Jan 5 14:07:42 earth udev-configure-printer: URI match: hp:/usb/psc_1500_series? serial=br5881r00n0498 93

Cron: agendamento de tarefas Processo crond Tabelas crontab modificadas pelo comando crontab crontab [ -u usuário ] arquivo crontab [ -u usuário ] -l crontab [ -u usuário ] -r crontab [ -u usuário ] -e lista o crontab remove o crontab edita o crontab Campos minutos 0-59 horas 0-23 dia do mês 1-31 mês 1-12 ou nome dia da semana 0-7 (0 ou 7 é domingo) ou nome comando e argumentos Exemplos : 0 8-18 * * 1-5 ~/bin/dothis 0,15 */5 * * * ~/bin/dothat 94

95

Distribuições GNU/Linux Composição de uma distribuição Kernel Linux Aplicativos e Utilitários Ferramentas de Instalação e Configuração Ferramentas de Administração e muito mais! 96

Processos em background Operador & Sinais para os processos kill PID kill %job kill -l tux@earth:~> jobs lista os sinais [1]- Stopped du -s / Suspensão de processo tecla - Z suspenção tecla - C interrupção Comandos do shell bg [ % job ] fg [ % job ] jobs [2]+ Stopped tux@earth:/work> [1]- du -s / & tux@earth:/work> [1]- Running [2]+ Stopped tux@earth:/work> [1]+ Terminated tux@earth:/work> top bg %1 jobs du -s / & top kill %1 du -s / 97

Executando vários comandos Separador de comandos ; Sub shell tux@earth:~> (date ; w) > quando.quem tux@earth:~> Operadores lógicos && earth:~# tar cvfz /dev/st0 /home && mt -f /dev/st0 rewind earth:~# tar cvfz /dev/st0 /home echo "Error!" mail root earth:~# 98

Expressões regulares no shell Metacaracteres? * [ conjunto ] [! conjunto ] Exemplos de conjuntos [a-z] [!abc] [a-ek-s] *x* [abcdefg] *.[Bb][Aa][Kk] Cuidado com comandos que removem arquivos utilizando expressões regulares! tux@earth:~> ls especificacao.pdf planilha.xls proposta.bak planejamento.bak proposta.doc planejamento.od tux@earth:~> rm *.bak rm: cannot remove '.bak' : No such file or directory tux@earth:~> ls tux@earth:~> 99

Login gráfico Início da sessão X ~/.xsession ~/.xinitrc Segurança: xhost xauth ssh -X 100

Iniciando o servidor X O servidor X /usr/bin/x link para o /usr/lib/x11/x link para o /usr/bin/xorg Sessão e desktop xdm, kdm, gdm,... autenticação e seleção do window manager twm fvwm cde kde gnome... /usr/bin/startx [ wm ] script que inicializa o X a partir do modo texto Automático após o boot runlevel default : 5 /etc/inittab Id:5:initdefault 101

O KDE Gerenciador completo do computador aparência, fonts, temas, layout de teclado, data e hora,... área de trabalho, comportamento de janelas,... mouse, som, rede,... aplicativos,... 102

Administração de usuários Arquivo /etc/passwd tux:x:500:100:linux user:/home/tux:/bin/bash Arquivo /etc/shadow tux:$1$ixogdktt$j6tcbivazvr0.lctfawsg/:11509:0:99999:7::: Arquivo /etc/group dialout:x:16:root,tux users:x:100 Criando, alterando e removendo usuários e grupos YaST Comandos de linha useradd groupadd userdel groupdel usermod groupmod passwd gpasswd 103

Sendo outro usuário Executando comandos como root comando sudo /etc/sudoers Abrindo sub-sessão como outro usuário comando su tux@earth:~> sudo shutdown -h now 104

Controlando o uso de disco Quotas por sistema de arquivos opções usrquota e grpquota em /etc/fstab arquivos quota.user e quota.group Comandos edquota quotastats quotaon repquota quotacheck quotaoff setquota earth:~# quotacheck -avug 105

Backups Cópias de segurança defeitos de hardware discos e controladoras CPU e memória erros de software Ferramentas tar backup padrão do Unix compressão com gzip ou bzip2 cpio utilizado em cópias de hierarquias de diretórios dump backup multi-camada verifica atributo d do sistema de arquivos ext2 permite backup remoto computador:dispositivo restore restaura backup feito pelo dump 106

Backups compressão Compressão por harware ou por software Sensibilidade a erros no meio físico Ferramentas de compressão gzip bzip2 zip rar compress lzma... Redução de tempo de transferência de dados Redução de espaço ocupado pelo backup em média, menor que 50% 107

Recuperação de desastre Desastre total O sistema não inicializa em modo multiusuário não completa o boot Excluir a possibilidade de falha de hardware Dá boot de disquete, CD/DVD,... Acessa o(s) disco(s) rígido(s)? Problemas no Linux??? Itens de verificação LILO ou GRUB Integridade dos sistemas de arquivos verificação com fsck verificação dos arquivos configurações principais Login /etc/passwd e /etc/shadow Reinstalação ou continuar procurando Reinstalação : Último recurso! 108

Sistema de Arquivos Definições Estrutura diretórios e arquivos Atributos Nome, tamanho, datas e horários permissões e controle de acessos Operações no sistema de arquivos Criar/Remover/Abrir/Ler/Escrever/Fechar Posicionar/Travar/Destravar Obter/Definir atributos Formato no dispositivo de armazenamento blocos, clusters, grupos, listas,... 109

Sistema de Arquivos no Linux Estrutura hierárquica Locais ou remotos Ortogonal Virtual File System Abstração Em rede Servidor Unix NFS Windows SMBFS ou CIFS Novell NCPFS Macintosh HFS Em dispositivo local Nativo Linux minix, ext2, ext3, reiser, reiser4, Não nativo fat, vfat, ntfs, hpfs, qnx,... 110

Coleção de sistemas de arquivos root file system usr bin jose / mount etc bin opt init ls cp mounted file system / D A B E F C G Pode ser local ou remoto! 111

Após o mount / usr bin jose etc init bin ls opt cp A D E B F C G 112

Arquivos no Linux Sequência de bytes identificadas por um inodo Inodo (inode) tipo do arquivo normal, diretório, dispositivo, socket, named pipe, symbolic link permissões e flags rwx para dono, grupo e outros SUID, SGID e STICKY dono (UID) e grupo (GID) tamanho datas e horas criaçao, modificação, último acesso 113

Dispositivos Arquivos especiais Normalmente no diretório /dev tipos b = bloco p = named pipe l = symbolic link c = caracter s = socket tux@earth:~> ls -l /dev/lp0 /dev/ttys1 /dev/hda brw-rw---- 1 root disk 3, 0 abr 30 19:50 /dev/hda crw-rw---- 1 root lp 6, 0 abr 30 19:50 /dev/lp0 crw-rw-rw- 1 uucp uucp 4, 65 ago 28 18:45 /dev/ttys1 tux@earth:~> 114

Diretórios Conjunto de nomes de arquivos nome e número de inodo múltiplos nomes para o mesmo arquivo links e symbolic links hmarx@thor:~/arqs > ls -lai total 15 538203 drwxr-xr-x 3 hmarx 98768 drwxr-xr-x 111 hmarx 538204 -rw-r--r-1 hmarx 538207 drwxr-xr-x 2 hmarx 538208 crw-r--r-1 hmar 538211 prw-r--r-1 hmarx 538213 lrwxrwxrwx 1 hmarx hmarx@thor:~/arqs > starix 1024 starix 6144 starix 6526 starix 1024 starix 30, 40 starix 0 starix 11 feb feb feb feb feb feb feb 23 23 23 23 23 23 23 18:11 18:07 18:08 18:08 18:11 18:09 18:09... Arquivo Normal Diretorio Dispositivo FIFO Link p sh -> /usr/bin/sh 115

Nomes especiais / diretório raiz. diretório corrente.. diretório anterior ou diretório pai ~ diretório pessoal (home) ~hmarx é o diretório pessoal do usuário hmarx Arquivos ocultos Arquivos / Diretórios com nomes começados por. Normalmente só aparecem com opção -a no comando ls (para usuários normais) 116

Alguns arquivos padrão /boot/vmlinuz /var/spool/mail/usuário /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/fstab /boot/grub/* /etc/syslog.conf /etc/inetd.conf /etc/xinetd.conf /etc/profile o kernel do Linux caixa postal do usuário descrição dos usuários senhas dos usuários descrição de grupos serviços para cada runlevel sistema de arquivos montáveis configuração do GRUB configuração do SYSLOGD configuração do INETD configuração do XINETD perfil global para o shell 117

Alguns diretórios padrão / /bin /usr/bin /dev /etc /usr /tmp /var/spool /sbin /usr/sbin /etc/init.d /boot /lib/modules/* /opt diretório raiz utilitários padrão outros aplicativos não padrão dispositivos configuração do sistema utilitários da plataforma arquivos temporários spool de impressão, mail, fax,... configuração e administração outros aplicativos administrativos scripts de inicialização e serviços boot e kernel módulos do kernel aplicativos opcionais 118

O sistema X Window Interface gráfica padrão para Unix Protocolo X11 DEC (Digital Equipment Corporation) MIT (Massachusetts Institute of Tecnology) primeira versão : setembro de 1987 orientado a rede Modelo cliente servidor cliente : aplicações que usam recursos gráficos servidor : provê a interface gráfica ao usuário dispositivos de entrada e saída 119

Arquitetura do sistema X Window Modelo cliente-servidor Host 1 Host 2 Client A Client B X Protocol X Terminal ou PC Servidor XTerminal Rede local Workstation Workstation Servido r Client C Existem servidores X para diversos sistemas operacionais Xwin32 http://www.starnet.com MI/X http://www.microimages.com/mix Cygwin/X http://x.cygwin.com 120

Os componentes do X Window X Server Usuário interface com interfaces gráficas desenho de primitivas pontos, retas, planos Desktop Manager Aplicações (X Clients) controle de sessões Window manager Window Manager X Server decoração das janelas ícones, menus Hardware sobreposição fundo de tela desktops virtuais 121

Gerenciadores de Janelas - 1 FVWM e FVWM2 F* Virtual Window Manager F* : Free, Fantastic, Fabulous, Final, Flexible,... Veja http://www.fvwm.org para os possíveis significados para o F* KDE K Desktop Environment GNOME GNU Network Object Model Environment CDEsim simula o Common Desktop Environment da SUN twm Tiny Window Manager mlvwm Macintosh Like Virtual Window Manager 122

Gerenciadores de Janelas - 2 AfterStep look and feel da interface do NeXT amiwm look and few da interface do Amiga qvwm look and few da interface do Windows 9x e Me enlightenment uma interface bem diferente e configurável windowmaker outra interface similar ao NextStep... e muito mais 123

GNOME 124

QVWM similar a Windows 9x 125

Enlightenment 126

Amiwm similar ao Amiga 127

WindowMaker 128

CDEsim simula o CDE do SunOS/Solaris 129

Interface Gráfica KDE K Desktop Environment Componentes Gerenciador de sessões K Desktop Manager kdm Barra de menus e tarefas kicker e o plasma-desktop Gerenciador das áreas de trabalho kdesktop e o plasma-desktop Gerenciador de janelas kwin e o plasma-desktop Gerenciador de arquivos konqueror e o dolphin Centenas de aplicações gerais Ver http://www.kde.org 130

Componentes do KDE O kdm controle de sessões O kwin e o plasma-desktop gerenciador de janelas O kicker e o plasma-desktop barra de tarefas 131

A área de trabalho do KDE O kdesktop e o plasma-desktop Icones e menus na área de trabalho 132

Algumas aplicações KDE Office e Internet konqueror Browser e gerenciador de arquivos koffice Office suite completa kmail Interface MUA completa kaddressbook Agenda de endereços kopete Sistema de mensagens completo suporta MSN, ICQ, AOL, GroupWise, IRC, Jabber,... e muito mais 133

Konqueror Konqueror como gerenciador de arquivos 134

Konqueror Konqueror como browser WEB 135

Office suite Koffice Integrado ao KDE OpenOffice Mais compatível com o MS Office Também disponível para Windows Applixware (http://www.vistasource.com) Ambiente Unix Importa arquivos do MS Office e outros... 136

OpenOffice Documentos Planilhas Apresentações 137

KMail 138

Kopete vários serviços em um! 139

Ambientes de Desenvolvimento Modelagem Umbrello UML Programação e testes Kdevelop Interface similar ao Visual Studio e ao Delphi Múltiplas linguagens C, C++, Fortran, Java, PHP, Perl, Bash,... Integrado a sistemas de controle de versão CVS e Cervisia kdevdesigner Qt (Trolltech) multiplas plataformas Unix, Windows, MacOSX, PDAs e telefones celulares Eclipse Ambiente de desenvolvimento JAVA 140

Ambientes de Desenvolvimento Controle de Versões rcs Revision Control System cvs Concurrent Versions System subversion Cervisia Interface para o CVS 141

Umbrello Diagramas de estados, classes, ERD,... 142

KDevelop e Qt Designer 143

Eclipse Desenvolvendo em JAVA 144

Sessões Identificação do usuário username e password UID grupo GID Shell padrão Diretório pessoal Sessões locais ou remotas telnet ssh xterm 145

Sessão em modo gráfico kdm Identificação do usuário Escolha do gerenciador de janelas KDE Mais que um simples gerenciador de janelas Totalmente configurável Padrão de fato no Linux Look and feel similar ao do MS Windows 146

Interpretador de comandos Shell Interpretador de comandos originalmente sh no Unix Linguagem de programação Vários disponíveis bash, csh, tcsh, ksh, pdksh, Login shell definido no arquivo /etc/passwd Bash Bourne Again Shell Shell padrão do Linux No linux, o /bin/sh é um link para o /bin/bash Diversas melhorias em relação ao sh e ao ksh 147

Interoperabilidade PC MS-DOS / Windows sistemas de arquivos suportados pelo kernel FAT, VFAT, NTFS emuladores dosemu, wine, VMware, qemu, bochs,... O VMware emula uma arquitetura x86 ou x64 Macintosh MacOS sistema de arquivos suportado pelo kernel emulador Basilisk II Outros ambientes dezenas de emuladores 148

DOSEMU 149

Wine, Paint Brush e Clock 150

VMware com Windows 95 151

MacOS? e PalmOS? Basilisk II rodando MacOS 7.5.5 POSE rodando PalmOS 3.5 152

Mini? Mainframe? SimH PDP-11 rodando RT-11 Hercules IBM 370 rodando VM/370 153

Instalação do Linux Planejamento Definição da função do equipamento Servidor ou Estação de trabalho Serviços a serem instalados Aplicativos a serem instalados Quantidade de memória RAM working set Capacidade de discos Definição dos sistemas de arquivos Rede Protocolos e interconectividade Nomes e endereços 154

Instalação do Linux Particionamento dos discos Criação dos sistemas de arquivos Seleção e instalação dos pacotes RPM : RedHat, SuSE, Fedora, CentOS,... DEB: Debian,... TAR: Slackware,... Configuração usuários e senhas dispositivos serviços 155

Instalação do Linux Particionamento dos discos Criação dos sistemas de arquivos Seleção e instalação dos pacotes Configuração usuários e senhas dispositivos serviços SuSE Linux YaST Yet Another Setup Tool Instalação, configuração e administração Módulo de atualização on-line : YOU Integrado ao KDE Control Center 156

Instalação de software via YaST 157

Linux em rede Rede TCP/IP protocolos pelo kernel Redes Microsoft Windows NBT (NetBIOS over TCP/IP) endereços IPv4 e/ou IPv6 protocolo smbfs suportado pelo kernel Máscaras smbclient Gateway servidor samba Rotas aplicativos padrão Domain logons, profiles, shares,... ifconfig, ip, route, netstat, ping, arp, dig,... 158

Linux em rede Rede Novell / Netware protocolo IPX suportado pelo kernel protocolo ncpfs suportado pelo kernel pacote ncpfs com utilitários nw* e ncp* Rede Macintosh protocolo appletalk suportado pelo kernel pacote netatalk com utilitários atalkd, afpd, papd, timelord,... e outros 159

Interfaces de rede Interfaces ethernet placas PCI, ISA, PC-MCIA, USB, WiFi,... conexões PPP (modem, DSL,...) módulos do kernel Identificação interfaces lo, ethi, siti, rausbi, pppi, tapi, dsli,... apelidos (interfaces virtuais) ethi:ident parâmetros: MAC, IP, máscara, broadcast, métrica, MTU,... 160

TCP/IP Modelo de referência OSI da ISO Open Systems Interconnection International Organization for Standardization Suite de protocolos TCP/IP Transmission Control Protocol / Internet Protocol 4 camadas Application: DNS, HTTP, FTP, SMTP, POP,... Transport: TCP, UDP Network: IPv4, IPv6, ICMP, IGMP,... Data Link: ARP, RARP, OSPF, NDP,... 161

RM/OSI da ISO Comunicação entre as camadas 162

Internet Protocol IP IPv4 número de 32 bits (4 bytes) representado por 4 números separados por '.' NetId e HostId => x.y.z.w Ex: 3373372061= 0xC911929D = 201.17.146.157 Classes Classe valor de x NetId HostId Redes Hosts A 1-126 x y.z.w 126 16.777.214 B 128-191 x.y z.w 16.384 65.534 C 192-223 x.y.z w 1.097.151 254 D 224-239 Endereços de multicast E 240-247 Reservada F Experimentais ou reservadas 163

Endereçamento IPv4 Classes e subclasses 32 bits R bits H bits NetId HostId 2H IPs : 0 <= HostId <= 2H-1 2H-2 endereços disponíveis HostId 0 : endereço de rede HostId 2H-1 : endereço de broadcast Endereço de Rede NetId/R Bloco CIDR Máscara Classless Inter-Domain Routing NetId com todos os bits em 1 HostId com todos os bits em 0 164

Endereços IPv4 especiais Rede local 0.0.0.0/8 Loopback 127.0.0.0/8 Redes privadas 10.0.0.0/8 1 classe A 172.16.0.0/12 16 classes B 192.168.0.0/16 256 classes C 165

Subclasses Seja uma classe X do IPv4 N bits do HostId são adicionados ao NetId 2N Subclasses com R+N bits no NetId e H-N bits no HostId 2H- - N IPs disponíveis em cada subclasse Exemplo Classe: 200.100.50.0/24 4 Subclasses com 64 IPs cada uma: 200.150.50.0/26 200.150.50.64/26 200.150.50.0 a 200.150.50.63 200.150.50.64 a 200.150.50.127 200.150.50.128/26 200.150.50.128 a 200.150.50.191 200.150.50.192/26 200.150.50.192 a 200.150.50.255 166

Exercício Um provedor possui o bloco CIDR 180.90.0.0/16 Qual a classe que ele possui? Quantos IPs ele possui? Ele decide criar subclasses com 512 IPs Quantas subclasses ele criou? Qual a máscara para as subclasses? Cite 3 subclasses (rede e máscara). 167

Roteamento Tabela de roteamento Endereço de destino Máscara Endereço do gateway Interface Métrica Rota default destino 0.0.0.0 Ferramentas de configuração e diagnóstico ifconfig route netstat ip ping bing traceroute tracepath tcpdump iptraf wireshark 168

A Internet Rede global de computadores Suite de protocolos TCP/IP Órgãos reguladores IAB Internet Architecture Board IETF - Internet Engineering Task Force IESG Internet Engineering Steering Group IANA Internet Assign Numbers Authority ISOC Internet Society 169

Serviços de redes DNS - Domain Name System Software BIND resolução de nomes zones (domínios e domínios reversos) Servidor WEB Software Apache páginas HTML, CGIs, SSIs,... sites : virtual hosts proxy Proxy Software SQUID cache e controle de acesso (ACLs) plugins como o squidguard 170

Serviços de redes - cont. Correio eletrônico e-mail Recebimento e envio de e-mails Software Sendmail, Postfix, Exim, qmail,... qpopper, cucipop, dovecot,... imapd,... 171

Serviços de rede - cont. Sessões remotas Telnet, rlogin, ssh Xterminals Transferências de arquivos NFS, FTP, SCP, SMB, NCP,... Segurança SSL (SSH, SCP, SFTP) VPN PGP (autenticação e privacidade) 172

DNS Domain Name System Resolução de nomes e endereços Base hierárquica distribuida ARPANET, 1970, HOSTS.TXT ==> /etc/hosts DNS e DNS reverso www.suse.de 195.135.220.3 173

Software de DNS BIND - Berkeley Internet Domain - http://www.bind9.net /etc/named.conf opções globais zonas (nomes e endereços) e opções específicas /var/lib/named/* definição das zonas diretivas e registros RR Resolver library /etc/resolv.conf servidor de nomes domínios 174

BIND Diretivas $ORIGIN subdomínio $INCLUDE arquivo $TTL ttl $GENERATE faixa lhs [ ttl ] [ classe ] tipo rhs [ comentários ] Registros RR [ domínio ] [ ttl] [ classe ] tipo dados classe : IN tipo : HS CH tipo do RR SOA NS RP HINFO... MX A LOC WKS PTR TXT CNAME SRV DNSKEY NSEC 175

DNS - Exemplo Domínio: meudominio.com.br Rede local: 192.168.0.0/24 Em /etc/named.conf zone meudominio.com.br { zone 0.168.192.in-addr.arpa { type master; type master; file master/meudominio.com.br.zone ; file master/192.168.0.zone ; allow_update { none }; allow_update {none }; notify yes; notify yes;... # outras opções...... # outras opções... }; } 176

DNS Exemplo - cont. Em /var/lib/named/master/meudominio.com.br.zone $TTL 1D $ORIGIN com.br. meudominio IN SOA meudominio.com.br. root.meudominio.com.br. { 2010011501 ; serial 4H ; refresh 1H ; retry 1W ; expire 1D ; minimum ttl } IN NS ns.meudominio.com.br. IN NS ns.outrodominio.com.br. ; DNS secundário IN MX 10 mail.meudominio.com.br. IN A 192.168.0.5 $ORIGIN meudominio.com.br. ns IN A 192.168.0.1 mail IN A 192.168.0.2 www IN A 192.168.0.5 177

DNS reverso Exemplo - cont. Em /var/lib/named/master/192.168.0.zone $TTL 1D @ IN SOA meudominio.com.br. root.meudominio.com.br. { 2010011501 ; serial 4H ; refresh 1H ; retry 1W ; expire 1D ; minimum ttl } IN NS ns.meudominio.com.br. IN NS ns.outrodominio.com.br. ; DNS secundário IN MX 10 mail.meudominio.com.br. $ORIGIN 0.168.192.in-addr.arpa. 1 IN PTR ns.meudominio.com.br. 2 IN PTR mail.meudominio.com.br. 5 IN PTR www.meudominio.com.br. 178

DNS - ferramentas Servidor named Pesquisas por nomes / IPs dnsdomainname host nslookup dig dnsquery Informações sobre os domínios (nomes ou IPs) whois Transferência de zonas named-xfer 179

Servidor WEB Apache - http://www.apache.org HTML, SSI, CGI Módulos php, perl, python,... Características Suporte a hosts virtuais Proxy Redirecionamento de URLs Configurações /etc/apache2/* /etc/httpd/* Sites /srv/www/* /var/www/* 180

Apache - configuração Parâmetros Importantes DocumentRoot diretório Listen [ip:]porto NameVirtualHost { * ip } [ : porto ] user usuário group grupo DirectoryIndex arquivo_indice... Outros parâmetros (server tuning) StartServers MaxClients MinSpareServers MaxSpareServers Timeout KeepAlive MaxKeepAliveRequests MaxRequestPerChild... 181

Sites - VirtualHost - exemplo <VirtualHost meudominio.com.br> ServerName www.meudominio.com.br ServerAlias meudominio.com.br DocumentRoot /srv/www/meudominio.com.br/htdocs ErrorLog /srv/www/logs/meudominio.com.br-error.log AccessLog /srv/www/logs/meudominio.com.br-access.log ScriptAlias /cgi-bin/ /srv/www/meudominio.com.br/cgi-bin/ Alias /icons/ /srv/www/meudominio.com.br/icons/ <Directory /srv/www/meudominio.com.br/htdocs > AllowOverhide None Options -Indexes Order Allow,Deny Allow from all </Directory> </VirtualHost> 182

Logs do Apache Logs de erros e de acessos Definidos em ErrorLog e AccessLog para cada site Relatórios e estatísticas de acesso aos sites através de interface WEB webalizer 183

Proxy Squid - http://www.squid-cache.org acelerador de acesso à WEB (cache) controle de acesso controle de banda Configuração /etc/squid/squid.conf Parâmetros importantes cache_peer max_open_disk_fds maximum_object_size_in_memory http_port https_port cache_dir cache_mem acl http_access icp_access htcp_access memory_replacement_policy miss_access reply_body_max_size maximum_object_size... 184

Controle de Acesso ACL Access Control Lists acl nome tipo argumentos acl nome tipo arquivo Tipos src dst port myport myip proto method browser user time maxconn http_status ident url_regex urlpath_regex proxy_auth srcdomain srcdom_regex snmp_community dstdomain dstdom_regex... Redirecionamento para programas filtros redirect_program programa [ argumentos ] squidguard 185

Squid Uso de ACLs Acesso a páginas WEB http_access { allow deny } [! ] nome_acl... AND para as ACLs na linha OR entre as linhas Se a regra bate, executa a ação (allow ou deny) Regra para escrita de ACLs ACLS : O que será controlado! Não preocupar com permissão ou negação! http_access: Verificar o que é genérico e o que é específico! 186

ACLs - exemplos Definição das ACLs acl all src all acl local_net src 192.168.0.0/24 acl bad_words urlpath_regex /etc/squid/bad_words.txt acl forbidden_sites dstdomain /etc/squid/forbiden_sites.txt acl worktime time M-F 08:00-17:59 Uso das ACLs http_access deny bad_words http_access deny! local_net http_access allow worktime! forbidden_sites http_access deny all 187

Logs do squid Logs de acesso, cache e armazenamento Em /var/log/squid/ access.log cache.log store.log Relatórios e estatísticas calamaris sarg (entre centenas...) 188

Sistema de e-mails Correio eletrônico Componentes MUA Mail User Agent interface com o usuário kmail, webmail, thunderbird, xfmail, mutt, pine,... MTA Mail Transport Agent agente de envio de e-mail sendmail, postfix, exim, qmail,... MDA Mail Delivery Agent entrega final do e-mail procmail Protocols [E]SMTP POP3[S] IMAP[S] qpopper, cucipop, dovecot,... imapd, cyrus-imapd, courier-imap,... 189

O caminho de um e-mail MUA MTA1 MTA2 MTAk MDA MUA Email p/ usuário@destino MUA MTA1 [E]SMTP MTA1 MTA2, MTAi MTAj [E]SMTP : smart host ou MX(destino) MTAk MDA No MX(destino) MDA caixa postal do usuário MUA lê a caixa postal POP ou IMAP Em qualquer componente (MUA, MTA ou MDA) Filtros anti-virus, anti-spam, black list,... 190

O e-mail Formato padrão (como armazenado no /var/spool/mail) From hmarx@linuxtech.com.br Fri Dec 25 14:39:40 2009 Return Path: <hmarx@linuxtech.com.br> Received: (from hmarx@atlas.linuxtech.com.br>) by atlas.linuxtech.com.br (8.14.3/8.14.3) id o0b3rjxc027009 for diana; Fri, 25 Dec 2009 14:39:38 0200 Date: Fri, 25 Dec 2009 14:39:30 0200 From: Helio Marques<hmarx@linutech.com.br> Message Id: <200912251639.o0B3Rjxc027009@atlas.linuxtech.com.br> To: diana@linuxtech.com.br Subject: Feliz Natal Oi Diana! Um Feliz Natal para você, minha princesinha! Beijos, Papai. 191

O protocolo SMTP Ethernet TCP/IP MUA ou MTA MTA connect Greetings Hello Hello mail from sender Ok mail to recipient Ok @ Ok quit close close 192

Filtros de e-mail Conexão IP ou domínio (DNS reverso) Negociação do Hello Remetente usuário e/ou domínio Destinatário usuário e/ou domínio Conteúdo Filtros: SPAM, virus, listas cinzas ou negras,.. Cabeçalho: Assunto Conteúdo: Corpo, anexos 193

Software para filtrar e-mails Amavis Separa o e-mail em componentes e anexos Anexos banidos Executa outros filtros nestes componentes Antivirus antivir uvscan clamav avg f-prot kaspersky... Anti-spam spamassassin junkfilter spamfilter Blakmail... Expressões regulares, listas DNSBL milter-regexp milter-greylist... 194

Configuração do sistema de e-mails Planejamento Servidor dos protocolos SMTP, POP, IMAP Software e serviços anti-virus e anti-spam MTA, MDA, webmail,... Domínios locais local delivery : MDA Domínios MX secundário (relay) Configuração dos componentes MTA, MDA e MUA Software de filtros 195

Sendmail Arquivo principal /etc/sendmail.cf Arquivos auxiliares em /etc/mail/ aliases access local-host-names virtusertable mailertable domaintable userdb genericstable relay-domains trusted-users Outros arquivos (filtros) spamassassin/* milter-regex milter-greylist... Configuração manual linux.mc linux.submit.mc linux.nullclient.mc submit.cf Makefile para criar.db a partir dos arquivos texto modificados ou executar para cada arquivo texto: makemap hash arquivo.db < arquivotexto newaliases ou sendmail -bi 196

Reencaminhamento de mensagens Conceitos: e-mails, contas e caixas postais /etc/mail/aliases ~usuário/.forward lista de destinos separados por ',' usuário \usuário programa parâmetros Exemplos carlos@dominio-externo.com \jose, maria, pedro@outrodominio.com.br. sendsms 9999-1234 \joao, /usr/bin/vacation joao 197

Sendmail Filter : Milter http://www.milter.org amavisd-milter /etc/sendmail.cf O InputMailFilters=milter-amavis Xmilter-amavis, S=local:/var/run/amavis/amavis-milter.sock, T=S:10m;R:10m;E:10m Detecção semi automática dos antivirus instalados Uso do spamd /etc/amavisd.conf 198

Segurança Questão de confiança Usuários, Grupos e suas senhas Permissões de acesso Cuidados especiais: usuário root programas SUID Links de comunicação Acesso (links dedicados ou discados) Serviços disponíveis 199

Formas de ataque Man in the middle escuta em conexões rede, modem, serial, wireless,... Ativo e Passivo Denial of Service (DoS) Distributed (DDoS) IP spoofing engana o TCP/IP alterando origem dos pacotes 200