SlideShare ist ein Scribd-Unternehmen logo
1 von 75
Downloaden Sie, um offline zu lesen
Pós­gradaduação em redes de computadores




Administração de redes 
     Unix/Linux

     Marcelo Barros de Almeida
  marcelobarrosalmeida@gmail.com
Aula 02: Sumário

   Inicialização do sistema
   Direitos e permissões
   Administrando grupos e usuários
   Gerenciado processos
   Configuração de rede
        Básica
        Avançada
Pós­gradaduação em redes de computadores




          Inicialização do sistema
Inicialização do sistema

   Inspirada no Unix System V e                           BIOS

    adotada por várias distros Linux
                                                        Boot Loader
   Define níveis de execução (podem 
                                                                      kernel+initrd
    variar dependendo da distro):
                                                           linuxrc
     0) Halt (desligamento seguro)
     1) Single user mode                                              rootfs

     2) Multi­user mode, sem NFS ou serviços                init
        avançados de rede
                                                                      inittab
     3) Full multi­user mode, com todos os serviços
                                                             rc
     4) Não definido
     5) Como no 3 e mais o X11                                        rc[S0­6].d

     6) Restart                                       Sistema operando
Inicialização do sistema

   BIOS (Basic Input Output System)            BIOS

   Inicializa o hardware do sistema e       Boot Loader
    carrega os primeiros 512 bytes do 
                                                           kernel+initrd
    disco (MBR, Master Boot Record)
                                                linuxrc
   O boot loader é então executado 
                                                           rootfs
    (atualmente o GRUB)
                                                 init
   O GRUB lê e executa a inicialização 
    de partida                                             inittab

        /boot/grub/menu.lst                      rc

                                                           rc[S0­6].d

                                           Sistema operando
Inicialização do sistema

   Parte do menu.lst                                       BIOS

title      Ubuntu 8.04, kernel 2.6.24­19­generic
root     (hd0,0)                                         Boot Loader
kernel /vmlinuz­2.6.24­19­generic root=UUID=<id> ro 
                                                                       kernel+initrd
initrd   /initrd.img­2.6.24­19­generic 
   O grup é informado sobre o kernel a                     linuxrc
    usar, a partição principal (/) e o initrd                          rootfs
    (Initial RAM Disk)
                                                             init
        O initrd é montado em memória e 
                                                                       inittab
         permite inicializações mais exóticas, 
         detecção de hardware, carregamento de                rc
         drivers, etc
                                                                       rc[S0­6].d
   O script /linuxrc, dentro do initrd, é 
    quem roda neste momento                            Sistema operando
Inicialização do sistema

   No final do linuxrc, é executado o             BIOS

    programa init. O init lê as instruções 
    de partida do /etc/inittab, onde            Boot Loader

    também é definido o nível de                              kernel+initrd
    execução (runlevel, de 0­6 e S).               linuxrc
   Formato do inittab:                                       rootfs
        id:runlevels:action:process                init
   Exemplos:                                                 inittab
     id:2:initdefault:
     si::sysinit:/etc/init.d/rcS                     rc
     l2:2:wait:/etc/rc.d/rc 2
     ca::ctrlaltdel:/sbin/shutdown -r now                     rc[S0­6].d
     1:2345:respawn:/sbin/getty 38400 tty1
                                              Sistema operando
Inicialização do sistema

   A linha do sysinit é executada (rcS)                      BIOS

   Com o runlevel definido (initdefault),                 Boot Loader
    vários scripts são executados
                                                                         kernel+initrd
   Cada runlevel tem seu diretório:
                                                              linuxrc
     /etc/rc<r>.d/       (ex: /etc/rc2.d/)
                                                                         rootfs
   Todos os scripts ficam em init.d:
                                                               init
     /etc/init.d/script [start|stop|restart]
                                                                         inittab
   Links simbólicos são criados do 
                                                                rc
    diretório de runlevel para o initd.
                                                                         rc[S0­6].d
     /etc/rc<r>.d/[S|K]<nn>script → /etc/init.d/script
                                                         Sistema operando
Inicialização do sistema

   Dentro do diretório de runlevel, é                   BIOS

    usada a seguinte notação para o 
    arquivo:                                          Boot Loader

     [S|K]<nn>script                                                kernel+initrd

        S (start): executar o script neste nível        linuxrc

        K (kill): parar o script neste nível                       rootfs

        nn: número que indica a ordem deve ser           init
         executado o script
                                                                    inittab
   Ao final, o sistema estará em 
                                                           rc
    operação e completamente 
    inicializado                                                    rc[S0­6].d

                                                    Sistema operando
Inicialização do sistema

   Obviamente, é chato colocar serviços para rodar em um 
    runlevel manualmente, apesar de possível
   O comando update­rc.d ajuda muito neste processo. 
    Basta criar o script no init.d e acertar o runlevel:
     touch /etc/init.d/meusrv
     update­rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 .
      $ sudo touch /etc/init.d/meusrv
      $ sudo update-rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 .
       Adding system startup for /etc/init.d/meusrv ...
         /etc/rc0.d/K50meusrv -> ../init.d/meusrv
         /etc/rc6.d/K50meusrv -> ../init.d/meusrv
         /etc/rc1.d/S40meusrv -> ../init.d/meusrv
         /etc/rc2.d/S40meusrv -> ../init.d/meusrv
         /etc/rc3.d/S40meusrv -> ../init.d/meusrv
         /etc/rc4.d/S40meusrv -> ../init.d/meusrv
         /etc/rc5.d/S40meusrv -> ../init.d/meusrv
         /etc/rc6.d/S40meusrv -> ../init.d/meusrv
Inicialização do sistema

   Também é simples remover serviços:
     update­rc.d ­f meusrv remove
     rm /etc/init.d/meusrv




      $ sudo update-rc.d -f meusrv remove
       Removing any system startup links for /etc/init.d/meusrv ...
         /etc/rc0.d/K50meusrv
         /etc/rc1.d/S40meusrv
         /etc/rc2.d/S40meusrv
         /etc/rc3.d/S40meusrv
         /etc/rc4.d/S40meusrv
         /etc/rc5.d/S40meusrv
         /etc/rc6.d/K50meusrv
         /etc/rc6.d/S40meusrv
      $ sudo rm /etc/init.d/meusrv
Inicialização do sistema

   Outro utilitário que merece destaque e com GUI, é o sysv­
    rc­conf (rcconf no Debian)
Inicialização do sistema

   Alguns comandos úteis:
        runlevel: mostra o nível de execução anterior e atual
        telinit: muda o nível de execução do sistema
             telinit 6  → restart o sistema
        init: também permite mudar o nível de execução atual 
Pausa para o exercício

   Usando o script a seguir, determine que 
    ele seja executado nos runlevels 2 e 3 
    somente, de forma automática.
     #!/bin/sh
     # Servico de teste

     case "$1" in
     start)
         echo "Iniciando o servico meusrv ..."
         ;;
     stop)
         echo "Parando o servico meusrv ..."
         ;;
     restart)
         echo "Re-iniciando o servico meusrv ..."
         ;;
     *)
         echo "Sintaxe: $0 {start|stop|restart}"
         exit 1
         ;;
     esac
     exit 0
                                                    14
Inicialização do sistema no Ubuntu:
    Upstart
   O init é antigo e existem projetos mais recentes:
        Initng: Debian/Ubuntu
        SMF (Service Management Facility): Solaris
        Launchd: Mac OS
        BootScripts: GoboLinux
        Upstart: Ubuntu/Fedora/Suse
Inicialização do sistema no Ubuntu:
    Upstart
   Mais flexível e baseado em eventos. 
    Permite um melhor tratamento de 
    mudanças (hardware, sistemas de 
    arquivo, etc) e possibilita inicialização 
    concorrente.
   Não existem mais runlevels, eles são 
    emulados na lógica do upstart por 
    motivos de compatibilidade.
   No fundo, o upstart é uma máquina de 
    estados, onde os estados executam 
    tarefas/serviços (jobs) e as transições 
    são feitas por eventos (events). Os 
    eventos podem ser gerados pelo               Com o upstart, é possível uma análise 
    Upstart, jobs ou por comandos.               completa do boot através do bootchart.
Inicialização do sistema no Ubuntu:
    Upstart
   Jobs:
        Ficam em /etc/event.d/, sendo arquivos texto com uma 
         sequência de instâncias (stanzas).
        Podem ser do tipo tarefa ou serviço:
             Tarefa: executa alguma coisa e fica em estado de espera ao 
              terminar
             Serviço: ficam sempre em execução a menos que terminados 
              manualmente
        O Job deve conter uma instância exec ou script, dizendo o que 
         será feito no job
Inicialização do sistema no Ubuntu:
    Upstart
   Eventos:
        Podem ser gerados pelos jobs, pelo upstart ou mesmo 
         manualmente. 
        Alguns eventos do Upstart:
             startup
             shutdown
             stalled (quando não existem mais processos rodando)
             control­alt­delete
             power­status­change
             starting, started
             stopping, stopped
Inicialização do sistema no Ubuntu:
    Upstart
    Emulação dos runlevels dentro do upstart




                         logd



    upstart                      stopped                runlevel 2         stopped
              startup
                           rcS             rc­default                rc2             tty1

    control­alt­delete


                    control­alt­delete
Inicialização do sistema no Ubuntu:
 Upstart
# rcS - runlevel compatibility                      # rc2 - runlevel 2 compatibility

start on startup                                    start on runlevel 2
stop on runlevel                                    stop on runlevel [!2]
console output                                      console output
script                                              script
     runlevel --set S >/dev/null || true                 set $(runlevel --set 2 || true)
                                                         if [ "$1" != "unknown" ]; then
    PREVLEVEL=N                                              PREVLEVEL=$1
    RUNLEVEL=S                                               RUNLEVEL=$2
    export PREVLEVEL RUNLEVEL                                export PREVLEVEL RUNLEVEL
                                                         fi
     exec /etc/init.d/rcS                                exec /etc/init.d/rc 2
