Mudanças entre as edições de "ARC60808-2014-2"
Linha 20: | Linha 20: | ||
== Cronograma de atividades == | == Cronograma de atividades == | ||
+ | {{collapse top | Diário de aulas proposto}} | ||
{{Cronograma-top}} | {{Cronograma-top}} | ||
{{Cl|1 |30/7 | 2 | Apresentação da Disciplina | Sala de Aula, projetor multimídia, wiki}} | {{Cl|1 |30/7 | 2 | Apresentação da Disciplina | Sala de Aula, projetor multimídia, wiki}} | ||
Linha 82: | Linha 83: | ||
{{cronograma-botton |118}} | {{cronograma-botton |118}} | ||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
=Diário de aulas= | =Diário de aulas= |
Edição das 15h41min de 27 de agosto de 2014
Professores: Odilson Tadeu Valle e Tulio Alberton Ribeiro
Encontros: 2ª feira, 4ª feira e 6ª feira entre 13h30 às 15h20 turma A e 15h40 às 17h30 turma B
Atendimento paralelo: Odilson 3ª feira das 9h40 às 10h35 e 4ª das 14h25 às 15h20. Local: Lab. de Desenvolvimento.
Email: odilson@ifsc.edu.br e tulio.alberton@ifsc.edu.br
IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação e aguardar o parecer da coordenação.
Referências bibliográficas
- Odilson T. Valle . Administração de Redes com Linux: Fundamentos e Práticas. 1. ed. Florianópolis: Publicação do IF-SC, 2010. v. 1000. 302p .
- Valle, Odilson Tadeu. Gerência de Redes. IFSC - Unidade São José. 2009.
- Guia Foca Linux (intermediário ou avançado)
- Demais referências contidas na página principal de GER.
Material de Apoio
Site para treinar comandos básicos. Simula um terminal shell do Linux. Não apresenta todas as funcionalidades do shell normal.
Site para treinar desenvolvimento de shell scripts.
Cronograma de atividades
Diário de aulas proposto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Diário de aulas
Aula 1 - 30/7/14: Apresentação da disciplina |
---|
|
Aula 2,3,4 - 1,4,6/8/14: Revisão dos comandos básicos |
---|
Objetivo: Revisão dos comandos básicos, familiarização e fixação do conteúdo. Material Auxiliar (Comandos básicos 01) (Comandos básicos 02 ) ( Slides Aula Introdução ao Linux Tulio.)
|
Aula 5 - 8/8/14: Editor VI |
---|
Objetivo: Familiarização com o editor e ser capaz de executar comandos simples, porém úteis para manipulação de arquivos. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula.
|
Aula 6 - 11/8/14: Lógica de Programação |
---|
Introdução à Lógica de Programação Introdução ao Shell (Slides Prof. Gustavo Introdução ao Shell, Slides Prof. Glauco Introdução ao Shell). Objetivo: Criar um script Shell com comandos básicos e que seja capaz de executar tarefas simples. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula. ROTEIRO:
Gabarito:
|
Aula 7,8,9 - 13,15,18/8/14: Shell Script |
---|
Objetivo: Ser capaz de implementar as estruturas de teste if, while e for, para a execução de tarefas simples no Linux. ROTEIRO:
Gabarito Ex. 3:
|
Aula 10 - 20/8/14: Dúvidas e preparação para avaliação |
---|
Aula 11 - 22/8/14: Dúvidas e Festival de Música |
---|
Aula 12 - 25/8/14: Usuários e grupos |
---|
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:
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:
O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:
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:
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 gruposPara 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:
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. AtividadeObs.: Na máquina virtual (ARC-2-servidor) é possível ter vários usuários logados simultaneamente, para isto basta logar o primeiro usuário (aluno) normalmente e, para os demais usuários, abrir novos terminais com as teclas: <Alt> + <F2>, <Alt> + <F3>, <Alt> + <F4> .... Para retornar a um dos usuários logados basta digitar o conjunto de teclas (<Alt> + <F?>) do respectivo usuário.
|
Aula 13 - 27/8/14: Primeira avaliação |
---|
Exercícios de fixação / Desafios
Exercício / Desafio 1 |
---|
Crie os arquivos abaixo na pasta ~/meusLogs e preencha com conteúdo aleatório. tail -n 1 ~/meusLogs/arq1 head -n 1 ~/meusLogs/outroArq ls -lat ~/meusLogs/ A saída dos comandos devem ser colocados em variáveis e só então redirecionados para o arquivo. Ex.: VAR1=` comando a ser executado` Ex.: VAR2=`...` Para acessar uma variável utiliza o caracter $ Ex.: echo $VAR1 Sendo que, você irá identificar a cada chamada do script, em qual dia, mês, ano, hora, minuto e segundo o script foi chamado e colocar no topo de cada saída gerada a seguinte informação: Log gerado em: 07-08-2014_17:25:36, olhar exemplo no final do exercício. Dicas: você irá utilizar o comando 'date' para gerar a saída no formato desejado e redirecionar a saída para o arquivo em questão com >>. O arquivo monitorSaidaLog.txt deve estar em ~/meusLogs/monitorSaidaLog.txt, ou seja, dentro do home do usuário criar a pasta meusLogs e redirecionar a saída do script para lá...
d-m-Y_HMS d = dia atual, 0-31 m = mês atual, 1-12 Y = ano atual, 1900 - hoje H = hora atual, 0-23 M = minuto atual, 0-59 S = segundo atual, 0-59
Log gerado em: 07-08-2014_17:25:36 Aug 7 17:13:22 wrl -- MARK -- Aug 7 13:15:01 wrl kernel: [ 111.330006] eth0: no IPv6 routers present Aug 7 16:13:42 wrl su[8856]: + /dev/pts/1 worm:root Log gerado em: 07-08-2014_17:26:34 Aug 7 17:13:22 wrl -- MARK -- Aug 7 13:15:01 wrl kernel: [ 111.330006] eth0: no IPv6 routers present Aug 7 16:13:42 wrl su[8856]: + /dev/pts/1 worm:root
Se tudo correr bem, a cada 60 segundos, o arquivo deve ser incrementado com o novo conteúdo.
|
Exercício / Desafio 2 |
---|
Fazer um Script com o nome scriptBackupDir.sh para gerar o backup de um diretório. O script de backup deve ser executado a cada 2 minutos. Você deve salvar informações sobre o backup em um arquivo de log. Você deve a cada nova execução, se tudo correr bem, apagar o penúltimo backup feito, de tal forma que só o último backup gerado permaneça salvo. Você deve solicitar ao usuário de qual diretório deve ser feito backup.
read DIR_BKP_NOME #ou através de parâmetros A variável DIR_BKP_NOME deve ser colocada no topo do script, na primeira linha. diretório de destino do backup. DIR_DEST="~/Backup_Dir/" nome do backup com esse formato: BKP_NOME=15-08-2014-12-47-22.tar.gz" echo "Backup salvo em:" NOME_SALVAR= echo $NOME_SALVAR colocar lógica aqui...
tar -cvvzf $NOME_SALVAR $DIR_BKP_NOME > /dev/null 2> /dev/null REMOVE_LAST=`cat $DIR_DEST"NomeArquivoLog.log"` echo $VAR_COM_NOME_COMPLETO > $DIR_DEST"NomeArquivoLog.log" |
Exercício / Desafio 3 |
---|
Faça um shellScript que compacte todos arquivos passados como parâmetros (separadamente). Seu script deve ter no máximo 5 linhas. Utilize o gzip para compactar. Exemplo de chamada do script: meuScriptCompactador.sh aqruivo1 outroArquivo file3 |
Exercício / Desafio 4 |
---|
Faça um shellScript que a partir de um arquivo de entrada, leia linha a linha desse arquivo e retorne a média. Exemplo Arquivo entrada: João 7 8 9 Marcelo 6 8 10 Maria 5 9 8 Fernando 4 7 9 Exemplo saída esperada: João 8 Marcelo 8 ... Dica, utilizar o comando awk. |
Exercício / Desafio 5 - Calculadora |
---|
Faça um shellScript chamado calcular.sh que a partir de três parâmetros, faça o cálculo desejado, exemplo: ./calcular.sh valor1 + valor2 ./calcular.sh 10 + 3 Após fazer o cálculo o shellScript deve perguntar se o usuário quer fazer outra operação ou terminar.
|