Mudanças entre as edições de "GAR12503-2014-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 81: Linha 81:
 
== Aulas ==
 
== Aulas ==
  
=== Aula 01 (06/08) - Introdução. SO Linux. Shell e comandos básicos ===
+
=== Aula 01 (06/08) - Introdução, SO Linux, Shell e comandos básicos ===
 
Conteúdo:
 
Conteúdo:
 
*Apresentação da disciplina
 
*Apresentação da disciplina
Linha 122: Linha 122:
 
*[http://wiki.sj.ifsc.edu.br/images/4/42/Roteiro1_aula3.pdf Roteiro]
 
*[http://wiki.sj.ifsc.edu.br/images/4/42/Roteiro1_aula3.pdf Roteiro]
 
*[[Media:03-Shell.pdf | Questionário sobre Shell]]
 
*[[Media:03-Shell.pdf | Questionário sobre Shell]]
 
+
<!--
{{Collapse top | Respostas do exercício de comandos básicos}}
+
*[[Media:Respostas_roteiro_comandos_basicos.txt | Respostas do roteiro de comandos básicos]]
<code>
+
-->
#!/bin/bash
 
# 3
 
pwd
 
 
 
# 4
 
mkdir TurmaGAR
 
 
 
# 5
 
mkdir -p TurmaGAR/Brasil/{regiaoNorte,regiaoSul}
 
mkdir -p TurmaGAR/Brasil/regiaoNorte/{amazonas,acre}
 
mkdir -p TurmaGAR/Brasil/regiaoSul/{parana,santaCatarina}
 
 
 
# 6
 
cd TurmaGAR/Brasil/regiaoNorte/
 
 
 
# 7
 
ls -l
 
 
 
# 8
 
cp -r amazonas/ para/
 
 
 
# 9
 
ls -l
 
 
 
# 10
 
cd ../regiaoSul/
 
mv parana/ rioGrandeSul/
 
 
 
# 11
 
ls -l
 
 
 
# 12
 
cd ../..
 
 
 
# 13
 
ls -l / >> Brasil/regiaoNorte/amazonas/saidaDirRaiz.arq
 
 
 
# 14
 
ls -l >> Brasil/regiaoNorte/amazonas/saidaTurma.arq
 
 
 
# 15
 
ls -l Brasil/regiaoSul/ >> Brasil/regiaoNorte/amazonas/estados.sul
 
 
 
# 16
 
cd Brasil/regiaoNorte/amazonas/
 
cat *
 
more *
 
 
 
# 17
 
cat *.arq
 
 
 
# 18
 
ls -l saida[a-z]*
 
 
 
# 19
 
rm *.{arq,sul}
 
 
 
# 20
 
pwd
 
cd ~
 
 
 
# 21
 
ls -l
 
 
 
# 22
 
mkdir {aula1,aula2}
 
 
 
# 23
 
mkdir aula1/{aula11,aula12,aula13}
 
mkdir aula2/{aula21,aula22,aula23}
 
 
 
# 24
 
rm -r aula1/aula13 aula2/aula23/
 
 
 
# 25
 
touch aula1/aula12/texto1
 
 
 
# 28
 
cp aula1/aula12/texto1 aula2/aula22/texto2
 
 
 
# 29
 
printenv >> aula1/aula12/texto1
 
 
 
# 30
 
mv aula1/aula12/texto1 aula1/aula11
 
 
 
# 31
 
cp /etc/passwd aula2/usuarios
 
 
 
# 32
 
cp /etc/protocols aula1/protocolos
 
 
 
# 33
 
rm aula1/aula11/texto1
 
 
 
# 34
 
ln aula2/aula22/texto2 linktexto2
 
 
 
# 35
 
diff aula2/aula22/texto2 linktexto2
 
 
 
# 36
 
find *aula*
 
 
 
# 37
 
cat aula1/protocolos | grep Protocol
 
 
 
# 38
 
head -n 12 aula2/usuarios
 
 
 
# 39
 
tail -n 15 aula1/protocolos
 
 
 
# 40
 
wc -wlm aula1/protocolos
 
 
 
# 41
 
sort aula2/usuarios
 
 
 
# 42
 
sort -r aula1/protocolos
 
 
 
# 43
 
more aula1/protocolos
 
 
 
# 44
 
cut -d '#' -f 1 aula1/protocolos
 
 
 
# 45
 
cut -c -6 aula2/usuarios
 
 
 
# 46
 
top
 
 
 
# 47
 
cal
 
clear
 
 
 
# 48
 
touch aula2/aula22/trabalho{1,2,3}
 
touch aula2/aula22/teste{1,2}
 
touch aula2/aula22/exame{1,2}
 
touch aula2/aula22/texto{1,3}
 
touch aula2/aula22/{notas,anotacoes}
 
 
 
ls -l /tmp/ >> aula2/aula22/trabalho1
 
ls -l /var/ >> aula2/aula22/trabalho2
 
ls -l /opt/ >> aula2/aula22/trabalho3
 
ls -l / >> aula2/aula22/teste1
 
ls -l /etc/ >> aula2/aula22/teste2
 
ls -l /usr/ >> aula2/aula22/exame1
 
ls -l /home/aluno/ >> aula2/aula22/exame2
 
ls -l /usr/ >> aula2/aula22/texto1
 
ls -l /bin/ >> aula2/aula22/texto3
 
ls -l /home/ >> aula2/aula22/anotacoes
 
ls -l /lib/ >> aula2/aula22/notas
 
 
 
# 49
 
ls -l aula2/aula22/t*
 
 
 
# 50
 
ls -l aula2/aula22/??a*
 
 
 
# 51
 
ls -l aula2/aula22/*2
 
 
 
# 52
 
ls -l aula2/aula22/*nota*
 
 
 
# 53
 
ls -l aula2/aula22/*x*
 
 
 
# 54
 
cat aula2/aula22/tr*
 
 
 
# 55
 
cat aula2/aula22/*e2
 
 
 
# 56
 
cat aula2/aula22/*
 
 
 
# 57
 
cat aula2/aula22/*ex*
 
 
 
# 58
 
ls -l >> ConteudoDir
 
 
 
# 59
 
date >> ConteudoDir
 
 
 
# 60
 
ls -l /eetc >> Erro
 
 
 
# 61
 
cat /etc/group > aula2/aula22/grupos
 
 
 
# 62
 
date | cut -c -3
 
 
 
# 63
 
head -n 5 /etc/passwd | wc -c
 
 
 
# 64
 
tail -n 8 /etc/protocols | wc -w
 
 
 
# 65
 
head -n 10 /etc/protocols | tail -n 5
 
 
 
# 66
 
head -n 50 /etc/protocols | sort -r
 
 
 
# 67
 
ps | sort -r
 
 
 
# 68
 
tail -n 10 /etc/passwd | sort
 
 
 
# 69
 
w
 
 
 
# 70
 
ps aux | grep usr
 
 
 
# 80
 
head -n 30 /etc/protocols | grep protocol
 
 
 
# 81
 
tail -n 20 /etc/protocols | grep Protocol
 
 
 
# 82
 
cat /etc/protocols | grep Protocol | tail -n 5
 
 
 
# 83
 
head -n 40 /etc/protocols | cut -f 5-
 
 
 
# 84
 
tail -n 8 /etc/passwd | cut -c -8
 
 
 
# 85
 
head -n 20 /etc/protocols | grep protocol | sort -r
 
 
 
# 86
 
head -n 50 /etc/protocols | tail -n 26 | wc -w
 
 
 
# 87
 
tail -n 5 /etc/protocols | cut -f -2 | wc -c
 
 
 
# 88
 
ps aux | grep root | wc -l
 
 
 
# 89
 
head -n 30 /etc/protocols | tail -n 19 | cut -d '#' -f 1 | sort -r
 
 
 
# 90
 
ps aux | grep usr | head -n 4 | sort -r
 
</syntaxhighlight>
 
{{Collapse bottom}}
 
  
 
=== Aula 02 (07/08) - Instalação de aplicativos e Sistemas de arquivos ===
 
=== Aula 02 (07/08) - Instalação de aplicativos e Sistemas de arquivos ===
Linha 436: Linha 179:
 
#Utilize as opções apt-get update, apt-get upgrade e apt-get check. Qual é a funcionalidade de cada uma?
 
#Utilize as opções apt-get update, apt-get upgrade e apt-get check. Qual é a funcionalidade de cada uma?
 
#Qual é o arquivo que indica quais repositórios o sistema operacional deve consultar quando se deseja instalar um software?
 
#Qual é o arquivo que indica quais repositórios o sistema operacional deve consultar quando se deseja instalar um software?
 
+
<!--
 
''Respostas''
 
''Respostas''
 
#sudo apt-get install wireshark
 
#sudo apt-get install wireshark
Linha 450: Linha 193:
 
##apt-get check: ferramenta de diagnóstico, serve para verificar se existem dependências quebradas
 
##apt-get check: ferramenta de diagnóstico, serve para verificar se existem dependências quebradas
 
#/etc/apt/sources.list
 
#/etc/apt/sources.list
 +
-->
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
Linha 475: Linha 219:
 
#Faça com que esta partição seja montada automaticamente no reboot. Teste.
 
#Faça com que esta partição seja montada automaticamente no reboot. Teste.
 
#Desmonte esta partição.
 
#Desmonte esta partição.
 +
 +
<!--
 
''Respostas''
 
''Respostas''
 
#Partições:
 
#Partições:
Linha 507: Linha 253:
 
#echo “/dev/sdaX /home/aluno/novapart ext4 rw 0 0” >> /etc/fstab
 
#echo “/dev/sdaX /home/aluno/novapart ext4 rw 0 0” >> /etc/fstab
 
#umont /home/aluno/novapart
 
#umont /home/aluno/novapart
 +
-->
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
Linha 591: Linha 338:
 
Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em ''/etc/passwd''), ou que aparecem listados em ''/etc/group''.
 
Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em ''/etc/passwd''), ou que aparecem listados em ''/etc/group''.
  
==== Gerenciamento de usuários e grupos ====
+
''' Gerenciamento de usuários e grupos '''
  
 
Para gerenciar usuários e grupos podem-se editar diretamente os arquivos ''/etc/passwd'', ''/etc/shadow'' e ''/etc/group'', porém existem utilitários que facilitam essa tarefa:
 
Para gerenciar usuários e grupos podem-se editar diretamente os arquivos ''/etc/passwd'', ''/etc/shadow'' e ''/etc/group'', porém existem utilitários que facilitam essa tarefa:
Linha 649: Linha 396:
 
  QUOTAUSER="" #Se o sistema de cotas estiver funcional, pode atribuir quota ao usuário criado.
 
  QUOTAUSER="" #Se o sistema de cotas estiver funcional, pode atribuir quota ao usuário criado.
  
==== Permissões ====
+
''' Permissões '''
  
 
Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa.
 
Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa.
Linha 816: Linha 563:
 
#Configurar esse novo serviço para executar no boot, logo após o serviço '''mountall'''.
 
#Configurar esse novo serviço para executar no boot, logo após o serviço '''mountall'''.
 
#Reiniciar o sistema para testá-lo (executar ''reboot'')
 
#Reiniciar o sistema para testá-lo (executar ''reboot'')
 
+
<!--
 
'''Resposta'''
 
'''Resposta'''
  
 
Foi proposta a criação de um serviço chamado '''faxineiro''', para remover dos diretórios temporários (/tmp e /var/tmp).
 
Foi proposta a criação de um serviço chamado '''faxineiro''', para remover dos diretórios temporários (/tmp e /var/tmp).
 
 
# Criar o arquivo /etc/init/faxineiro.conf
 
# Criar o arquivo /etc/init/faxineiro.conf
 
# Adicionar o seguinte conteúdo a esse arquivo:<syntaxhighlight lang=text>
 
# Adicionar o seguinte conteúdo a esse arquivo:<syntaxhighlight lang=text>
Linha 829: Linha 575:
 
end script</syntaxhighlight>
 
end script</syntaxhighlight>
 
# Reiniciar o sistema para testá-lo (executar ''reboot'')
 
# Reiniciar o sistema para testá-lo (executar ''reboot'')
 +
-->
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  

Edição das 08h52min de 28 de agosto de 2014

Informações da disciplina

  • Professor: Tomas Grimm
  • Turma: 1250331
  • Encontros: terças e quintas das 18:30 às 20:20 e quartas das 18:30 às 22:30
  • Atendimento paralelo:
    • terças das 13:30 às 15:20

Plano de aula

Cronograma
Aula Data Horas Conteúdo Recursos
1 30/7 4 Introdução a Gerência e Administração de Redes. Visão das disciplinas e suas relações. Metodologia de avaliação. Lab Redes 1
2 31/7 4 Revisão dos comandos básicos do Linux, TAR. Lab Redes 1
3 6/8 4 Editor Vi. Shell. Lab Redes 1
4 7/8 4 APT-GET. Sistemas de Arquivos. Lab Redes 1
5 12/8 2 APT-GET. Sistemas de Arquivos. Lab Redes 1
6 13/8 4 Gerenciamento de usuários e grupos e Cotas em disco. Lab Redes 1
7 14/8 2 Processo de Boot Lab Redes 1
8 19/8 2 RAID Lab Redes 1
9 20/8 4 Processos. Lab Redes 1
10 21/8 2 Crontab. Lab Redes 1
11 26/8 2 Crontab. Lab Redes 1
12 27/8 4 Revisão. Lab Redes 1
13 28/8 2 1a avaliação individual teórica. Lab Redes 1
14 2/9 2 1a avaliação individual prática. Lab Redes 1
15 3/9 4 Correção das avaliações. Interfaces de redes, endereçamento IP, roteamento, sub-redes e NAT. Lab Redes 1
16 4/9 2 DNS. Lab Redes 1
17 9/9 2 DNS. Lab Redes 1
18 10/9 4 Postfix. Lab Redes 1
19 11/9 2 Apache. Lab Redes 1
20 16/9 2 Apache. Lab Redes 1
21 17/9 4 SMB. Lab Redes 1
22 18/9 2 NFS. Lab Redes 1
23 23/9 2 NFS. Lab Redes 1
24 24/9 4 Revisão Lab Redes 1
25 25/9 2 2a avaliação individual teórica Lab Redes 1
26 30/9 2 2a avaliação individual prática Lab Redes 1
27 1/10 4 Correção das avaliações. DHCP. Lab Redes 1
28 2/10 2 DHCP. Lab Redes 1
29 7/10 2 FTP e SSH. Lab Redes 1
30 8/10 4 FTP e SSH. DenyHosts. Lab Redes 1
31 9/10 2 Squid. Lab Redes 1
32 14/10 2 Firewall e iptables Lab Redes 1
33 15/10 4 Firewall e iptables Lab Redes 1
34 16/10 2 VPN Lab Redes 1
35 21/10 2 VPN Lab Redes 1
36 22/10 4 Revisão Lab Redes 1
37 23/10 2 3a avaliação individual teórica. Lab Redes 1
38 28/10 2 3a avaliação individual prática. Lab Redes 1
39 29/10 4 Correção das avaliações. Webmin. Lab Redes 1
40 30/10 2 Revisão geral Lab Redes 1
41 4/11 2 Revisão geral Lab. Redes 1
42 5/11 4 Recuperação de conceitos. Lab. Redes 1
43 6/11 2 Correção da recuperação. Lab. Redes 1
44 11/11 2 Projeto Integrador. Lab. Redes 1
45 12/11 4 Projeto Integrador. Lab. Redes 1
46 13/11 2 Projeto Integrador. Lab. Redes 1
47 18/11 2 Projeto Integrador. Lab. Redes 1
48 19/11 4 Projeto Integrador. Lab. Redes 1
49 20/11 2 Projeto Integrador. Lab. Redes 1
50 25/11 2 Projeto Integrador. Lab. Redes 1
51 26/11 4 Projeto Integrador. Lab. Redes 1
52 27/11 2 Projeto Integrador. Lab. Redes 1
53 2/12 2 Projeto Integrador. Lab. Redes 1
54 3/12 4 Projeto Integrador. Lab. Redes 1
55 4/12 2 Projeto Integrador. Lab. Redes 1
56 9/12 2 Projeto Integrador. Lab. Redes 1
57 10/12 4 Projeto Integrador. Lab. Redes 1
58 11/12 2 Projeto Integrador. Lab. Redes 1
TOTAL 160

Material auxiliar

Aulas

Aula 01 (06/08) - Introdução, SO Linux, Shell e comandos básicos

Conteúdo:

  • Apresentação da disciplina
  • Introdução a Gerência de Redes de Computadores (slides)
  • Sistema Operacional Linux e Redes (slides)
  • Shell
  • Comandos básicos de Linux
  • Editor VI
Comandos básicos Linux
# Comandos de navegação e interação com arquivos:
ls		# listar arquivos
cd		# mudar diretório
rm		# remover arquivos
cp		# copiar arquivos
mv		# mover arquivos ou renomeá-los
cat		# mostra o conteúdo de um arquivo ou concatena com outro arquivo
more		# exibe o conteúdo de um artigo de forma paginada
pwd		# mostra o caminho para o diretório atual
rmdir		# deleção de diretório
mkdir		# criação de diretório
clear		# limpa a tela

# Comandos relacionados aos usuários:
who		# mostra as sessões abertas na máquina
whoami		# mostra o nome do usuário atual
finger		# mostra informações de usuário

# Comandos relacionados ao status da memória e do disco:
df		# informações de espaço em disco
du		# utilização do disco
free		# informações de memória
top		# mostra processos

Atividades:

Aula 02 (07/08) - Instalação de aplicativos e Sistemas de arquivos

Conteúdo:

  • Gerenciador de pacotes apt
  • Sistemas de arquivos
Instalação de aplicativos

A instalação de software pode ser feita de diversas formas, dentre as quais serão destacadas três:

  • Com utilitário apt-get: busca o software de um repositório de rede e o instala; dependências (outros softwares necessários) são automaticamente instaladas. Esses softwares buscados da rede estão no formato dpkg (Debian Package).

Exemplo de uso do apt-get:

    • Instalar o navegador de texto lynx
    • Testar o navegador lynx
lynx http://www.ifsc.edu.br/
    • Remover o lynx
  • Diretamente com utilitário dpkg: instala um software que está contido em um arquivo no formato dpkg.

Exemplo de uso:

    • Obter os pacotes Debian para o lynx
wget ftp://ftp.cn.debian.org/ubuntu-old-releases/ubuntu/pool/main/l/lynx-cur/lynx_2.8.7pre6-1_all.deb
wget ftp://mirror.linux.org.au/ubuntu/pool/main/l/lynx-cur/lynx-cur_2.8.7pre6-1_i386.deb
    • Instalar os pacotes
    • Testar o lynx
lynx ...
    • Remover os pacotes instalados


  • A partir do código fonte: busca-se manualmente na rede o código fonte do software desejado, que deve então ser compilado e instalado. Esta opção se aplica quando não existe o software no formato dpkg, ou a versão disponível em formato dpkg foi compilada de uma forma que não atende os requisitos para seu uso em seu servidor.

Atividades:

Exercícios de instalação de pacotes
  1. Instale o pacote WireShark.
  2. Liste todos os pacotes instalados em sua máquina.
  3. Liste todos os arquivos e diretórios que foram criados na instalação do WireShark.
  4. Desinstale o WireShark.
  5. Instale o pacote lynx (navegador web modo texto).
  6. Teste-o com: lynx www.sj.ifsc.edu.br
  7. Remova o lynx.
  8. Utilize as opções apt-get update, apt-get upgrade e apt-get check. Qual é a funcionalidade de cada uma?
  9. Qual é o arquivo que indica quais repositórios o sistema operacional deve consultar quando se deseja instalar um software?
Exercícios sobre sistemas de arquivos
  1. Diferencie partição primária, estendida e lógica.
  2. Cite um programa para particionamento do disco e suas características?
  3. Qual o principal comando para formatar o sistema de arquivos numa partição?
  4. Verifique quais as partições que você tem montado em sua máquina e qual a taxa de ocupação das mesmas.
  5. Verifique o espaço total ocupado pelo diretório /etc.
  6. Qual a função do arquivo /etc/fstab? Qual o significado das colunas deste arquivo?
  7. Faça uma descrição dos diretórios:
    1. Raiz (/);
    2. /bin;
    3. /dev;
    4. /etc;
    5. /home;
    6. /media;
    7. /proc;
    8. /root;
    9. /sbin;
    10. /usr
  8. Usando o cfdisk crie uma nova partição, usando 100 MB do espaço livre, com tipo de arquivo ext4.
  9. Formate esta partição com o tipo ext4.
  10. Crie, em seu diretório home, um novo diretório de nome novapart e monte esta partição neste diretório. Teste copiando alguns arquivos.
  11. Faça com que esta partição seja montada automaticamente no reboot. Teste.
  12. Desmonte esta partição.

Aula 03 (12/08) - Gerenciamento de usuários e grupos e Cotas de disco

Conteúdo:

  • Gerenciamento de usuários e grupos.
  • Permissionamento.
  • Cotas de usuário.
Roteiro

Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional. Apostila, páginas 61 a 65.

Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações:

  • Nome de usuário (ou login): um apelido que identifica o usuário no sistema
  • UID (User Identifier): um número único que identifica o usuário
  • GID (Group Identifier): o número do grupo primário do usuário
  • Senha (password): senha para verificação de acesso
  • Nome completo (full name): nome completo do usuário
  • Diretório inicial (homedir): o subddiretório pessoal do usuário, onde ele é colocado ao entrar no sistema
  • Shell: o programa a ser executado quando o usuário entrar no sistema

As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de bases de dados de usuários). Dentre elas, a mais simples é composta pelo arquivo /etc/passwd:

root:x:0:0:root:/root:/bin/bash
sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false
suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash

Acima um exemplo de arquivo /etc/passwd

Cada linha desse arquivo define uma conta de usuário no seguinte formato:

nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell

O campo senha em /etc/passwd pode assumir os valores:

  • x: significa que a senha se encontra em /etc/shadow
  • *: significa que a conta está bloqueada
  • senha encriptada: a senha de fato, porém encriptada usando algoritmo hash MD5 ou crypt. Porém usualmente a senha fica armazenada no arquivo /etc/shadow.

O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:

  • Nome de usuário
  • Senha encriptada (sobrepõe a senha que porventura exista em /etc/passwd)
  • Data da última modificação da senha
  • Dias até que a senha possa ser modificada (validade mínima da senha)
  • Dias após que a senha deve ser modificada
  • Dias antes da expiração da senha em que o usuário deve ser alertado
  • Dias após a expiração da senha em que a conta é desabilitada
  • Data em que a conta foi desabilitada

Um exemplo do arquivo /etc/shadow segue abaixo:

root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922::::::
suse-ncc:!:13922:0:99999:7:::
uucp:*:13922::::::
wwwrun:*:13922::::::
roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7:::

Exercício: quando a senha do usuário roberto irá expirar ?

Um grupo é um conjunto de usuários definido da seguinte forma:

  • Nome de group (group name): o nome que identifica o grupo no sistema
  • GID (Group Identifier): um número único que identifica o grupo
  • Lista de usuários: um conjunto de usuários que são membros do grupo

Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo /etc/group a mais simples delas:

root:x:0:
trusted:x:42:
tty:x:5:
utmp:x:22:
uucp:x:14:
video:x:33:roberto
www:x:8:roberto
users:x:100:
radiusd:!:108:
vboxusers:!:1000:

Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em /etc/passwd), ou que aparecem listados em /etc/group.

Gerenciamento de usuários e grupos

Para gerenciar usuários e grupos podem-se editar diretamente os arquivos /etc/passwd, /etc/shadow e /etc/group, porém existem utilitários que facilitam essa tarefa:

  • useradd ou adduser: adiciona um usuário
    • Ex: useradd -c "Roberto de Matos" -m roberto : cria o usuário roberto com nome completo "Roberto de Matos"
    • Ex: useradd -c "Roberto de Matos" -g users -u 5000 -d /usuarios/roberto -s /bin/tcsh -m roberto : cria o usuário roberto com nome completo "Roberto de Matos", UID 5000, grupo users, diretório inicial /usuarios/roberto e shell /bin/tcsh
  • userdel: remove um usuário
    • Ex: userdel roberto : remove o usuário roberto, porém preservando seu diretório home
    • Ex: userdel -r roberto : remove o usuário roberto, incluindo seu diretório home
  • usermod: modifica as informações da conta de um usuário
    • Ex: usermod -u 5001 roberto : modifica o UID do usuário roberto
    • Ex: usermod -g wheel roberto : modifica o GID do usuário roberto
    • Ex: usermod -G users,wheel roberto : modifica os grupos secundários do usuário roberto
    • Ex: usermod -d /contas/roberto roberto : modifica o diretório inicial do usuário roberto (mas não copia os arquivos ...)
  • groupadd: adiciona um grupo
    • Ex: groupadd -g 4444 ger: cria o grupo ger com GID 4444
  • groupdel: remove um grupo
    • Ex: groupdel ger: remove o grupo ger
  • groupmod: modifica um grupo
    • Ex: groupmod -g 5555 ger: modifica o GID do grupo ger
    • Ex: groupmod -A roberto ger: adiciona o usuário roberto ao grupo ger
    • Ex: groupmod -R roberto ger: remove o usuário roberto do grupo ger

Esses utilitários usam os arquivos /etc/login.defs e /etc/default/useradd para obter seus parâmetros padrão. O /etc/adduser.conf tem o mesmo intuito mas é seta exclusivamente os parâmetros do comando adduser. O arquivo /etc/login.defs contém uma série de diretivas e padrões que serão utilizados na criação das próximas contas de usuários. Seu principal conteúdo é:

MAIL_DIR dir # Diretório de e-mail
PASS_MAX_DAYS	99999 #Número de dias até que a senha expire
PASS_MIN_DAYS	0 #Número mínimo de dias entre duas trocas senha
PASS_MIN_LEN 5	#Número mínimo de caracteres para composição da senha
PASS_WARN_AGE 7 #Número de dias para notificação da expiração da senha
UID_MIN 500 #Número mínimo para UID
UID_MAX 60000 #Número máximo para UID
GID_MIN 500 #Número mínimo para GID
GID_MAX 60000 #Número máximo para GID
CREATE_HOME yes #Criar ou não o diretório home

Como o login.defs o arquivo /etc/default/useradd contém padrões para criação de contas. Seu principal conteúdo é:

GROUP=100 #GID primário para os usuários criados 
HOME=/home #Diretório a partir do qual serão criados os “homes”
INACTIVE=-1 #Quantos dias após a expiração da senha a conta é desativada
EXPIRE=AAAA/MM/DD #Dia da expiração da conta
SHEL=/bin/bash #Shell atribuído ao usuário.
SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários.
GROUPS=video,dialout
CREATE_MAIL_SPOOL=no

O /etc/adduser.conf também possui uma série de padrões que funcionam especificamente para o comando adduser:

DSHELL=/bin/bash #Shell atribuído ao usuário.
DHOME=/home #Diretório a partir do qual serão criados os “homes”
SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários.
FIRST_UID=1000 #Número mínimo para UID
LAST_UID=29999 #Número máximo para UID
FIRST_GID=1000 #Número mínimo para GID
LAST_GID=29999 #Número máximo para GID
QUOTAUSER="" #Se o sistema de cotas estiver funcional, pode atribuir quota ao usuário criado.

Permissões

Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa.

Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos.

O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes.

Quando se executa ls -l em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte:

> ls -l
total 403196
drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/
-rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2
-rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2
-rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe
-rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe
>

As colunas que aparecem na listagem são:

  1. Esquema de permissões;
  2. Número de ligações do arquivo;
  3. Nome do usuário dono do arquivo;
  4. Nome do grupo associado ao arquivo;
  5. Tamanho do arquivo, em bytes;
  6. Mês da criação do arquivo; Dia da criação do arquivo;
  7. Hora da criação do arquivo;
  8. Nome do arquivo;

O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10).

Existem três modos distintos de permissão de acesso: leitura (read), escrita (write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito (de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de execução somente se aplica a arquivos que podem ser executados, obviamente, como programas já compilados ou script shell. Os valores válidos para cada uma das colunas são os seguintes:

  • 1 d se o arquivo for um diretório;-se for um arquivo comum;
  • 2,5,8 r se existe permissão de leitura;-caso contrário;
  • 3,6,9 w se existe permissão de alteração;-caso contrário;
  • 4,7,10 x se existe permissão de execução;-caso contrário;

A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório.

A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários:

  • chmod: muda as permissões de acesso (também chamado de modo de acesso). Somente pode ser executado pelo dono do arquivo ou pelo superusuário
    • Ex: chmod +x /home/usuario/programa : adiciona para todos os usuários a permissão de execução ao arquivo /home/usuario/programa
    • Ex: chmod -w /home/usuario/programa : remove para todos os usuários a permissão de escrita do arquivo /home/usuario/programa
    • Ex: chmod o-rwx /home/usuario/programa : remove todas as permissões de acesso ao arquivo /home/usuario/programa para todos os usuários que não o proprietário e membros do grupo proprietário
    • Ex: chmod 755 /home/usuario/programa : define as permissões rwxr-xr-x para o arquivo /home/usuario/programa
  • chown: muda o proprietário de um arquivo. Somente pode ser executado pelo superusuário.
    • Ex: chown roberto /home/usuario/programa: faz com que o usuário roberto seja o dono do arquivo
  • chgrp: muda o grupo dono de um arquivo. Somente pode ser executado pelo superusuário.
    • Ex: chgrp users /home/usuario/programa: faz com que o grupo users seja o grupo dono do arquivo /home/usuario/programa

Há também o utilitário umask, que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos:

  • umask 022: tira a permissão de escrita para group e demais usuários
  • umask 027: tira a permissão de escrita para group, e todas as permissões para demais usuários

Atividades:

Roteiro
  1. Crie o grupo turma.
  2. Crie o diretório /home/contas.
  3. Faça cópia dos arquivos a serem alterados: /etc/login.defs e /etc/default/useradd.
  4. Faça com que o diretório home dos usuários, a serem criados a partir de agora, seja por padrão dentro de /home/contas.
  5. Faça com que os usuários sejam criados com o seguinte perfil, por padrão:
    1. Expiração de senha em 15 dias a partir da criação da conta;
    2. Usuário possa alterar senha a qualquer momento;
    3. Data do bloqueio da conta em 7 dias após a expiração da senha.
    4. Inicie os avisos de expiração da senha 4 dia antes de expirar.
    5. Iniciar a numeração de usuários (ID) a partir de 1500.
  6. Crie um usuário com o nome de manoel, pertencente ao grupo turma.
  7. Dê ao usuário manoel a senha mane123.
  8. Acrescente ao perfil do usuário seu nome completo e endereço: Manoel da Silva, R. dos Pinheiros, 2476666.
  9. Verifique o arquivo /etc/passwd.
  10. Mude, por comandos, o diretório home do manoel de /home/contas/manoel para /home/manoel.
  11. Mude o login do manoel para manoelsilva.
  12. Logue como manoelsilva.
  13. Recomponha os arquivos originais do item 3.

Permissionamento de arquivos e grupos de usuários

  1. Crie a partir do /home 3 diretórios, um com nome aln (aluno), outro prf (professor) e o último svd (servidor).
  2. Crie 3 grupos com os mesmos nomes acima.
  3. Crie 3 contas pertencentes ao grupo aln: aluno1, aluno2, aluno3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/aln/. Por exemplo para o aluno1 teremos /home/aln/aluno1.
  4. Crie 3 contas pertencentes ao grupo prf: prof1, prof2, prof3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/prf/.
  5. Crie 3 contas pertencentes ao grupo svd: serv1, serv2, serv3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/svd/.
  6. Os diretórios dos alunos, e todo o seu conteúdo, devem ser visíveis e editáveis aos membros do próprio grupo, visíveis mas não apagáveis a todos os demais usuários da rede.
  7. Já os diretórios dos professores e servidores, devem ser mutuamente visíveis, mas não apagáveis, entre os membros dos grupos professores e servidores mas não deve ser sequer visível aos membros do grupo alunos.

Questionário conceitual de gerência

Aula 04 (20/08) - Processo de Boot e RAID

Conteúdo:

  • Processo de Boot
  • upstart
Roteiro

Boot:

O processo de inicialização do sistema operacional, chamado de boot. Tradicionalmente no Unix System V isto se faz com a definição de níveis de execução (runlevels) e uma tabela que descreve que processos ou serviços devem existir em cada nível. Os níveis de execução são:

  1. Monousuário (single-user), ou administrativo: usado para manutenção do sistema, admite somente o login do superusuário. Não inicia serviços de rede.
  2. Multiusuário com rede (parcial): admite logins de usuários, mas não ativa acesso a recursos de rede (como sistemas de arquivo remotos)
  3. Multiusuário com rede plena
  4. Não usado
  5. Multiusuário com rede plena e ambiente gráfico: ativa também o ambiente gráfico X11
  6. Reinício do sistema (reboot)

As distribuições Linux em geral adotam a inicialização no estilo Unix System V. No entanto, o Ubuntu usa um outro processo chamado de upstart. Esse serviço de inicialização confere maior flexibilidade e mesmo simplicidade à definição de que serviços devem ser executados. O upstart não usa o conceito de níveis de execução, mas devido à sua flexibilidade ele pode emular esse estilo de inicialização. Para o upstart, um serviço deve ser iniciado ou parado dependendo de uma combinação de eventos, sendo que um evento indica a ocorrência de uma etapa da inicialização.

O upstart é implementado pelo processo init (programa /sbin/init), que é o primeiro processo criado pelo sistema operacional. Quer dizer, logo após terminar a carga e inicialização do kernel, este cria um processo que executa o programa /sbin/init. O upstart lista o subdiretório /etc/init e procura arquivos com extensão .conf. Cada arquivo desses descreve um serviço a ser controlado pelo upstart. Por exemplo, o serviço tty2 é escrito no arquivo tty2.conf:

# tty2 - getty
#
# This service maintains a getty on tty2 from the point the system is
# started until it is shut down again.

start on runlevel [23]
stop on runlevel [!23]

respawn
exec /sbin/getty -8 38400 tty2

Abaixo segue o significado de cada linha:

  • start on runlevel [23]: o serviço deve ser iniciado quando ocorrerem os eventos "runlevel 2" ou "runlevel 3"
  • stop on runlevel [!23]: o serviço deve ser parado quando ocorrer qualquer evento "runlevel X", sendo X diferente de 2 e 3
  • respawn: o serviço deve ser reiniciado automaticamente caso termine de forma anormal
  • exec /sbin/getty -8 38400 tty2: a ativação do serviço implica executar o /sbin/getty -8 38400 tty2

Em linhas gerais, a descrição do serviço informa quando ele deve ser ativado (start), quando deve ser parado (stop), o tipo de execução (respawn para reinício automático, ou task para uma única execução), e que ação deve ser executada para ativar o serviço (exec para executar um programa, ou script .. end script para executar uma sequência de comandos de shell). Maiores detalhes podem ser lidos na página de manual do init.

  • RAID:
Roteiro

RAID (Redundant Array of Independent Disks) se destina a combinar discos de forma a incrementar o desempenho de entrada e saída e, principalmente, segurança dos dados contra defeitos em discos. RAID pode ser provido via software ou hardware (melhor este último). O Linux possui implementação por software em seu kernel, e neste HOWTO há uma descrição resumida.

Há vários níveis RAID, que correspondem a diferentes combinações de discos e partições. São eles:

  • LINEAR: concatena discos ou partições, mas não provê acréscimos de desempenho, nem de segurança dos dados (pelo contrário ! se um disco falhar, perdem-se todos os dados ...).
  • RAID 0 (ou striping): combina discos ou partições de forma alternada, para distribuir os acessos entre eles (aumentar desempenho). Porém, se um disco falhar perdem-se todos os dados. Requer um mínimo de dois discos.
    RAID 0.png
  • RAID 1 (ou mirroring): combina discos ou partições para espelhar dados (segurança). Requer o dobro de discos necessários para guardar os dados (ex: se há dois discos com dados, são necessários outros dois para espelhamento). Se todos os discos falharem, é possível continuar a operar usando os discos espelhados. Requer no mínimo dois discos.
    RAID 1.png
  • RAID 4 e 5: combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade. Se um disco falhar, é capaz de continuar operando (porém com desempenho reduzido até que esse disco seja reposto). RAID 4 na prática não se usa, pois apresenta um gargalo no disco onde residem os blocos de paridades. Requer no mínimo três discos.
    RAID 4.png RAID 5.png
  • RAID 6: combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade de forma duplicada. Isto garante que os dados se preservam mesmo que dois discos se danifiquem. Requer no mínimo quatro discos (pois há dois discos adicionais para paridades).
    RAID 6.png
  • RAID 10: combina RAID 1 e RAID 0, criando um volume com espelhamento (RAID 1), e depois fazendo o striping (RAID 0). Requer no mínimo quatro discos.
    RAID 10.png
  • RAID 01: combina RAID 0 e RAID 1, criando um volume com striping (RAID 0), e depois fazendo o espelhamento (RAID 1). Requer no mínimo quatro discos.
    RAID 01.png

Criação de um volume RAID no Linux:

  1. Usar o comando mdadm --create --verbose /dev/md0 --level=NIVEL_RAID --raid-devices=NUM_PARTICOES PARTICAO_1 PARTICAO_2 ...
    • NIVEL_RAID pode ser linear, 0, 1, 4, 5, 6, 10, mp, faulty (mais comuns são 0, 1 e 5).
    • NUM_PARTICOES é a quantidade de partições usadas no volume.
    • As partições são identificadas com o caminho (pathname) do dispositivo correspondente no Linux. Ex: a primeira partição do primeiro disco SCSI ou SATA é /dev/sda1, a segunda partição desse disco é /dev/sda2, a primeira partição do segundo disco SCSI ou SATA é /dev/sdb1, e assim por diante.
    • /dev/md0 é o caminho do dispositivo que corresponde ao volume RAID a ser criado. O primeiro volume RAID é /dev/md0, o segundo é /dev/md1, e assim por diante.
  2. Formatar o volume RAID: mkfs.ext4 -j /dev/md0
  3. Uma vez testado o volume RAID, sua configuração pode ser salva para posterior uso: mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    • Isto é importante para que o volume possa ser ativado automaticamente no próximo boot.

Para ativar um volume já criado, basta executar mdadm --assemble caminho_do_volume. Ex: mdadm --assemble /dev/md0, mdadm --assemble /dev/md1.

Atividades:

Roteiro upstart

Um exemplo de criação de serviço no upstart

  1. Analisar alguns serviços no /etc/init/ e verificar o conteúdo dos upstarts. Tentar replicar a ideia para o faxineiro.
  2. Criar um serviço chamado faxineiro, para remover dos diretórios temporários (/var/tmp) todos os arquivos.
  3. Configurar esse novo serviço para executar no boot, logo após o serviço mountall.
  4. Reiniciar o sistema para testá-lo (executar reboot)
Roteiro RAID
  1. Dica: crie uma cópia de sua máquina virtual (snapshot - ferramenta do VirtualBox) antes de executar o roteiro, caso dê problemas a recuperação é muito simples.
  2. Crie duas partições de mesmo tamanho no disco /dev/sdb usando o cfdisk. Marque-as como sendo do tipo Linux RAID (fdisk t = "fd").
  3. Crie um volume RAID nível 1 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
  4. Desmonte e Pare o volume existente, com mdadm -S /dev/md0
  5. Crie um volume RAID nível 0 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
  6. Desmonte e Pare o volume existente, com mdadm -S /dev/md0
  7. Crie um volume RAID nível 5 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
  8. Desmonte e Pare o volume existente, com mdadm -S /dev/md0

Aula 05 (21/08) - Cron

Conteúdo:

  • Agendamento de tarefas
  • cron

Agendamento de tarefas administrativas com crontab. Apostila de Gerência de Redes, capítulo 19.

Roteiro

O cron é um programa de agendamento de tarefas. Com ele pode-se fazer a programação para execução de qualquer programa numa certa periodicidade ou até mesmo em um exato dia, numa exata hora. Um uso comum do cron é o agendamento de tarefas administrativas de manutenção do seu sistema, como por exemplo, análise de segurança w backup. Estas tarefas são programadas para, todo dia, toda semana ou todo mês, serem automaticamente executadas através da crontab e um script shell comum. A configuração do cron geralmente é chamada de crontab.

Os sistemas Linux possuem o cron na instalação padrão. A configuração tem duas partes: uma global, e uma por usuário. Na global, controlada pelo root, o crontab pode ser configurado para executar qualquer tarefa de qualquer lugar, como qualquer usuário. Já na parte por usuário, cada usuário tem seu próprio crontab, sendo restringido apenas ao que o usuário pode fazer (e não tudo, como é o caso do root).

Uso do crontab

Para configurar um crontab por usuário, utiliza-se o comando crontab, junto com um parâmetro, dependendo do que se deseja fazer. Abaixo uma relação:

  • crontab -e: Edita a crontab atual do usuário logado
  • crontab -l: Exibe o atual conteúdo da crontab do usuário
  • crontab -r: Remove a crontab do usuário

Se você quiser verificar os arquivos crontab dos usuários, você precisará ser root. O comando crontab coloca os arquivos dos usuários no diretório /var/spool/cron/crontabs . Por exemplo, a crontab do usuário aluno estará no arquivo /var/spool/cron/crontabs/aluno.

Existe também uma crontab global, que fica no arquivo /etc/crontab, e só pode ser modificado pelo root. Vamos estudar o formato da linha do crontab, que é quem vai dizer o que executar e quando. Vamos ver um exemplo:

30 12,22 * * *  /home/aluno/scripts/backup.sh >/dev/null 2>&1

A linha é dividida em campos separados por tabs ou espaço:

Campo Função
1o Minuto
2o Hora
3o Dia do mês
4o Mês
5o Dia da semana
6o Programa a ser executrado

Todos estes campos, sem contar com o 6o., são especificados por números. Veja a tabela abaixo para os valores destes campos:


Campo Função
Minuto 0-59
Hora 0-23
Dia do mês 1-31
Mês 1-12
Dia da semana 0-6 (0=domingo, 6=sábado)

Além destes temos também alguns parâmetros ativos:

@reboot = run at boot and reboot only

@yearly = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)

@annually = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)

@monthly = run at midnight on the first day of each month (equiv to 0 0 1 * *)

@weekly = run at midnight each Sunday (equiv to 0 0 * * 0)

@daily = run at midnight each day (equiv to 0 0 * * *)

@ midnight = run at midnight each day (equiv to 0 0 * * *)

@ hourly = run on the first second of every hour (equiv to 0 * * * *)


Então o que nosso primeiro exemplo estava dizendo? A linha está dizendo: "Execute o comando /root/scripts/backup.sh às 12:30 h e às 22:30h, todos os dias".

Vamos analisar mais alguns exemplos:

1,21,41 *       *       *       *       echo "Meu crontab rodou mesmo!"

Aqui está dizendo: "Executar o comando do sexto campo toda hora, todo dia, nos minutos 1, 21 e 41".

30      4       *       *       1       rm -rf /tmp/*

Aqui está dizendo: "Apagar todo conteúdo do diretório /tmp toda segunda-feira, as 4:30 da manhã."

45      19      1,15    *       *       /usr/local/bin/backup

Aqui está dizendo: "Executar o comando 'backup' todo dia 1 e 15 às 19:45.".

E assim pode-se ir montando inúmeros jeitos de agendamento possível. No arquivo do crontab global, o sexto campo pode ser substituído pelo nome do usuário, e um sétimo campo adicionado com o programa para a execução, como mostrado no exemplo a seguir:

*/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

Aqui está dizendo: "Executar o mrtg como usuário root, de 5 em 5 minutos sempre."

0      19-23/2      *    *       *       /root/script

Aqui está dizendo: “Executar o 'script' entre as 19 e 23 de 2 em duas horas.”

Atividades:

Roteiro cron
  1. Crie uma regra cron que faça o backup (tar zipado) de todo o /etc para ser executada todos os dias às 02h30min. Adicione comentários no arquivo indicando a tarefa a ser executada.
  2. Crie uma regra cron para que seja feita uma limpeza total do /tmp todos os domingos as 03 h. Faça comentários no crontab para que outros usuários entendam o que foi feito.
  3. Crie uma regra cron para que seja eliminado o usuário visitante, bem como seu diretório home, todo dia 1° de janeiro as 00 h 30 min. Faça comentários.
  4. Crie uma regra cron para que seja criado novamente o usuário visitante todo dia 1° de janeiro a 01 h 00 min. Faça comentários.
  5. Agende o comando date para escrever/adicionar sua saída ao arquivo /root/date a cada minuto.
  6. Pressuponha que o script /root/abacaxi.sh exista, agende o mesmo para ser executado:
    1. De dois em dois dias às 11 h e 55 min.
    2. Todo dia 5 às 3 h e 50 min.
    3. No dia 14 de cada mês entre as 8 e 18 h, de hora em hora.