end script                                          end script


# rc - runlevel compatibility

start on stopped rcS
script
     runlevel --reboot || true
     if grep -q -w -- "-s|single|S" /proc/cmdline; then
         telinit S
     elif [ -r /etc/inittab ]; then
         RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)"
         if [ -n "$RL" ]; then
          telinit $RL
         else
          telinit 2
         fi
     else
         telinit 2
     fi
end script
Inicialização do sistema no Ubuntu:
    Upstart
   Comandos úteis:
        initctl: controla jobs e emite sinais
        start/stop: controlam jobs



     initctl emit meuevt start           # /etc/event.d/meusrv
     initctl emit meuevt stop            #
                                         start on meuevt start
     inictl start meusrv                 stop on meuevt stop
     initctl stop meusrv                 console output

     start meusrv                        script
     stop meusrv                             rm /tmp/log.txt
                                             while /bin/true;
     initctl list                            do
                                                  echo "Running meusrv" >>
                                         /tmp/log.txt
                                                  sleep 1
                                             done
                                         end script
Pausa para o exercício

   Coloque o script abaixo dentro da 
    estrutura do upstart. Tente alterá­lo para 
    que seja inicializado somente dentro do 
    runlevel 2.
   Tente instalar o bootchart e analise sua 
    inicialização.
     # /etc/event.d/meusrv
     #
     start on meuevt start
     stop on meuevt stop
     console output
     script
         echo "Running meusrv" > /tmp/log.txt
         while /bin/true;
         do
             date >> /tmp/log.txt
             sleep 1
         done
     end script
                                                  22
Pós­gradaduação em redes de computadores




           Direitos e permissões




                                           23
Direitos e permissões
   O acesso a arquivos/diretórios é dividido em 3 conjuntos 
    de direitos:
        Dono: direitos relacionados a quem criou o arquivo.
        Grupo: direitos relacionados a um grupo de usuários que pode 
         ter acesso ao arquivo.
        Outros: direitos relacionados aos usuários que não são donos ou 
         não estão em grupos relacionados ao arquivo.
   Cada conjunto de direitos possui 3 atributos:
        r (read): direitos de ler (se for arquivo) ou listar conteúdo (se 
         diretório)
        w (write): direitos de modificar/apagar
        x (execution): direitos de executar (se for arquivo) ou de acessar 
         (se for diretório)                                                 24
Direitos e permissões

           Arquivos (­), diretórios (d) ou links (l)


                          rw­: direitos do dono 
               (leitura,modificação, mas não é executável)

                                     r­­: direitos do grupo 
                             (leitura somente, não é executável)

                                            r­­: direitos dos outros 
                                    (leitura somente, não é executável)

                                       dono (UID: user ID)

                                                grupo (GID: group ID)

 $ ls -l

 -rw-r--r-- 1 marcelo marcelo    0 2008-06-22 16:49 arquivo
 drwxr-xr-x 2 marcelo marcelo 4096 2008-06-22 16:49 diretorio
 lrwxrwxrwx 1 marcelo marcelo    7 2008-06-22 16:49 link -> arquivo
                                                                          25
Direitos e permissões

   Exemplos de direitos de acesso para um arquivo:
        ­rw­­­­­­­: Arquivo com direitos de acesso exclusivos para o dono
        ­rw­r­­­­­: Um determinado grupo pode ler o arquivo, mas só o 
         dono modifica
        ­rw­r­­r­­: Qualquer um pode ler o arquivo, mas só o dono 
         modifica
        ­rw­rw­r­­: Qualquer um pode ler o arquivo, mas só o dono ou 
         alguém do grupo pode modificar
        ­rwxrwxr­x: Qualquer um pode ler e executar o arquivo, mas só o 
         dono ou alguém do grupo pode modificar
        ­rwxr­xr­­: O grupo pode ler e executar, o dono pode, 
         adicionalmente, modificar. O resto apenas pode ver o conteúdo
                                                                             26
Direitos e permissões

   Exemplos de direitos de acesso para um diretório:
        drwx­­­­­­: Somente o dono pode modificar e entrar no diretório
        drwxr­xr­x: O dono tem amplos poderes sobre o diretório, 
         enquanto o grupo e o resto apenas podem entrar no diretório e 
         listar o seu conteúdo
        drwx­­x­­x: O dono tem amplos poderes sobre o diretório, 
         enquanto o grupo e o resto apenas podem entrar no diretório
        drwxrwx­­­: Grupo e dono com amplos direitos no diretórios
   O root tem amplos poderes de acesso, independente dos 
    direitos configurados


                                                                           27
Direitos e permissões especiais

   Além das permissões já vistas existem ainda um conjunto 
    avançado de permissões especiais. Elas devem ser 
    usadas com cuidado para não gerar falhas de segurança.
        SUID bit (s): Permite que quem executa o arquivo tenha direitos 
         iguais ao dono do arquivo, durante a execução. Útil para 
         programas como passwd.
        SGID bit (s): Permite que quem executa o arquivo tenha direitos 
         iguais ao groupo do arquivo, durante a execução. Se diretório, 
         força que arquivos criados dentro desse diretório tenham o 
         mesmo grupo do diretório pai. Útil em diretórios compartilhados 
         por um grupo.
        Stick bit (t): Garante que só quem criou o arquivo possa removê­
         lo. Importante para diretórios compartilhados como /tmp.
                                                                            28
Mudando direitos e permissões com chmod
    usando a forma relativa
   chmod [a|u|g|o][+|­|=][r|w|x|s|t] arquivo/diretório
   chmod [alvo][operação][direitos] arquivo/diretório
        Alvos:
             u: user, g: group, o: others, a: all
        Operações:
             +: adiciona direitos, ­: remove direitos, =: adiciona direitos, 
              sem mesclar com os direitos já existente para o alvo
        Direitos:
             r: read, w: write, x:execution, s: set user/group ID, t: stick



                                                                                 29
Mudando direitos e permissões com chmod
    usando a forma relativa
   Exemplos
        chmod g+r <arq>: adiciona direitos de leitura a todos do grupo
        chmod ug+x <dir>: adiciona direitos de acesso ao dono e grupo
        chmod a­x <arq>: retira todos os direitos de execução
        chmod ug=rw <arq>: configura dono e grupo para somente ler e 
         modificar. Não toca nos direitos dos outros
        chmod +t <dir>: liga o stick bit
        chmod u+s: liga o bit de SUID
        chmod g­s: desliga o bit de SGID




                                                                          30
Mudando direitos e permissões com chmod
    usando a forma absoluta
   Outra forma de usar o chmod é com da notação octal, 
    especificando diretamente os direitos através de 4 
    números octais relacionados aos quatro conjuntos:
        chmod 1755 <dir>:
             1 →  0+0+1, somente stick bit no grupo especial
             7 → 4+2+1, read, write e execution para dono
             5 → 4+0+1, read e execution para grupo
             5 → 4+0+1, read e execution para outros

                       especiais       dono           grupo           outros
                       u   g   t   r    w x       r    w x        r     w x
                       4   2   1   4    2     1   4    2      1   4     2   1
                                                                                31
Pausa para o exercício

   Experimente o chmod em suas formas 
    absolutas e relativas. Use o ls ­la para 
    que todos os arquivos sejam mostrados 
    e a listagem fique completa.




                                                32
Pós­gradaduação em redes de computadores




      Administrando grupos e usuários




                                           33
Grupos e usuários:
    Arquivos e diretórios relevantes
   /etc/passwd: armazena informações sobre os usuários, como shell 
    usado, local da conta, etc.
   /etc/group: lista grupos existentes e que usuários fazem parte dele.
   /etc/shadow: armazena as senhas dos usuários, encriptada
   /etc/skel: esqueleto para contas de usuários
   /etc/issue: mensagem exibida na tela de login no terminal (issue.net 
    para logins remotos)
   /etc/motd: mensagem exibida após o login
   /etc/profile: definições de ambiente para todos os usuários
   /etc/default/useradd: definições padrões para criação de usuários 
    (se usado o useradd)
   /etc/adduser.conf: definições padrões para o adduser                   34
Grupos e usuários:
    Principais comandos
   useradd: adiciona contas de usuário
   usermod: modifica parâmetros da conta do usuário
   userdel: remove a conta do usuário
   passwd: ajusta o password para um usuário
   chown: troca o dono de um arquivo/diretório
   Para interação no terminal, use os comandos 
    <operação>user:
        adduser
        deluser


                                                       35
Grupos e usuários:
    Principais comandos
   groupadd: cria um novo grupo
   groupdel: apaga um group
   groupmod: modifica um group
   groups: imprime em quais grupos um usuário está
   chgrp: troca o grupo de um arquivo/diretório
   Também existem os equivalentes interativos:
        addgroup
        delgroup



                                                      36
Grupos e usuários:
    Exemplos de utilização
   Cria o usuário mateus, gerando a sua conta em 
    /home/mateus:
        sudo useradd ­m mateus
   Cria um grupo kid e modifica o usuário mateus para que 
    ele faça parte do grupo:
        sudo groupadd kid
        sudo usermod ­G kid mateus
   Remove o usuário mateus, inclusive apagando toda a sua 
    conta:
        sudo userdel ­r mateus

                                                              37
Pausa para o exercício

   Experimente os comandos relacionados 
    a usuários e grupos, criando, apagando e 
    modificando contas. Verifique como as 
    contas são criadas no /home e tembém 
    experimente alterar os padrões de 
    criação de contas. Altere também donos 
    e grupos com chown e chgrp.




                                                38
Pós­gradaduação em redes de computadores




          Gerenciado processos




                                           39
Gerenciando processos

   Em sistemas Linux, todas as atividades são executadas 
    por processos
   Cada processo possui características como prioridade, 
    status, dono, PID (Process ID), tempo de execução, 
    percentagem de uso de CPU, memória alocada, etc:
        Prioridades: de ­20 (menor) a 19 (maior)
        Running, sleeping, stopped, zombie
        PID: número único que identifica o processo
   O kernel tenta fazer um escalonamento justo dos 
    processos, geralmente dividindo o tempo da CPU entre os 
    vários processos de mesma prioridade de forma igual
                                                             40
Gerenciando processos

   Um processo pode ser executado de fundo (background) 
    ou não (foreground):
        Adicionar ”&” na linha de comando manda o processo para 
         background
        Comandos do bash como bg, fg e jobs lidam com isso 
         diretamente
        Ctrl+Z permite enviar um processo para backgound
   Todo processo tem uma entrada padrão, uma saída 
    padrão e uma saída de erro. Em geral:
        STDIN: entrada padrão
        STDOUT: saída padrão
        STDERR: saída de erro
                                                                    41
Gerenciando processos

   Um processo pode receber uma espécie interrupção de 
    software conhecida como ”sinal” em Unix. 
   Cada sinal tem um número que o identifica e isto pode 
    variar de Unix para Unix.
   Alguns sinais (número entre parênteses):
        SIGTERM (15): sinaliza a terminação do processo
        KILL (9): força a terminação do processo
        HUP (1): Hang up, geralmente usado para reiniciar um processo




                                                                         42
Gerenciando processos:
    Comandos importantes
   ps: permite listar os processos da máquina (ps aux)
   top: permite um acompanhamento dinâmico dos processos (pressione 'h' 
    para detalhes de uso)
   pstree: mostra a árvore de processos
   kill: permite enviar sinais para um processo usando o seu PID
   killall: envia sinais para um processo usando o seu nome
   pkill envia sinais usando características diversas do processo
   nice e renice: permite trocar a prioridade do processo
   pgrep: permite pesquisar na lista de processos por características diversas
   nohup: inicia um processo que não irá terminar ao ser feito o logout no 
    terminal

                                                                               43
Gerenciando processos:
    Exemplos
   Lista todos os processos em execução:
        ps aux
   Envia o sinal de termino forçado para todos os processos 
    chamado make:
        killall ­s 9 make
   Pede ao smb para reler o seu arquivo de configuração:
        kill ­HUP smb
   Executa um comando com nohup, permitindo o logout:
        nohup <meu_script> &
   Mostra os processos do usuário mateus:
        ps ­u mateus                                           44
Agendamento de processos com cron

   Tarefas podem ser agendadas e executadas 
    periodicamente pelo processo ”cron”
   Formas de agendamento:
        Definir um ação e o momento da sua execução, seguindo as 
         regras do cron, no arquivo /etc/crontab
        Definir o seu próprio arquivo cron dentro de /etc/cron.d/
        Colocar um script dentro dos diretórios com escalonamento pré­
         definidos (não precisa seguir a notação do cron):
             /etc/cron.hourly
             /etc/cron.daily
             /etc/cron.weekly
             /etc/cron.monthly
                                                                          45
Agendamento de processos com cron:
    Formato do arquivo crontab
   Cada linha é um registro composto de sete campos que 
    especificam quando um evento deve ocorrer:
        Minutos: de 0 a 59, onde '*' significa todos minutos e '*/10' 
         significa a cada 10 minutos
        Horas: de 0 a 23, onde 3­8 significa que deve acontecer o evento 
         toda hora entre 3 a 8 horas
        Dia do mês: de 1 a 31, onde 3,4 significa apenas os meses 
         março e abril
        Mês: de 1 a 12
        Dia da semana: de 0 a 7, começando e terminando no domingo
        Usuário
        Comando a ser executado
                                                                          46
Agendamento de processos com cron:
    Formato do arquivo crontab
   Exemplos:
        Todo dia as 07:30:
             30  7  *  *  *  root  ps aux >> /var/log/ps.txt
        Dia sim, dia não, as 10:15
             15  10  */2  *  *  root  ps aux >> /var/log/ps.txt 
        De segunda à sexta, de duas em duas horas:
             0  */2  *  *  1­5  root  ps aux >> /var/log/ps.txt




                                                                    47
Agendamento de processos com cron:
    Dicas finais
   Use ”crontab ­e” para adicionar eventos
   No /etc/profile, configure o editor padrão:
        export VISUAL=vim
   Se não quiser usar a notação do crontab, basta criar um 
    script dentro dos diretórios com escalonamento pré­
    definidos:
             /etc/cron.hourly
             /etc/cron.daily
             /etc/cron.weekly
             /etc/cron.monthly


                                                               48
Agendamento de processos com cron:
    Dicas finais
   Usuários comuns também podem usar o cron. Para isso, 
    alguns arquivos devem ser definidos:
        /etc/cron.allow: crie este arquivo e liste os usuários que podem 
         usar o cron, ou ...
        /etc/cron.deny: crie este arquivo e liste os usuários que não 
         podem usar o cron
        /var/spool/crontab será o local onde as entradas dos usuários 
         serão criadas




                                                                             49
Agendamento de processos de única vez

   Para eventos não regulares, o escalonamento pode ser 
    feito com o comando ”at” e do processo atd:
        Define o momento com at            $ at 22:30
                                            at> echo "done"
        Digite os comandos, um por linha   at> Ctrl-d
                                            job 3 at Fri Jun 27 22:30:00 2008
        Finalize com Ctrl+D
   atrm pode remover um comando da fila
   atq mostra a fila de comandos escalonados
   /etc/at.allow e /etc/at.deny dever ser configurados para 
    que usuários comuns possam usar o at


                                                                                50
Pausa para o exercício

   Liste os processos no servidos com ps 
    e também com top. Explore o help do 
    top (pressione ”h”).
   Crie um arquivo com com o script 1. 
    Execute­o algumas vezes, jogando o        #!/bin/bash
                                              # script 1
    processo para background (&). Depois,     while /bin/true;
                                              do
    remova os processos com kill e killall.       date >> /tmp/log.txt
                                                  sleep 1
                                              done
   Usando o cront para agendar 
    execuções periódicas do script 2.         #!/bin/bash
                                              # script 2
                                              date >> /tmp/log2.txt




                                                                         51
Pós­gradaduação em redes de computadores




           Configuração de rede




                                           52
Configuração básica de rede

   Interfaces de rede geralmente começam com eth<n>, n 
    sempre começando com zero
   Alias (apelidos), permitem que vários IPs sejam 
    associados a uma mesma interface física (endereços 
    virtuais). Eles são da forma eth<n>:<m>, ambos 
    começando com zero
   Bridges geralmente são br<n>
   Exemplos: eth0, eth1, eth1:0, eth1:1, br2, br0 




                                                           53
Configuração básica de rede:
    ifconfig
   A configuração manual pode ser feita com ifconfig, 
    presente em várias distribuições Linux:
        ifconfig eth0 10.0.0.10 netmask 255.255.255.0 up
        ifconfig eth0 down
        ifconfig eth0 up
        ifconfig (sem parâmetros, mostra a configuração atual)
   A criação de alias também é simples, bastando definir 
    novos indexes ao final (a interface eth0 já deve estar 
    configurada):
        ifconfig eth0 172.16.0.1 netmask 255.255.255.0 up
        ifconfig eth0:0 172.17.0.1 netmask 255.255.255.0 up
        ifconfig eth0:1 172.18.0.1 netmask 255.255.255.0 up      54
Configuração básica de rede:
    ifconfig
   Alguns detalhes da saída do ifconfig:
              Endereço IPv6



            Estatísticas 
             de rede                          IP, broadcast e máscara         MAC




     eth0            Link encap:Ethernet Endereço de HW 00:0e:35:ba:d0:0f
                     inet end.: 10.0.0.100 Bcast:10.0.0.255 Masc:255.255.255.0
                     endereço inet6: fe80::20e:35ff:feba:d00f/64 Escopo:Link
                     UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
                     pacotes RX:15825 erros:0 descartados:0 excesso:0 quadro:0
                     Pacotes TX:10577 erros:0 descartados:0 excesso:0 portadora:0
                     colisões:0 txqueuelen:1000
                     RX bytes:11462155 (10.9 MB) TX bytes:1052682 (1.0 MB)
                     IRQ:5 Endereço de E/S:0xa000 Memória:fcffe000-fcffefff


Interface
                                                                                    55
Pausa para o exercício

   Experimente mudar a sua configuração 
    de rede através do ifconfig. Depois tente 
    obter a configuração de rede de um 
    servidor DHCP.




                                                 56
Configuração básica de rede:
    DHCP
   O DHCP pode ser configurado como cliente através do 
    utilitário dhclient:
        dhclient <interface>




                                                           57
Configuração básica de rede:
    Roteamento estático
   Para funcionamento completo, algumas rotas são 
    necessárias. O comando route permite adicionar rotas 
    estáticas, configurar o default gateway, etc.
   Exemplos:
        Definindo o gateway default via interface eth0:
             route add default gw 10.0.0.1 dev eth0
        Criando uma rota para uma rede através de um gateway:
             route add ­net 10.1.1.0 netmask 255.255.255.0 gw 
              192.168.1.254 dev eth0  
        Adicionando uma rota direta para um host pela interface eth0:
             route add ­host 172.16.0.2 dev eth0
        A opção del é similar mas permite remoter rotas                 58
Configuração básica de rede:
    Roteamento estático
   Para a figura abaixo, as rotas seriam:
     route add ­net 127.0.0.0 netmask 255.0.0.0 dev lo
     route add ­net 192.168.10.0 netmask 255.255.255.0 dev eth0
     route add ­net 200.210.50.128 netmask 255.255.255.192 dev eth1
     route add default gw 200.210.50.129 dev eth0




                    eth0                       eth1




                                                                      59
Pausa para o exercício

   Crie o roteamento e a configuração de rede para 
    que a topologia abaixo funcione adequadamente.




                                                       60
Configuração básica de rede:
    DNS
   O DNS é configurado dentro do arquivo /etc/resolv.conf, 
    onde os servidores de DNS podem ser listados e o nome 
    do domínio padrão.
        Use nameserver para listar um DNS 
        Use domain para especificar o nome padrão do domínio



                  # conteúdo do /etc/resolv.conf

                  nameserver 10.0.1.1
                  nameserver 10.0.1.2
                  domain baraodemaua.br




                                                                61
Configuração básica de rede:
    DNS
   Hosts e redes podem ser listados manualmente, através 
    dos seguintes arquivos:
        /etc/hosts
        /etc/networks
   O uso é desencorajado, no entanto.
                                                                   Primeiro procure 
   Além, disso, altere a ordem de busca no                       resolver usando o  
    /etc/nsswitch.conf:                                             arquivo hosts, 
                                                                  depois tente o DNS


                      # parte do conteúdo do /etc/nsswitch.conf

                      hosts:         files dns
                      networks:      files



                                                                                        62
Configuração básica de rede:
    Placa de rede
   O programa ethtool é usada para configurar parâmetros 
    da placa de rede. Isto pode ser interessante caso a auto­
    negociação esteja falhando:
        ethtool ­s eth0 speed 10 duplex half
        ethtool ­s eth0 autoneg off
        ethtool ­s eth0 speed 100 duplex full
   Detalhes do driver podem ser obtidos com a opção ”­i”:
        ethtool ­i eth0




                                                                63
Configuração básica de rede:
    Ferramentas auxiliares
   ping: testa a conexão
   traceroute, tracepath: mostra a rota do pacote
   O nestat permite avaliar os serviços de rede em execução:
        netstat ­ltn: portas TCP (­t) em estado de espera de conexão (­l), 
         sem esperar resolução de nome (­n)
        netstat ­lun: idem, mas para UDP (­u)
        netstat ­platune: um bom conjunto de informações, mostrando 
         portas em espera, conexões abertas, etc
        netstat ­i: informações sobre as interfaces de rede
        netstat ­s: estatísticas de rede por protocolo
   ifdown e ifup: permitem ligar/desligar uma interface
                                                                           64
Configuração básica de rede:
    Persistindo a configuração
   A configuração de rede pode ser toda feita dentro do 
    arquivo /etc/network/interfaces, que é lida e executada na 
    partida pelo script /etc/init.d/networking
   Exemplo:
       # The loopback network interface
       auto lo
       iface lo inet loopback

       # The primary network interface
       auto eth0
       iface eth0 inet static
               address 192.168.1.33
               netmask 255.255.255.0
               network 192.168.1.0
               broadcast 192.168.1.255
               gateway 192.168.1.254
               # dns-* options are implemented resolvconf, if installed
               dns-nameservers 193.79.237.39


                                                                          65
Configuração básica de rede:
    Persistindo a configuração
   Outro exemplo, agora com DHCP e IP fixo. Note que:
        auto: lista interfaces que sobem automaticamente na partida
        iface: descreve a interface (eth0, eth1), falando que será usado 
         IPv4 (inet, para IPv6 use inet6) com DHCP para eth0 e IP fixo 
         (static) para eth1

            # The loopback network interface
            auto lo
            iface lo inet loopback

            # The primary network interface
            auto eth0
            iface eth0 inet dhcp

            # The secondary network interface
            auto eth1
            iface eth1 inet static
                address 10.0.1.1
                netmask 255.255.255.0

                                                                             66
Configuração básica de rede:
    Persistindo a configuração
   Existem várias opções interessantes na configuração, 
    como pre­up, pos­up, pre­down e pos­down.
   Consulte o ”man interfaces” para maiores detalhes


     # The loopback network interface
     auto lo
     iface lo inet loopback

     # The primary network interface
     auto eth0
     iface eth0 inet static
                                          Execute após subir 
         address 10.0.0.1                    a interface
         netmask 255.255.255.0
                                           Execute antes de 
         post-up /etc/init.d/vlan start
         pre-down /etc/init.d/vlan stop    desligar interface




                                                                67
Configuração avançada de rede:
    Bridges
   Bridges são equipamentos de camada 2 (enlace) que 
    permitem a interligação de segmentos de uma mesma 
    rede. A bridge pode evitar tráfegos desnecessários uma 
    vez que opera na camada de enlace e também pode ser 
    interessante para gerar configurações adicionais de 
    segurança sem que outra subrede tenha que ser criada.
   Para o sistema, as várias placas da bridge podem ser 
    encaradas como apenas uma, representando a união de 
    todas as outras.

               LAN A                    LAN A
                           Bridge

                                                              68
Configuração avançada de rede:
    Bridges
   Instalar o pacote bridge­utils e criar a bridge:
        brctl addbr br0
   Adicionar interfaces para a bridge:
        brctl addif br0 eth0;  brctl addif br0 eth1 ; ...
   Sendo necessário, configure um IP para a bridge:
        ifconfig br0 10.1.2.3 netmask 255.255.255.0
   A bridge pode ser desfeita removendo­se as intrefaces 
    (delif) e depois removendo­se a própria bridge (delbr)
        brctl delif br0 eth0 ; brctl delif br0 eth1 ; ...
        brctl delbr br0

                                                             69
Configuração avançada de rede:
    VLAN
   As VLANs ou, LANs virtuais, através de uma modificação 
    no quadro ethernet e de dispositivos de camada de enlace 
    especiais (switches com VLAN), permitem um melhor 
    gerenciamento do domínio de colisão/broadcast e também 
    maior segurança.




                                                            70
Configuração avançada de rede:
    VLAN
   As VLANs são criadas como interfaces virtuais 
    eth<n>:<m> onde <m> é o número do ID da VLAN:
        vconfig eth0 10 (criar a interface virtual eth0:10)
        vconfig eth0 20 (criar a interface virtual eth0:20)
   Configure IPs para cada interface criada
        ifconfig eth0:10 10.10.0.1 netmask 255.255.255.0
        ifconfig eth0:20 10.20.0.1 netmask 255.255.255.0
   A VLAN pode ser desfeita através do comando rem:
        vconfig rem eth0:10 
        vconfig rem eth0:20 

                                                               71
Configuração de rede:
    Outros arquivos relacionados
   /etc/services: lista de portas conhecidas
   /proc/sys/net/ipv4/ip_forward: coloque ”1” dentro deste 
    arquivo para permitir o roteamento entre placas. O arquivo 
    /etc/sysctrl.conf permite automatizar isso.




                                                              72
Links úteis
   http://www.freesoftwaremagazine.com/articles/installation_seq_linux
   http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html
   http://upstart.ubuntu.com/getting­started.html
   http://en.wikipedia.org/wiki/Upstart
   http://www.bootchart.org/
   http://www.linux.com/feature/125977
   http://upstart.ubuntu.com/wiki/Stanzas
   http://www.linuxabordo.com.br/wiki/index.php?title=VLAN




                                                                          73
Dúvidas, comentários, sugestões ?




                                                                             74
                           Imagem: cena do filme Madagascar, da DreamWorks
Direitos de cópia


Créditos ­ ShareAlike 2.0
Você é livre para
    copiar, distribuir, apresentar e executar trabalhos
    fazer trabalhos derivados
    fazer uso comercial deste trabalho
Sob as seguintes condições                                                © Copyright 2008
        Créditos. Você deve dar crédito ao autor original.
                                                                           Marcelo Barros
        Compartilhe do mesmo modo. Se você alterar, mudar, 
        ou realizar trabalhos usando este como base,você deve 
                                                                  marcelobarrosalmeida@gmail.com
        redistribuir o trabalhos resultante sob uma licença            Correções, sugestões e 
        idêntica a esta.                                             traduções são bem vindas!
    Para qualquer reuso ou distribuição você deve deixar claro 
    os termos de licença deste trabalho.
    Qualquer  uma destas condições podem ser abandonadas 
    se você obtiver uma permissão do detentor dos direitos 
    autorais.
Faça uso justo e o direitos dos outros não serão afetados de 
    forma alguma pelas restrições acima.
Texto da licença: 
    http://creativecommons.org/licenses/by­sa/2.0/legalcode



                                                                                                   75

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Linux
LinuxLinux
Linux
 
Sistemas operativos servidores
Sistemas operativos  servidoresSistemas operativos  servidores
Sistemas operativos servidores
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Trabalho do sistemas operativos
Trabalho do sistemas operativosTrabalho do sistemas operativos
Trabalho do sistemas operativos
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
Linux
LinuxLinux
Linux
 
Linux para leigos
Linux para leigos Linux para leigos
Linux para leigos
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começou
 
Introduction 2 linux
Introduction 2 linuxIntroduction 2 linux
Introduction 2 linux
 
Dicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do LinuxDicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do Linux
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Linux
LinuxLinux
Linux
 
Windows x Linux
Windows x LinuxWindows x Linux
Windows x Linux
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
Evolução do windows
Evolução do windowsEvolução do windows
Evolução do windows
 
Apresentacao Suse
Apresentacao SuseApresentacao Suse
Apresentacao Suse
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 

Andere mochten auch

Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de redefernandao777
 
Treinamento de comandos Unix e Linux
Treinamento de comandos Unix e LinuxTreinamento de comandos Unix e Linux
Treinamento de comandos Unix e LinuxCid de Andrade
 
Aula 10 configuração ip estático ubuntu server
Aula 10   configuração ip estático ubuntu serverAula 10   configuração ip estático ubuntu server
Aula 10 configuração ip estático ubuntu serverAparicio Junior
 
AdministraçãO Gnu Linux
AdministraçãO Gnu LinuxAdministraçãO Gnu Linux
AdministraçãO Gnu Linuxpeter_lucas
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerTiago Bezerra Dos Santos
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxImpacta Eventos
 
Workshop linux system administration ls
Workshop linux system administration lsWorkshop linux system administration ls
Workshop linux system administration lsLinux Solutions
 
Active directory-conceitos-pratica
Active directory-conceitos-praticaActive directory-conceitos-pratica
Active directory-conceitos-praticaMatheus Carvalho
 
Manutenção completa em pc
Manutenção completa em pcManutenção completa em pc
Manutenção completa em pcKaren Costa
 
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...Video Aulas Linux e Mikrotik
 
Controlador de Domínio Open Source
Controlador de Domínio Open SourceControlador de Domínio Open Source
Controlador de Domínio Open SourceRicardo Pinheiro
 
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...Video Aulas Linux e Mikrotik
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxFrederico Madeira
 

Andere mochten auch (20)

Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de rede
 
Treinamento de comandos Unix e Linux
Treinamento de comandos Unix e LinuxTreinamento de comandos Unix e Linux
Treinamento de comandos Unix e Linux
 
Cap1 exercicios comandos linux
Cap1 exercicios comandos linuxCap1 exercicios comandos linux
Cap1 exercicios comandos linux
 
Aula 10 configuração ip estático ubuntu server
Aula 10   configuração ip estático ubuntu serverAula 10   configuração ip estático ubuntu server
Aula 10 configuração ip estático ubuntu server
 
AdministraçãO Gnu Linux
AdministraçãO Gnu LinuxAdministraçãO Gnu Linux
AdministraçãO Gnu Linux
 
Redes De Computadores - Alberane - 3
Redes De Computadores - Alberane - 3Redes De Computadores - Alberane - 3
Redes De Computadores - Alberane - 3
 
DNS
DNSDNS
DNS
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu Server
 
Instalação e configuração
Instalação e configuraçãoInstalação e configuração
Instalação e configuração
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Workshop linux system administration ls
Workshop linux system administration lsWorkshop linux system administration ls
Workshop linux system administration ls
 
Active directory-conceitos-pratica
Active directory-conceitos-praticaActive directory-conceitos-pratica
Active directory-conceitos-pratica
 
Manutenção completa em pc
Manutenção completa em pcManutenção completa em pc
Manutenção completa em pc
 
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...
Modelo de contrato_de_suporte_e_manutencao_de_redes_e_servidores_linux_para_e...
 
Controlador de Domínio Open Source
Controlador de Domínio Open SourceControlador de Domínio Open Source
Controlador de Domínio Open Source
 
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...
Modelo de contrato_de_prestacao_de_servicos_de_suporte_e_manutencao_de_redes_...
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Lpi autodidata Flisol Florianopolis
Lpi autodidata Flisol FlorianopolisLpi autodidata Flisol Florianopolis
Lpi autodidata Flisol Florianopolis
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 

Ähnlich wie Administração de Redes Linux - II

Android Core Aula 2: Inicialização de um sistema Android
Android Core Aula 2: Inicialização de um sistema AndroidAndroid Core Aula 2: Inicialização de um sistema Android
Android Core Aula 2: Inicialização de um sistema AndroidFelipe Silveira
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do LinuxMauro Tapajós
 
Arquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxArquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxIvani Nascimento
 
Mudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaMudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaSoftD Abreu
 
Resumo LPIC-1 101
Resumo LPIC-1 101Resumo LPIC-1 101
Resumo LPIC-1 101foschi
 
Linux4all#1
Linux4all#1Linux4all#1
Linux4all#1Daniel
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisconogueira
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1willians
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesSoftD Abreu
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2Daniel
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Tchelinux
 
Systemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoSystemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoTchelinux
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafTchelinux
 

Ähnlich wie Administração de Redes Linux - II (20)

Android Core Aula 2: Inicialização de um sistema Android
Android Core Aula 2: Inicialização de um sistema AndroidAndroid Core Aula 2: Inicialização de um sistema Android
Android Core Aula 2: Inicialização de um sistema Android
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Lab so-abertos-unidade3
Lab so-abertos-unidade3Lab so-abertos-unidade3
Lab so-abertos-unidade3
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do Linux
 
Arquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxArquivos de Inicialização do Linux
Arquivos de Inicialização do Linux
 
Mudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaMudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistema
 
LInux - Iinit e systemd
LInux - Iinit e systemdLInux - Iinit e systemd
LInux - Iinit e systemd
 
Resumo LPIC-1 101
Resumo LPIC-1 101Resumo LPIC-1 101
Resumo LPIC-1 101
 
Linux4all#1
Linux4all#1Linux4all#1
Linux4all#1
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisco
 
01 notações iniciais
01   notações iniciais01   notações iniciais
01 notações iniciais
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redes
 
Apostilaredeslinux
ApostilaredeslinuxApostilaredeslinux
Apostilaredeslinux
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
 
Systemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoSystemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo Filho
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
 

Mehr von Marcelo Barros de Almeida

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Marcelo Barros de Almeida
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 

Mehr von Marcelo Barros de Almeida (20)

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Treinamento Qt básico - aula III
Treinamento Qt básico - aula IIITreinamento Qt básico - aula III
Treinamento Qt básico - aula III
 
Treinamento Qt básico - aula II
Treinamento Qt básico - aula IITreinamento Qt básico - aula II
Treinamento Qt básico - aula II
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 

Administração de Redes Linux - II

  • 1. Pós­gradaduação em redes de computadores Administração de redes  Unix/Linux Marcelo Barros de Almeida marcelobarrosalmeida@gmail.com
  • 2. Aula 02: Sumário  Inicialização do sistema  Direitos e permissões  Administrando grupos e usuários  Gerenciado processos  Configuração de rede  Básica  Avançada
  • 4. Inicialização do sistema  Inspirada no Unix System V e  BIOS adotada por várias distros Linux Boot Loader  Define níveis de execução (podem  kernel+initrd variar dependendo da distro): linuxrc 0) Halt (desligamento seguro) 1) Single user mode rootfs 2) Multi­user mode, sem NFS ou serviços  init avançados de rede inittab 3) Full multi­user mode, com todos os serviços rc 4) Não definido 5) Como no 3 e mais o X11 rc[S0­6].d 6) Restart Sistema operando
  • 5. Inicialização do sistema  BIOS (Basic Input Output System) BIOS  Inicializa o hardware do sistema e  Boot Loader carrega os primeiros 512 bytes do  kernel+initrd disco (MBR, Master Boot Record) linuxrc  O boot loader é então executado  rootfs (atualmente o GRUB) init  O GRUB lê e executa a inicialização  de partida inittab  /boot/grub/menu.lst rc rc[S0­6].d Sistema operando
  • 6. Inicialização do sistema  Parte do menu.lst BIOS title      Ubuntu 8.04, kernel 2.6.24­19­generic root     (hd0,0) Boot Loader kernel /vmlinuz­2.6.24­19­generic root=UUID=<id> ro  kernel+initrd initrd   /initrd.img­2.6.24­19­generic   O grup é informado sobre o kernel a  linuxrc usar, a partição principal (/) e o initrd  rootfs (Initial RAM Disk) init  O initrd é montado em memória e  inittab permite inicializações mais exóticas,  detecção de hardware, carregamento de  rc drivers, etc rc[S0­6].d  O script /linuxrc, dentro do initrd, é  quem roda neste momento Sistema operando
  • 7. Inicialização do sistema  No final do linuxrc, é executado o  BIOS programa init. O init lê as instruções  de partida do /etc/inittab, onde  Boot Loader também é definido o nível de  kernel+initrd execução (runlevel, de 0­6 e S).  linuxrc  Formato do inittab: rootfs  id:runlevels:action:process  init  Exemplos: inittab id:2:initdefault: si::sysinit:/etc/init.d/rcS rc l2:2:wait:/etc/rc.d/rc 2 ca::ctrlaltdel:/sbin/shutdown -r now rc[S0­6].d 1:2345:respawn:/sbin/getty 38400 tty1 Sistema operando
  • 8. Inicialização do sistema  A linha do sysinit é executada (rcS) BIOS  Com o runlevel definido (initdefault),  Boot Loader vários scripts são executados kernel+initrd  Cada runlevel tem seu diretório: linuxrc /etc/rc<r>.d/       (ex: /etc/rc2.d/) rootfs  Todos os scripts ficam em init.d: init /etc/init.d/script [start|stop|restart] inittab  Links simbólicos são criados do  rc diretório de runlevel para o initd. rc[S0­6].d /etc/rc<r>.d/[S|K]<nn>script → /etc/init.d/script Sistema operando
  • 9. Inicialização do sistema  Dentro do diretório de runlevel, é  BIOS usada a seguinte notação para o  arquivo: Boot Loader [S|K]<nn>script kernel+initrd  S (start): executar o script neste nível linuxrc  K (kill): parar o script neste nível rootfs  nn: número que indica a ordem deve ser  init executado o script inittab  Ao final, o sistema estará em  rc operação e completamente  inicializado rc[S0­6].d Sistema operando
  • 10. Inicialização do sistema  Obviamente, é chato colocar serviços para rodar em um  runlevel manualmente, apesar de possível  O comando update­rc.d ajuda muito neste processo.  Basta criar o script no init.d e acertar o runlevel: touch /etc/init.d/meusrv update­rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 . $ sudo touch /etc/init.d/meusrv $ sudo update-rc.d meusrv start 40 1 2 3 4 5 6 . stop 50 0 6 . Adding system startup for /etc/init.d/meusrv ... /etc/rc0.d/K50meusrv -> ../init.d/meusrv /etc/rc6.d/K50meusrv -> ../init.d/meusrv /etc/rc1.d/S40meusrv -> ../init.d/meusrv /etc/rc2.d/S40meusrv -> ../init.d/meusrv /etc/rc3.d/S40meusrv -> ../init.d/meusrv /etc/rc4.d/S40meusrv -> ../init.d/meusrv /etc/rc5.d/S40meusrv -> ../init.d/meusrv /etc/rc6.d/S40meusrv -> ../init.d/meusrv
  • 11. Inicialização do sistema  Também é simples remover serviços: update­rc.d ­f meusrv remove rm /etc/init.d/meusrv $ sudo update-rc.d -f meusrv remove Removing any system startup links for /etc/init.d/meusrv ... /etc/rc0.d/K50meusrv /etc/rc1.d/S40meusrv /etc/rc2.d/S40meusrv /etc/rc3.d/S40meusrv /etc/rc4.d/S40meusrv /etc/rc5.d/S40meusrv /etc/rc6.d/K50meusrv /etc/rc6.d/S40meusrv $ sudo rm /etc/init.d/meusrv
  • 12. Inicialização do sistema  Outro utilitário que merece destaque e com GUI, é o sysv­ rc­conf (rcconf no Debian)
  • 13. Inicialização do sistema  Alguns comandos úteis:  runlevel: mostra o nível de execução anterior e atual  telinit: muda o nível de execução do sistema  telinit 6  → restart o sistema  init: também permite mudar o nível de execução atual 
  • 14. Pausa para o exercício  Usando o script a seguir, determine que  ele seja executado nos runlevels 2 e 3  somente, de forma automática. #!/bin/sh # Servico de teste case "$1" in start) echo "Iniciando o servico meusrv ..." ;; stop) echo "Parando o servico meusrv ..." ;; restart) echo "Re-iniciando o servico meusrv ..." ;; *) echo "Sintaxe: $0 {start|stop|restart}" exit 1 ;; esac exit 0 14
  • 15. Inicialização do sistema no Ubuntu: Upstart  O init é antigo e existem projetos mais recentes:  Initng: Debian/Ubuntu  SMF (Service Management Facility): Solaris  Launchd: Mac OS  BootScripts: GoboLinux  Upstart: Ubuntu/Fedora/Suse
  • 16. Inicialização do sistema no Ubuntu: Upstart  Mais flexível e baseado em eventos.  Permite um melhor tratamento de  mudanças (hardware, sistemas de  arquivo, etc) e possibilita inicialização  concorrente.  Não existem mais runlevels, eles são  emulados na lógica do upstart por  motivos de compatibilidade.  No fundo, o upstart é uma máquina de  estados, onde os estados executam  tarefas/serviços (jobs) e as transições  são feitas por eventos (events). Os  eventos podem ser gerados pelo  Com o upstart, é possível uma análise  Upstart, jobs ou por comandos. completa do boot através do bootchart.
  • 17. Inicialização do sistema no Ubuntu: Upstart  Jobs:  Ficam em /etc/event.d/, sendo arquivos texto com uma  sequência de instâncias (stanzas).  Podem ser do tipo tarefa ou serviço:  Tarefa: executa alguma coisa e fica em estado de espera ao  terminar  Serviço: ficam sempre em execução a menos que terminados  manualmente  O Job deve conter uma instância exec ou script, dizendo o que  será feito no job
  • 18. Inicialização do sistema no Ubuntu: Upstart  Eventos:  Podem ser gerados pelos jobs, pelo upstart ou mesmo  manualmente.   Alguns eventos do Upstart:  startup  shutdown  stalled (quando não existem mais processos rodando)  control­alt­delete  power­status­change  starting, started  stopping, stopped
  • 19. Inicialização do sistema no Ubuntu: Upstart  Emulação dos runlevels dentro do upstart logd upstart stopped runlevel 2 stopped startup rcS rc­default rc2 tty1 control­alt­delete control­alt­delete
  • 20. Inicialização do sistema no Ubuntu: Upstart # rcS - runlevel compatibility # rc2 - runlevel 2 compatibility start on startup start on runlevel 2 stop on runlevel stop on runlevel [!2] console output console output script script runlevel --set S >/dev/null || true set $(runlevel --set 2 || true) if [ "$1" != "unknown" ]; then PREVLEVEL=N PREVLEVEL=$1 RUNLEVEL=S RUNLEVEL=$2 export PREVLEVEL RUNLEVEL export PREVLEVEL RUNLEVEL fi exec /etc/init.d/rcS exec /etc/init.d/rc 2 end script end script # rc - runlevel compatibility start on stopped rcS script runlevel --reboot || true if grep -q -w -- "-s|single|S" /proc/cmdline; then telinit S elif [ -r /etc/inittab ]; then RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" if [ -n "$RL" ]; then telinit $RL else telinit 2 fi else telinit 2 fi end script
  • 21. Inicialização do sistema no Ubuntu: Upstart  Comandos úteis:  initctl: controla jobs e emite sinais  start/stop: controlam jobs initctl emit meuevt start # /etc/event.d/meusrv initctl emit meuevt stop # start on meuevt start inictl start meusrv stop on meuevt stop initctl stop meusrv console output start meusrv script stop meusrv rm /tmp/log.txt while /bin/true; initctl list do echo "Running meusrv" >> /tmp/log.txt sleep 1 done end script
  • 22. Pausa para o exercício  Coloque o script abaixo dentro da  estrutura do upstart. Tente alterá­lo para  que seja inicializado somente dentro do  runlevel 2.  Tente instalar o bootchart e analise sua  inicialização. # /etc/event.d/meusrv # start on meuevt start stop on meuevt stop console output script echo "Running meusrv" > /tmp/log.txt while /bin/true; do date >> /tmp/log.txt sleep 1 done end script 22
  • 24. Direitos e permissões  O acesso a arquivos/diretórios é dividido em 3 conjuntos  de direitos:  Dono: direitos relacionados a quem criou o arquivo.  Grupo: direitos relacionados a um grupo de usuários que pode  ter acesso ao arquivo.  Outros: direitos relacionados aos usuários que não são donos ou  não estão em grupos relacionados ao arquivo.  Cada conjunto de direitos possui 3 atributos:  r (read): direitos de ler (se for arquivo) ou listar conteúdo (se  diretório)  w (write): direitos de modificar/apagar  x (execution): direitos de executar (se for arquivo) ou de acessar  (se for diretório) 24
  • 25. Direitos e permissões Arquivos (­), diretórios (d) ou links (l) rw­: direitos do dono  (leitura,modificação, mas não é executável) r­­: direitos do grupo  (leitura somente, não é executável) r­­: direitos dos outros  (leitura somente, não é executável) dono (UID: user ID) grupo (GID: group ID) $ ls -l -rw-r--r-- 1 marcelo marcelo 0 2008-06-22 16:49 arquivo drwxr-xr-x 2 marcelo marcelo 4096 2008-06-22 16:49 diretorio lrwxrwxrwx 1 marcelo marcelo 7 2008-06-22 16:49 link -> arquivo 25
  • 26. Direitos e permissões  Exemplos de direitos de acesso para um arquivo:  ­rw­­­­­­­: Arquivo com direitos de acesso exclusivos para o dono  ­rw­r­­­­­: Um determinado grupo pode ler o arquivo, mas só o  dono modifica  ­rw­r­­r­­: Qualquer um pode ler o arquivo, mas só o dono  modifica  ­rw­rw­r­­: Qualquer um pode ler o arquivo, mas só o dono ou  alguém do grupo pode modificar  ­rwxrwxr­x: Qualquer um pode ler e executar o arquivo, mas só o  dono ou alguém do grupo pode modificar  ­rwxr­xr­­: O grupo pode ler e executar, o dono pode,  adicionalmente, modificar. O resto apenas pode ver o conteúdo 26
  • 27. Direitos e permissões  Exemplos de direitos de acesso para um diretório:  drwx­­­­­­: Somente o dono pode modificar e entrar no diretório  drwxr­xr­x: O dono tem amplos poderes sobre o diretório,  enquanto o grupo e o resto apenas podem entrar no diretório e  listar o seu conteúdo  drwx­­x­­x: O dono tem amplos poderes sobre o diretório,  enquanto o grupo e o resto apenas podem entrar no diretório  drwxrwx­­­: Grupo e dono com amplos direitos no diretórios  O root tem amplos poderes de acesso, independente dos  direitos configurados 27
  • 28. Direitos e permissões especiais  Além das permissões já vistas existem ainda um conjunto  avançado de permissões especiais. Elas devem ser  usadas com cuidado para não gerar falhas de segurança.  SUID bit (s): Permite que quem executa o arquivo tenha direitos  iguais ao dono do arquivo, durante a execução. Útil para  programas como passwd.  SGID bit (s): Permite que quem executa o arquivo tenha direitos  iguais ao groupo do arquivo, durante a execução. Se diretório,  força que arquivos criados dentro desse diretório tenham o  mesmo grupo do diretório pai. Útil em diretórios compartilhados  por um grupo.  Stick bit (t): Garante que só quem criou o arquivo possa removê­ lo. Importante para diretórios compartilhados como /tmp. 28
  • 29. Mudando direitos e permissões com chmod usando a forma relativa  chmod [a|u|g|o][+|­|=][r|w|x|s|t] arquivo/diretório  chmod [alvo][operação][direitos] arquivo/diretório  Alvos:  u: user, g: group, o: others, a: all  Operações:  +: adiciona direitos, ­: remove direitos, =: adiciona direitos,  sem mesclar com os direitos já existente para o alvo  Direitos:  r: read, w: write, x:execution, s: set user/group ID, t: stick 29
  • 30. Mudando direitos e permissões com chmod usando a forma relativa  Exemplos  chmod g+r <arq>: adiciona direitos de leitura a todos do grupo  chmod ug+x <dir>: adiciona direitos de acesso ao dono e grupo  chmod a­x <arq>: retira todos os direitos de execução  chmod ug=rw <arq>: configura dono e grupo para somente ler e  modificar. Não toca nos direitos dos outros  chmod +t <dir>: liga o stick bit  chmod u+s: liga o bit de SUID  chmod g­s: desliga o bit de SGID 30
  • 31. Mudando direitos e permissões com chmod usando a forma absoluta  Outra forma de usar o chmod é com da notação octal,  especificando diretamente os direitos através de 4  números octais relacionados aos quatro conjuntos:  chmod 1755 <dir>:  1 →  0+0+1, somente stick bit no grupo especial  7 → 4+2+1, read, write e execution para dono  5 → 4+0+1, read e execution para grupo  5 → 4+0+1, read e execution para outros especiais dono grupo outros u g t r w x r w x r w x 4 2 1 4 2 1 4 2 1 4 2 1 31
  • 32. Pausa para o exercício  Experimente o chmod em suas formas  absolutas e relativas. Use o ls ­la para  que todos os arquivos sejam mostrados  e a listagem fique completa. 32
  • 33. Pós­gradaduação em redes de computadores Administrando grupos e usuários 33
  • 34. Grupos e usuários: Arquivos e diretórios relevantes  /etc/passwd: armazena informações sobre os usuários, como shell  usado, local da conta, etc.  /etc/group: lista grupos existentes e que usuários fazem parte dele.  /etc/shadow: armazena as senhas dos usuários, encriptada  /etc/skel: esqueleto para contas de usuários  /etc/issue: mensagem exibida na tela de login no terminal (issue.net  para logins remotos)  /etc/motd: mensagem exibida após o login  /etc/profile: definições de ambiente para todos os usuários  /etc/default/useradd: definições padrões para criação de usuários  (se usado o useradd)  /etc/adduser.conf: definições padrões para o adduser 34
  • 35. Grupos e usuários: Principais comandos  useradd: adiciona contas de usuário  usermod: modifica parâmetros da conta do usuário  userdel: remove a conta do usuário  passwd: ajusta o password para um usuário  chown: troca o dono de um arquivo/diretório  Para interação no terminal, use os comandos  <operação>user:  adduser  deluser 35
  • 36. Grupos e usuários: Principais comandos  groupadd: cria um novo grupo  groupdel: apaga um group  groupmod: modifica um group  groups: imprime em quais grupos um usuário está  chgrp: troca o grupo de um arquivo/diretório  Também existem os equivalentes interativos:  addgroup  delgroup 36
  • 37. Grupos e usuários: Exemplos de utilização  Cria o usuário mateus, gerando a sua conta em  /home/mateus:  sudo useradd ­m mateus  Cria um grupo kid e modifica o usuário mateus para que  ele faça parte do grupo:  sudo groupadd kid  sudo usermod ­G kid mateus  Remove o usuário mateus, inclusive apagando toda a sua  conta:  sudo userdel ­r mateus 37
  • 38. Pausa para o exercício  Experimente os comandos relacionados  a usuários e grupos, criando, apagando e  modificando contas. Verifique como as  contas são criadas no /home e tembém  experimente alterar os padrões de  criação de contas. Altere também donos  e grupos com chown e chgrp. 38
  • 40. Gerenciando processos  Em sistemas Linux, todas as atividades são executadas  por processos  Cada processo possui características como prioridade,  status, dono, PID (Process ID), tempo de execução,  percentagem de uso de CPU, memória alocada, etc:  Prioridades: de ­20 (menor) a 19 (maior)  Running, sleeping, stopped, zombie  PID: número único que identifica o processo  O kernel tenta fazer um escalonamento justo dos  processos, geralmente dividindo o tempo da CPU entre os  vários processos de mesma prioridade de forma igual 40
  • 41. Gerenciando processos  Um processo pode ser executado de fundo (background)  ou não (foreground):  Adicionar ”&” na linha de comando manda o processo para  background  Comandos do bash como bg, fg e jobs lidam com isso  diretamente  Ctrl+Z permite enviar um processo para backgound  Todo processo tem uma entrada padrão, uma saída  padrão e uma saída de erro. Em geral:  STDIN: entrada padrão  STDOUT: saída padrão  STDERR: saída de erro 41
  • 42. Gerenciando processos  Um processo pode receber uma espécie interrupção de  software conhecida como ”sinal” em Unix.   Cada sinal tem um número que o identifica e isto pode  variar de Unix para Unix.  Alguns sinais (número entre parênteses):  SIGTERM (15): sinaliza a terminação do processo  KILL (9): força a terminação do processo  HUP (1): Hang up, geralmente usado para reiniciar um processo 42
  • 43. Gerenciando processos: Comandos importantes  ps: permite listar os processos da máquina (ps aux)  top: permite um acompanhamento dinâmico dos processos (pressione 'h'  para detalhes de uso)  pstree: mostra a árvore de processos  kill: permite enviar sinais para um processo usando o seu PID  killall: envia sinais para um processo usando o seu nome  pkill envia sinais usando características diversas do processo  nice e renice: permite trocar a prioridade do processo  pgrep: permite pesquisar na lista de processos por características diversas  nohup: inicia um processo que não irá terminar ao ser feito o logout no  terminal 43
  • 44. Gerenciando processos: Exemplos  Lista todos os processos em execução:  ps aux  Envia o sinal de termino forçado para todos os processos  chamado make:  killall ­s 9 make  Pede ao smb para reler o seu arquivo de configuração:  kill ­HUP smb  Executa um comando com nohup, permitindo o logout:  nohup <meu_script> &  Mostra os processos do usuário mateus:  ps ­u mateus 44
  • 45. Agendamento de processos com cron  Tarefas podem ser agendadas e executadas  periodicamente pelo processo ”cron”  Formas de agendamento:  Definir um ação e o momento da sua execução, seguindo as  regras do cron, no arquivo /etc/crontab  Definir o seu próprio arquivo cron dentro de /etc/cron.d/  Colocar um script dentro dos diretórios com escalonamento pré­ definidos (não precisa seguir a notação do cron):  /etc/cron.hourly  /etc/cron.daily  /etc/cron.weekly  /etc/cron.monthly 45
  • 46. Agendamento de processos com cron: Formato do arquivo crontab  Cada linha é um registro composto de sete campos que  especificam quando um evento deve ocorrer:  Minutos: de 0 a 59, onde '*' significa todos minutos e '*/10'  significa a cada 10 minutos  Horas: de 0 a 23, onde 3­8 significa que deve acontecer o evento  toda hora entre 3 a 8 horas  Dia do mês: de 1 a 31, onde 3,4 significa apenas os meses  março e abril  Mês: de 1 a 12  Dia da semana: de 0 a 7, começando e terminando no domingo  Usuário  Comando a ser executado 46
  • 47. Agendamento de processos com cron: Formato do arquivo crontab  Exemplos:  Todo dia as 07:30:  30  7  *  *  *  root  ps aux >> /var/log/ps.txt  Dia sim, dia não, as 10:15  15  10  */2  *  *  root  ps aux >> /var/log/ps.txt   De segunda à sexta, de duas em duas horas:  0  */2  *  *  1­5  root  ps aux >> /var/log/ps.txt 47
  • 48. Agendamento de processos com cron: Dicas finais  Use ”crontab ­e” para adicionar eventos  No /etc/profile, configure o editor padrão:  export VISUAL=vim  Se não quiser usar a notação do crontab, basta criar um  script dentro dos diretórios com escalonamento pré­ definidos:  /etc/cron.hourly  /etc/cron.daily  /etc/cron.weekly  /etc/cron.monthly 48
  • 49. Agendamento de processos com cron: Dicas finais  Usuários comuns também podem usar o cron. Para isso,  alguns arquivos devem ser definidos:  /etc/cron.allow: crie este arquivo e liste os usuários que podem  usar o cron, ou ...  /etc/cron.deny: crie este arquivo e liste os usuários que não  podem usar o cron  /var/spool/crontab será o local onde as entradas dos usuários  serão criadas 49
  • 50. Agendamento de processos de única vez  Para eventos não regulares, o escalonamento pode ser  feito com o comando ”at” e do processo atd:  Define o momento com at $ at 22:30 at> echo "done"  Digite os comandos, um por linha at> Ctrl-d job 3 at Fri Jun 27 22:30:00 2008  Finalize com Ctrl+D  atrm pode remover um comando da fila  atq mostra a fila de comandos escalonados  /etc/at.allow e /etc/at.deny dever ser configurados para  que usuários comuns possam usar o at 50
  • 51. Pausa para o exercício  Liste os processos no servidos com ps  e também com top. Explore o help do  top (pressione ”h”).  Crie um arquivo com com o script 1.  Execute­o algumas vezes, jogando o  #!/bin/bash # script 1 processo para background (&). Depois,  while /bin/true; do remova os processos com kill e killall. date >> /tmp/log.txt sleep 1 done  Usando o cront para agendar  execuções periódicas do script 2. #!/bin/bash # script 2 date >> /tmp/log2.txt 51
  • 53. Configuração básica de rede  Interfaces de rede geralmente começam com eth<n>, n  sempre começando com zero  Alias (apelidos), permitem que vários IPs sejam  associados a uma mesma interface física (endereços  virtuais). Eles são da forma eth<n>:<m>, ambos  começando com zero  Bridges geralmente são br<n>  Exemplos: eth0, eth1, eth1:0, eth1:1, br2, br0  53
  • 54. Configuração básica de rede: ifconfig  A configuração manual pode ser feita com ifconfig,  presente em várias distribuições Linux:  ifconfig eth0 10.0.0.10 netmask 255.255.255.0 up  ifconfig eth0 down  ifconfig eth0 up  ifconfig (sem parâmetros, mostra a configuração atual)  A criação de alias também é simples, bastando definir  novos indexes ao final (a interface eth0 já deve estar  configurada):  ifconfig eth0 172.16.0.1 netmask 255.255.255.0 up  ifconfig eth0:0 172.17.0.1 netmask 255.255.255.0 up  ifconfig eth0:1 172.18.0.1 netmask 255.255.255.0 up 54
  • 55. Configuração básica de rede: ifconfig  Alguns detalhes da saída do ifconfig: Endereço IPv6 Estatísticas  de rede IP, broadcast e máscara MAC eth0 Link encap:Ethernet Endereço de HW 00:0e:35:ba:d0:0f inet end.: 10.0.0.100 Bcast:10.0.0.255 Masc:255.255.255.0 endereço inet6: fe80::20e:35ff:feba:d00f/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:15825 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:10577 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:11462155 (10.9 MB) TX bytes:1052682 (1.0 MB) IRQ:5 Endereço de E/S:0xa000 Memória:fcffe000-fcffefff Interface 55
  • 56. Pausa para o exercício  Experimente mudar a sua configuração  de rede através do ifconfig. Depois tente  obter a configuração de rede de um  servidor DHCP. 56
  • 57. Configuração básica de rede: DHCP  O DHCP pode ser configurado como cliente através do  utilitário dhclient:  dhclient <interface> 57
  • 58. Configuração básica de rede: Roteamento estático  Para funcionamento completo, algumas rotas são  necessárias. O comando route permite adicionar rotas  estáticas, configurar o default gateway, etc.  Exemplos:  Definindo o gateway default via interface eth0:  route add default gw 10.0.0.1 dev eth0  Criando uma rota para uma rede através de um gateway:  route add ­net 10.1.1.0 netmask 255.255.255.0 gw  192.168.1.254 dev eth0    Adicionando uma rota direta para um host pela interface eth0:  route add ­host 172.16.0.2 dev eth0  A opção del é similar mas permite remoter rotas 58
  • 59. Configuração básica de rede: Roteamento estático  Para a figura abaixo, as rotas seriam: route add ­net 127.0.0.0 netmask 255.0.0.0 dev lo route add ­net 192.168.10.0 netmask 255.255.255.0 dev eth0 route add ­net 200.210.50.128 netmask 255.255.255.192 dev eth1 route add default gw 200.210.50.129 dev eth0 eth0 eth1 59
  • 60. Pausa para o exercício  Crie o roteamento e a configuração de rede para  que a topologia abaixo funcione adequadamente. 60
  • 61. Configuração básica de rede: DNS  O DNS é configurado dentro do arquivo /etc/resolv.conf,  onde os servidores de DNS podem ser listados e o nome  do domínio padrão.  Use nameserver para listar um DNS   Use domain para especificar o nome padrão do domínio # conteúdo do /etc/resolv.conf nameserver 10.0.1.1 nameserver 10.0.1.2 domain baraodemaua.br 61
  • 62. Configuração básica de rede: DNS  Hosts e redes podem ser listados manualmente, através  dos seguintes arquivos:  /etc/hosts  /etc/networks  O uso é desencorajado, no entanto. Primeiro procure   Além, disso, altere a ordem de busca no  resolver usando o   /etc/nsswitch.conf: arquivo hosts,  depois tente o DNS # parte do conteúdo do /etc/nsswitch.conf hosts: files dns networks: files 62
  • 63. Configuração básica de rede: Placa de rede  O programa ethtool é usada para configurar parâmetros  da placa de rede. Isto pode ser interessante caso a auto­ negociação esteja falhando:  ethtool ­s eth0 speed 10 duplex half  ethtool ­s eth0 autoneg off  ethtool ­s eth0 speed 100 duplex full  Detalhes do driver podem ser obtidos com a opção ”­i”:  ethtool ­i eth0 63
  • 64. Configuração básica de rede: Ferramentas auxiliares  ping: testa a conexão  traceroute, tracepath: mostra a rota do pacote  O nestat permite avaliar os serviços de rede em execução:  netstat ­ltn: portas TCP (­t) em estado de espera de conexão (­l),  sem esperar resolução de nome (­n)  netstat ­lun: idem, mas para UDP (­u)  netstat ­platune: um bom conjunto de informações, mostrando  portas em espera, conexões abertas, etc  netstat ­i: informações sobre as interfaces de rede  netstat ­s: estatísticas de rede por protocolo  ifdown e ifup: permitem ligar/desligar uma interface 64
  • 65. Configuração básica de rede: Persistindo a configuração  A configuração de rede pode ser toda feita dentro do  arquivo /etc/network/interfaces, que é lida e executada na  partida pelo script /etc/init.d/networking  Exemplo: # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.33 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 # dns-* options are implemented resolvconf, if installed dns-nameservers 193.79.237.39 65
  • 66. Configuração básica de rede: Persistindo a configuração  Outro exemplo, agora com DHCP e IP fixo. Note que:  auto: lista interfaces que sobem automaticamente na partida  iface: descreve a interface (eth0, eth1), falando que será usado  IPv4 (inet, para IPv6 use inet6) com DHCP para eth0 e IP fixo  (static) para eth1 # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # The secondary network interface auto eth1 iface eth1 inet static address 10.0.1.1 netmask 255.255.255.0 66
  • 67. Configuração básica de rede: Persistindo a configuração  Existem várias opções interessantes na configuração,  como pre­up, pos­up, pre­down e pos­down.  Consulte o ”man interfaces” para maiores detalhes # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static Execute após subir  address 10.0.0.1 a interface netmask 255.255.255.0 Execute antes de  post-up /etc/init.d/vlan start pre-down /etc/init.d/vlan stop desligar interface 67
  • 68. Configuração avançada de rede: Bridges  Bridges são equipamentos de camada 2 (enlace) que  permitem a interligação de segmentos de uma mesma  rede. A bridge pode evitar tráfegos desnecessários uma  vez que opera na camada de enlace e também pode ser  interessante para gerar configurações adicionais de  segurança sem que outra subrede tenha que ser criada.  Para o sistema, as várias placas da bridge podem ser  encaradas como apenas uma, representando a união de  todas as outras. LAN A LAN A Bridge 68
  • 69. Configuração avançada de rede: Bridges  Instalar o pacote bridge­utils e criar a bridge:  brctl addbr br0  Adicionar interfaces para a bridge:  brctl addif br0 eth0;  brctl addif br0 eth1 ; ...  Sendo necessário, configure um IP para a bridge:  ifconfig br0 10.1.2.3 netmask 255.255.255.0  A bridge pode ser desfeita removendo­se as intrefaces  (delif) e depois removendo­se a própria bridge (delbr)  brctl delif br0 eth0 ; brctl delif br0 eth1 ; ...  brctl delbr br0 69
  • 70. Configuração avançada de rede: VLAN  As VLANs ou, LANs virtuais, através de uma modificação  no quadro ethernet e de dispositivos de camada de enlace  especiais (switches com VLAN), permitem um melhor  gerenciamento do domínio de colisão/broadcast e também  maior segurança. 70
  • 71. Configuração avançada de rede: VLAN  As VLANs são criadas como interfaces virtuais  eth<n>:<m> onde <m> é o número do ID da VLAN:  vconfig eth0 10 (criar a interface virtual eth0:10)  vconfig eth0 20 (criar a interface virtual eth0:20)  Configure IPs para cada interface criada  ifconfig eth0:10 10.10.0.1 netmask 255.255.255.0  ifconfig eth0:20 10.20.0.1 netmask 255.255.255.0  A VLAN pode ser desfeita através do comando rem:  vconfig rem eth0:10   vconfig rem eth0:20  71
  • 72. Configuração de rede: Outros arquivos relacionados  /etc/services: lista de portas conhecidas  /proc/sys/net/ipv4/ip_forward: coloque ”1” dentro deste  arquivo para permitir o roteamento entre placas. O arquivo  /etc/sysctrl.conf permite automatizar isso. 72
  • 73. Links úteis  http://www.freesoftwaremagazine.com/articles/installation_seq_linux  http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html  http://upstart.ubuntu.com/getting­started.html  http://en.wikipedia.org/wiki/Upstart  http://www.bootchart.org/  http://www.linux.com/feature/125977  http://upstart.ubuntu.com/wiki/Stanzas  http://www.linuxabordo.com.br/wiki/index.php?title=VLAN 73
  • 74. Dúvidas, comentários, sugestões ? 74 Imagem: cena do filme Madagascar, da DreamWorks
  • 75. Direitos de cópia Créditos ­ ShareAlike 2.0 Você é livre para copiar, distribuir, apresentar e executar trabalhos fazer trabalhos derivados fazer uso comercial deste trabalho Sob as seguintes condições © Copyright 2008 Créditos. Você deve dar crédito ao autor original. Marcelo Barros Compartilhe do mesmo modo. Se você alterar, mudar,  ou realizar trabalhos usando este como base,você deve  marcelobarrosalmeida@gmail.com redistribuir o trabalhos resultante sob uma licença  Correções, sugestões e  idêntica a esta. traduções são bem vindas! Para qualquer reuso ou distribuição você deve deixar claro  os termos de licença deste trabalho. Qualquer  uma destas condições podem ser abandonadas  se você obtiver uma permissão do detentor dos direitos  autorais. Faça uso justo e o direitos dos outros não serão afetados de  forma alguma pelas restrições acima. Texto da licença:  http://creativecommons.org/licenses/by­sa/2.0/legalcode 75