LINUX - harleyrios.webnode.com · GNU / LINUX Compreendendo a base O que é GNU? Gnu is not Unix é...
Transcript of LINUX - harleyrios.webnode.com · GNU / LINUX Compreendendo a base O que é GNU? Gnu is not Unix é...
Uma abordagem introdutória sobre seu funcionamento e formas de aplicação
LINUX
Prof. Harley de Faria Rios
2015
GNU / LINUX
Introdução Histórica
GNU / LINUX
Compreendendo a base
➢ O que é GNU?
➢ Gnu is not Unix é a Organização responsável por elaborar, controlar e manter as famosas licenças GPL ou General Public Licence
Fundada em 1984
➢ Objetivo :: Preservar a liberdade do usuário em estar modificando, reproduzindo, estudando ou revendendo os sistemas baseados em GPL's
Obrigação em manter os fontes do autor do sistema.
➢Vantagem :: impede que empresas façam uso de sistemas livres para aplicações comerciais.
GNU / LINUX
Tipos de licenças GNU
➢GPL :: licença aplicada a um software livre com o objetivo de não priva-lo de possíveis estudos, modificações e venda por outros usuários
➢Nesta licença não é permitido a modificação do copyright do usuário criador do produto.
➢FDL :: licença aplicada a documentação. Usa dos mesmos princípios adotados na GPL para manter a integridade dos usuários responsáveis pela criação.
GNU / LINUX
O que é um sistema livre?
➢Um sistema é considerado livre somente se todos os usuários possuem:
➢A liberdade de executar o programa, para qualquer propósito;
➢A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades;
➢A liberdade de reproduzir cópias de modo que você possa ajudar seu próximo;
➢A liberdade de aperfeiçoar o programa, e liberar os aperfeiçoamentos, de modo que toda a comunidade se beneficie;
GNU / LINUX
Como utilizar a GPL
➢É simples, basta adicionar alguns elementos em seu código:
➢Uma nota de copyright na qual deve constar o nome do sistema e a data de criação.
➢Um arquivo falando que o software está protegido pela licença GPL e o ano que foi finalizado sua construção.
➢inclusão de uma cópia na integra da licença GPL dentro da distribuição (http://www.gnu.org).
GNU / LINUX
Introdução a Plataforma Linux
GNU / LINUX
Linux, o surgimento
➢Com base no Unix da Bell Labs – 1970
➢1991 :: Linus Torvalds estudante de ciência da computação da universidade de Helsinque na Finlândia resolve desenvolver um sistema operacional para seu 386.
➢Necessidade de Torvalds :: um sistema que permitisse o estudo dos módulos e seu funcionamento.
➢Primeiros seis meses :: Torvalds desenvolve o sistema sozinho.
➢Mais tarde :: Publica a ideia na Internet e consegue vários seguidores no mundo todo.
GNU / LINUX
Kernel / Distribuição
Kernel :: responsável por controlar os dispositivos de hardware do sistema operacional e suas funções básicas.
Módulos de kernel :: para otimizar a programação vários módulos fazem parte do kernel e sua configuração pode ser verificada em /etc/modules.conf ou /etc/modprobe.d/*
modprobe -l :: mostra os módulos carregados
Arquivo /etc/modules : carrega em tempo de boot
➢Distribuição :: Kernel + programas essenciais
GNU / LINUX
Qual distribuição devo utilizar? ➢ Como vimos o núcleo do sistema é o mesmo
➢ As diferenças estão na forma como a distribuição é criada e qual o seu foco principal.
➢ Se está começando, busque uma distribuição com vasta documentação e bem difundida na rede para facilitar a migração
➢Ubuntu, Slackware e SuSe
GNU / LINUX
Regras para instalação
➢ Pensando nas opções
➢ Tenho internet em casa :: instale uma versão reduzida com kernel + graphical user interface (GUI)
➢ Não tenho internet :: busque uma distribuição mais completa que já venha com boa parte dos pacotes já no CD / DVD.
✔Gnome (www.gnome-look.org)
✔KDE (www.kde-look.org)
✔XFCE
GNU / LINUX
Regras para instalação ➢Quanto deixo de espaço no HD?
➢Instalação básica :: partição com 800MB são suficientes
➢Instalação completa :: partição com 3GB a 5GB dependendo da distribuição
➢Como o Linux reconhece meu HD?
➢Atualmente há duas formas mais usuais de reconhecimento, que é pelas letras HD? ou SD?
➢Lembre-se :: Sempre faça backup dos dados importantes antes da instalação (SEMPRE)
GNU / LINUX
Árvore de diretórios
➢Após a instalação correta haverá uma estrutura de diretórios como apresentado na figura abaixo
Raiz ( / )
bin sbin boot dev etc lib mnt home tmp var root usr
GNU / LINUX
Árvore de diretórios
➢/bin :: Arquivos executáveis do sistema e os que são utilizados com frequência.
➢/sbin :: Arquivos executáveis de configuração do sistema / essenciais (ex: ifconfig).
➢/boot :: Arquivos estáticos de boot e inicialização (ex: grub).
➢/dev :: Arquivos que representam dispositivos de entrada / saída (ex: cdrom).
➢/etc :: Arquivos globais de configuração e gestão do sistema. Aqui também estão outros subdiretórios importantes, tais como: /etc/X11
GNU / LINUX
Árvore de diretórios
➢/lib :: Arquivos de bibliotecas compartilhadas usadas com freqüência
➢/media :: Ponto de montagem padrão para outros dispositivos
➢/tmp :: Arquivos temporários gerados por alguns utilitários.
➢/var :: Ficam os arquivos de informação variável.
➢/root :: Diretório local do super usuário
GNU / LINUX
Árvore de diretórios
➢/usr :: Todos os arquivos binários devem sertar aqui (EX: quando você instala um programa o executável geralmente fica em: /usr/local/bin)
➢/home :: Diretório dos usuários. O diretório inicial do usuário também contém um número de arquivos de configuração. Esses arquivos geralmente ficam em pastas com ponto(.) no início do nome
GNU / LINUX
Acesso a arquivos
➢Para classificar um arquivo no windows, basta olhar para sua extensão. Esse padrão não aplica-se ao linux
➢Linux trabalha com permissões e são essas que classificam o arquivo para leitura, escrita e execução drwx-rwx-rwx
➢Dica :: Muitas distribuições apresentam problemas ao utilizar arquivos com espaço. Quando for necessário fazer uso desse tipo de arquivo sempre tenha em mente que para lê-lo basta colocar todo o nome entre aspas
Tipos de usuários no Linux
Usuários comuns :: São os usuários que podem se conectar.
Geralmente, esses usuários possuem um diretório base (/home/harley, no exemplo).
Root :: superusuário que tem controle total sobre todo o sistema
Ex: cat /etc/passwd
GNU / LINUX
GNU / LINUX
Comandos
Ordens passadas ao sistema operacional, o qual executa uma system call para atender a chamada do usuário.
Antigamente a base na manipulação do sistema linux era toda feito por meio de comandos do shell.
ls :: Lista diretórios
Exemplo :: ls /
ls –l /
Comando “cd” – Utilizado para navegação
Ex: cd /
cd /home
cd /usr/share
cd ..
A maioria dos comandos fazem uso de parâmetros para diferentes formas de execução
EX.: ls -la /usr/share/
ls –lR /etc
Solução :: faça sempre uso do comando man
Exercício
1 - Acesse o diretório /etc/firefox.
2 – Verifique os arquivos que fazem parte deste diretório
3- Dê o comando pwd e verifique o diretório de trabalho corrente.
4 - Verifique os arquivos que estão dentro do diretório, inclusive suas permissões
5 – Execute o browser Firefox
GNU / LINUX
Exercício
1 – Acesse o diretório /home de seu usuário.
2 - Verifique os arquivos que estão dentro do diretório /home
3 – Verifique os arquivos juntamente com suas permissões e arquivos ocultos.
4 – Volte para o diretório raiz.
GNU / LINUX
Divisão dos comandos
➢Ao executar um comando no shell do linux, este verifica se o comando é interno ou externo ao shell e executa a chamada solicitada
➢Comandos internos :: ficam armazenados junto ao shell e não em disco como por exemplo um executável de aplicativo.
➢EX.: CD, LS, CAT ...
GNU / LINUX
Compreendendo o Shell do Linux e seus comandos básicos
GNU / LINUX
Como trabalhar com o shell
➢ Ao optar pelo shell como ferramenta “braço direito” - pode-se optar por duas formas de execução de tarefas:
➢ Forma interativa :: cada comando é digitado pelo usuário e este aguarda o resultado de seu término.
➢ Forma não-interativa :: O usuário cria um arquivo de execução intermediário para ser rodado (script) e este executa todas as operações de uma só vez.
Pode-se executar uma operação interativa ou não de duas formas: tempo real, ou background.
GNU / LINUX
Coringas do comando LS
➢* :: utilizado para listar vários arquivos de uma só vez
➢cd /var/log
➢ls –l *.log
GNU / LINUX
Arquivos de configuração
➢Windows :: para configuração do sistema utilizamos, geralmente, os arquivos config.sys e autoexec.bat
➢Linux :: Dentro da pasta etc sempre haverá uma subpasta chamada init.d ou rc.d ou initd onde todas as configurações iniciais do sistema são configuradas
Ex: cd /etc/init.d
Verifique este diretório: ls /etc | more
Alguns comandos gerais
uptime :: tempo em que o sistema está ativo
clear :: Limpa a tela
date :: Exibe data e hora do sistema
df :: Mostra o espaço livre no disco
df –h
sudo :: Executa um processo no modo de super usuário (root)
sudo rm arquivo.sh
su :: troca para o usuário root ou outro usuário
reboot :: Reinicia o computador
shutdown – Desliga o computador
shutdown –h now
GNU / LINUX
GNU / LINUX
Executando vários processos
Para executar várias chamadas system calls de uma só vez basta separar os comandos por ponto e virgula “;”
➢EX.: cat teste01.txt; cat teste02.txt ...
Neste caso sempre é útil redirecionar a saída para um arquivo utilizando o sinal de maior. Para pesquisar algum dado sempre utilizamos o comando:
➢EX :: cat /etc/passwd
➢cat texto.txt | grep <PARTE DA PALAVRA>
➢cat /etc/passwd | grep root
GNU / LINUX
Manipulando diretórios ➢ Além dos comandos ls e cd
➢ pwd :: mostra o nome e caminho do diretório atual
➢ mkdir :: cria um diretório (pasta) no sistema
➢ rmdir :: remove um diretório do sistema
➢ rm -r :: remove diretório recursivamente
➢ vamos testar !!!!
➢ Ex: mkdir teste1 teste2 (cria no diretório atual)
➢ mkdir /home/redes
GNU / LINUX Outros comandos
➢ls –l / :: listar conteúdo diretório corrente
➢df :: mostra o espaço em disco por partição criada
➢du :: mostra quanto cada pasta está consumindo no diretório corrente
➢free :: mostra detalhes sobre a utilização da RAM
➢grep :: procura por um texto dentro de um arquivo ou por um nome em uma instrução ls
➢nl :: mostra o número das linhas de um arquivo texto
(nl /etc/passwd)
➢more :: para parar a tela quando cheia
GNU / LINUX
Outros comandos
find :: procurar arquivos na árvore de diretórios
find [Diretório] [opções] [Arquivo] :: find / -name passwd
Opções mais utilizadas
find / -name vmlinuz :: busca a partir do diretório raiz arquivos com o nome vmlinuz
find / -name Documentos -user harley :: busca por arquivos ou diretórios chamados Documentos na raiz que tenham sido criados pelo usuário harley
cat tutorial.txt | grep linux :: destaca no arquivo tutorial.txt a palavra linux
Exercício
1 – Pesquise no diretório /etc/passwd todas as linhas que contenha ‘root’.
Reposta: cat /etc/passwd | grep root
2- Pesquise no diretório raiz todos arquivos ou diretórios com o nome ‘interfaces’.
Resposta: find / -name interfaces
3 – Pesquise no diretório raíz todos arquivos ou diretórios chamados Imagens que tenha sido criado pelo usuário harley
find / - name Documentos –user harley
4 – Pesquise no diretório /etc todos os arquivos com extensão .conf.
Resposta: find /etc –name *.conf
5 – Crie um diretório chamado “curso-linux” dentro do diretório /home de seu usuário.
6 – Crie um diretório chamado “Fotos” dentro do diretório “Imagens” do /home de seu usuário.
7 - Verifique as permissões destes diretórios.
GNU / LINUX
GNU / LINUX
Outros comandos
➢setterm :: utilizado para a manipulação das cores do terminal
➢EX.: setterm -background green
➢EX.: setterm -foreground yellow
➢locate :: executa busca por arquivos iniciados com o nome dado pelo usuário
➢EX.: locate xorg.conf
GNU / LINUX
Exercícios
1 - Utilizando os comandos cat, grep tente pegar a linha do arquivo /proc/cpuinfo referente à marca da CPU (vendor_id) e mostrá-la na tela para o usuário.
2 - Utilizando os comandos cat e grep, tente identificar no arquivo /etc/passwd linhas onde aparecem informações do seu usuário Linux atual.
GNU / LINUX
Inicialização de usuários
Quando em um sistema multi usuários é preciso criar comandos particulares pode-se fazer uso de alguns arquivos ocultos da pasta local
➢.bashrc
➢.profile
➢.bash_logout
Arquivo /etc/motd :: este arquivo é lido toda vez que um usuário executa login via prompt
GNU / LINUX
Gerenciando usuários
Verificando usuários :: cat /etc/passwd
:: tail -5 /etc/passwd
Verificando usuário específico :: grep harley /etc/passwd
Adicionando um novo usuário
# adduser teste
Vefique se o usuário foi criado no /etc/passwd
Pratique !!! :: Crie um usário chamado cursoLinux
Vefique se o usuário foi criado no /etc/passwd
Verifique o diretório /home
➢
Gerenciando usuários
Excluir um usuário
Para remover usuários em um sistema linux basta utilizar
userdel -r NOME_USUARIO :: este comando, alem de remover o usuário criado também é responsável por remover sua pasta no home
Pratique !!! :: Crie um usuário chamado aula. Verifique se ele foi criado. Agora remova o usuário juntamente com seu diretório /home.
Crie um usuário chamado ‘redes’. Verifique sua criação.
GNU / LINUX
Gerenciando processos
➢Uma solução inteligente – o núcleo é separado da interface gráfica
➢Quando um processo trava, isso não faz com que o ambiente gráfico trave junto.
PS [opção] ::mostra quais processos estão sendo executados. As opções são:
●a ::mostra todos os processos em execução
●u :: mostra o nome do usuário dono do processo
●x :: mostra processos que não são controlados pelo terminal
●m :: mostra o consumo de memória / processo
GNU / LINUX
Gerenciando processos
➢Como faço pra saber quais estão rodando e quais estão parados?
➢top [opção]:: utilizado para ver quais processos estão rodando. As opções para utiliza-lo são:
-d [tempo] :: atualiza a tela a cada x segundos definidos na variável tempo
-s :: diz ao top para executar em modo seguro
-i :: inicia o top ignorando processos zumbis
-c :: mostra a linha de comando ao invés do nome do processo
espaço :: atualiza imediatamente a tela
CTRL + L :: apaga e atualiza a tela
q :: sai do top
GNU / LINUX
Controle e execução de processos
➢interrompendo a execução de um processo
➢em primeiro plano basta utilizar o CTRL+C
➢em background é preciso utilizar o comando kill
➢interrompendo momentaneamente
GNU / LINUX
Controle e execução de processos
➢Como sei o que está parado sem iniciar?
➢jobs :: exibe em tela todos os jobs que estão parados para gerenciamento futuro por fg ou bg
➢Kill :: há várias foras de se eliminar um processo em execução
kill -9 PID :: envia um comando de destruição ao processo. Ao utilizar este comando o processo ou programa morrerá imediatamente
kill PID :: envia um comando de encerramento ao programa ou processo e permite que ele salve os dados se for o caso
GNU / LINUX
Controle e execução de processos
➢KillAll :: Finaliza processos pelo nome
➢killall [opções] [sinal] [processo] onde:
Processo :: nome do processo a ser finalizado
sinal :: sinal que será enviado ao processo (pode ser obtido pela opção -l
Opções:
●-i :: pede confirmação sobre a finalização
●-l :: lista o nome de todos os sinais conhecidos
●-q :: Ignora a existência do processo
●-v :: retorna se o sinal foi enviado com sucesso
●-w :: finaliza a execução do killall
➢KillAll5 :: envia um sinal para todos os processos
Exercício
1- Abra o Firefox pela interface gráfica
2 – Acesse o Terminal e identifique os processos que estão sendo executados
3 – Finalize o processo que está executnado o Firefox pelo nome ou pelo PID.
GNU / LINUX
Permissões de acesso [u g o a] [+ - =]
u = usuário proprietário
g = grupo proprietário
o = outros
a = todos (all)
[r w x ]
r = leitura
w = escrita
x = execução
GNU / LINUX
1 – Verifique as permissões que o diretório /home/Documentos possui.
a) Qual é o tipo deste arquivo?
b) Quem é o dono do arquivo?
c) Quais são as permissões que ele possui?
GNU / LINUX
GNU / LINUX
Outros comandos
➢chmod [UGOA +rwx] :: utilizado para a manipulação de arquivos / alterar permissões de acesso
➢+ ou – r :: utilizado para permitir ou barrar a permissão de leitura de um determinado arquivo
➢+ ou – w :: utilizado para permitir ou barrar a permissão de escrita de um determinado arquivo
➢+ ou – x :: utilizado para permitir ou barrar a permissão de execução de um determinado arquivo
Exemplos
1. Acesse seu diretório /home
2 . Verifique as permissões de acesso do diretório “Modelos”
3. Retire a permissão de leitura, escrita e execução para todos usuários do diretório
4. Tente acessar o arquivo
5. O que aconteceu???
6 – Crie um diretório chamado “faculdade” em sua pasta home. Retire as permissões de leitura e escrita para o dono e grupo do diretório.
7 – Tente acessar o diretório. O que aconteceu?
8 – Altere novamente o diretório com as permissões de leitura e escrita para o dono e grupo do diretório.
GNU / LINUX
Adicionando um novo grupo
groupadd sala :: no arquivo /etc/group será adicionado uma entrada alunos e será dado um GID(identificador de grupo) a este grupo.
Verificando:
cat /etc/group
grep sala /etc/group
Para ver o ID do grupo: tail -4 /etc/group
Eliminando grupos
• #groupdel sala
GNU / LINUX
Adicionar um usuário a um grupo
# gpasswd –a usuário grupo
gpasswd –a harley alunos
Adicionar um usuário a um grupo
# gpasswd –d harley alunos
Verifique a adição e remoção no /etc/group
GNU / LINUX
GNU / LINUX
Outros comandos
Trocar de usuário: su + nome_do_usuário
Pratique !!! ::
Mude para o usuário root. Verifique seu diretório home
Mude para o usuário atual. Verifique seu diretório home
➢Obs: Em algumas distribuições do linux nós temos o comando users-admin que apresenta uma IDE agradável para o gerenciamento dos usuários.
GNU / LINUX
Como o linux trabalha com as senhas?
No início :: todas as senhas ficavam em um arquivo /etc/passwd
Problema :: qualquer usuário pode ler o arquivo e descobrir todas as senhas do sistema. Este furo foi utilizado por vários hackers para acessar servidores
Utiliza criptografia DES de 64bits - Fraco
Atualmente :: Há um arquivo chamado shadow, o qual só pode ser lido pelo root.
Também usa DES mas só o root tem acesso
Pratique !!! :: grep harley /etc/shadow
GNU / LINUX
Outros comandos
➢chown :: utilizado para mudar o dono de um determinado arquivo / pasta
➢Ex. : chown user arquivo / pasta
➢chgrp :: utilizado para mudar somente o grupo que gerencia um arquivo / pasta
➢chgrp grupo arquivo / pasta
➢Crie uma pasta chamada “grupo”. Altere o dono da pasta para o usuário ‘teste’ e o grupo da pasta para o grupo “alunos”.
➢Verifique as alterações
1. Crie um diretório chamado ‘unifor’.
2. Crie um usuário chamado ‘maria’.
3. Altere o dono do diretório ‘unifor’ que você criou para o usuário ‘maria’ e para o grupo ‘maria’.
4. Tente criar uma arquivo vazio teste.txt dentro do diretório unifor. O que aconteceu.
5. Remova a permissão de leitura e excução do diretório ‘unifor’ para o usuário outros. Verifique as permissões.
chmod o-rx unifor
6. Agora tente acessar o diretório ‘unifor’.
7. O que aconteceu? Porque?
8. Mude para o usuário ‘maria’. Agora tente acessar novamente o diretório ‘unifor’ que está em /home/harley. O que aconteceu? Porque? Tente criar o arquivo vazio.
9. Agora volte para o usuário padrão.
GNU / LINUX
Alterar senha de usuários.
Comando passwd
- Senha no mínimo 6 caracteres
- Diferente do nome da conta -
- Diferente da senha velha em pelo menos 3 caracteres
# passwd “senha”
GNU / LINUX
Exercício
1- No diretório /home de seu usuário atual, crie uma pasta com o nome “curso”. Você conseguiu criar a pasta?
2 - Crie um usuário com o nome “redes” e senha “123”
3 – Agora tente criar uma pasta chamada curso2 no diretório /home do usuário “redes” (/home/redes) que você acabou de criar. Você conseguiu criar a pasta “curso2” ?
4 – Agora mude o seu usuário atual para o usuário que você acabou de criar, ou seja, o usuário ”redes”. Com este usuário você conseguiu criar a pasta no /home/redes? Por que?
5 – O usuário root poderia criar uma pasta neste diretório? Porque? Mude para este usuário e crie uma pasta chamada “curso3” no diretório /home/redes.
6 – Volte para o usuário que você estava inicialmente (usuário atual que estava na questão 1 do exercício).
GNU / LINUX
GNU / LINUX
Outros comandos
➢ Who :: este comando é muito utilizado quando se quer saber quais usuários estão conectados a máquina em questão
➢ Sua função é listar todos os usuários locais e remotos que estão com uma conexão ativa no sistema
➢ Whereis :: Localiza onde se encontra o arquivo a ser procurado
➢ Whereis java
➢ #stat :: detalhes sobre um arquivo ou diretório
1- Crie um diretório chamado copo
2 – Crie um grupo chamado acesso
3 – Altere o grupo do diretório ‘copo’ para o grupo ‘acesso’.
chgrp acesso copo
4 – De permissão de escrita no diretório copo somente para o grupo ‘acesso’
chmod uo-rwx copo (retira a permissão ...)
5 – Agora tente acessar o diretório. O que aconteceu. Porque?
6 – Volte as permissões anteriores
GNU / LINUX
Execução de programas através do terminal
#gedit
#pico
#firefox
GNU / LINUX
Manipulando arquivos
• touch :: cria um arquivo vazio
• pico texto.txt
• rm :: remove arquivos [-irv]
Ex:: rm teste.txt (diretório atual)
• rm * .txt (remove todos diretórios que terminam com .txt)
• cp – copia arquivos
Ex: cp teste teste1 (copia arquivo teste para teste1)
cp teste /tmp (copia arquivo teste para dentro de /tmp)
GNU / LINUX
1 - Crie um arquivo vazio chamado computador.txt no diretório /home.
2- Remova a permissão de escrita da pasta Imagens para todos os usuários. chmod a-w Imagens
2 – Tente copiar o arquivo para o diretório Imagens
3 – Adicione a permissão de escrita novamente. Agora tente copiar novamente a pasta para o diretório Imagens.
GNU / LINUX
Manipulando arquivos
O comando mv é usado para mover ou renomear arquivos e diretórios. Use esse comando com cuidado.
As opções mais utilizadas são:
-i :: Modo interativo pede confirmação. -f :: Usa modo forçado, substitui arquivos protegidos.
Ex: #mv arquivo1 arquivo2.txt (renomeando o arquivo)
#mv /home/aula/documentos /tmp (movendo para /tmp)
GNU / LINUX
Editando arquivos texto
Criar e editar um arquivo texto usando o editor Pico.
1. Acesse o diretório /home de seu usuário
2. Digite o comando cd
#pico texto
3. Insira um texto qualquer
4. Salve o texto utilizando o comando Ctrl + O
5. Verifique se o texto está no diretório /home
6. Verifique o conteúdo do texto
#cat texto
7. Mova o texto para o diretório Documentos
8 . Agora, remova o arquivo texto.
GNU / LINUX
Compactação de arquivos
gzip arquivo :: compacta o arquivo
Ex :: gzip teste
gunzip arquivo :: descompacta o arquivo
Ex :: gunzip teste
GNU / LINUX
Exercício
1- Crie um diretório chamado “aula” dentro do diretório /home de seu usuário.
2 - Acesse o diretório criado e utilizando o editor “pico”, crie um arquivo texto com o nome “teste1” com uma frase qualquer e salve este arquivo dentro da pasta aula.
3 – Altere o nome do arquivo “teste1” para “teste2”.
4 – Mova este arquivo para o diretório /tmp
5 – Verifique se o arquivo está no diretório /tmp
6 – Mova novamente o arquivo para o diretório /home/aula de seu usuário.
7 – Agora remova este arquivo exigindo confirmação de remoção.
GNU / LINUX
Links
GNU / LINUX
GNU / LINUX
✔Padrão da programação
➢ARQUIVO .SH :: todo arquivo de shell script apresenta como extensão .sh e é executado com ./ARQUIVO.SH
➢#!/bin/bash :: indica qual shell deve ser utilizado na execução / versão da linguagem
#!/bin/bash = versão 2.x
#!/bin/sh = versão 1.x
➢echo :: utilizado para imprimir informação na tela mostrando informações ao usuário
➢read :: lê informações digitadas no shell.
Exercício
1 - Crie com o pico um script .sh para listar os arquivos do diretório /etc com suas respectivas permissões e com o recurso de parada de tela para leitura.
ls –l /etc | more
2 – Crie com o pico um arquivo chamado meuScript.sh para executar as seguintes instruções: Dar um ls -la no diretório /usr/share e armazenar em um arquivo resultado somente os nomes de arquivos e pastas que tenham no nome X
ls –la /usr/share | grep X
GNU / LINUX
3 - Crie um arquivo com extensão .sh que consiga buscar na raiz / todas as palavras que iniciem com root. Este arquivo deve ser utilizado por todos os usuários do sistema e deve ser chamado de findRoot.
find / -name root
chmod +x
4 - Crie um arquivo com extensão .sh que mostre as linhas que contem a palavra “root” no arquivo /etc/passwd. O arquivo chamará mostraRoot. O arquivo deverá ser acessado por todos os usuários.
(grep root /etc/passwd)
Como utilizar o apt-get
• Consulta um arquivo denominado sources.list disponível no diretório /etc/apt/
• Pelo arquivo /etc/apt/sources.list o APT sabe onde procurar os pacotes solicitados
# apt-get –u update :: atualiza a lista de repositórios
#apt-cache serach termo
Removendo pacotes com o apt-get
# apt-get remove nomedoprograma
# apt-get --purge remove nomedoprograma (remove o programa juntamente com os arquivos de configuração)
GNU / LINUX
Exercício
Instale o Servidor SSH
Instale o aplicativo putty
Instale o aplicativo xchat
#apt-get install ssh
#apt-get install putty
Reiniciar uma aplicação:
/etc/init.d/ssh restart
GNU / LINUX
Partições e pontos de montagem
No linux, os periféricos são sempre montados na pasta mnt ou media
➢mount <partição em dev> <ponto de montagem>
➢umount <ponto de montagem>
➢Como funciona a sigla associada ao HD?
H
D A 1
dev/
Número que indica qual partição do disco
Indica qual disco (A=primeiro, B=segundo...)
Tipo do disco (HD=ide, SD=SCSI)
Diretório dos dispositivos
GNU / LINUX
Diretivas do parâmetro mount
Algumas vezes é preciso efetuar a montagem de um dispositivo passando para o Linux qual tipo de sistema de formatação foi utilizado
➢ mount [dispositivo] [ponto-montagem] [opcão]
1) logue-se como root; 2) crie o ponto de montagem, ex: mkdir /mnt/pen; 3) monte o pen drive (supondo que vc não tenha HD SATA ou SCSI), mount /dev/sdb1 /mnt/pen Pronto seu pen-drive está acessível no diretório /mnt/pen.
Opções disponíveis
-t [tipo] onde tipo se refere ao tipo do sistema de arquivo: ext2, ext3, reiserfs, vfat, msdos, iso9660
-r :: monta a partição somente leitura
-w :: monta a partição para leitura / escrita
➢
➢Exemplo
mount /dev/hda1 /mnt/windows -r -t vfat
GNU / LINUX
GNU / LINUX
Como o linux já monta algumas partições?
➢Há um arquivo chamado fstab que se encontra na pasta etc e é por meio deste que o linux pré configura automaticamente as partições a serem carregadas no boot
➢mount /dev/sdb1 /media/pendrive
GNU / LINUX
Gerenciando uma
REDE
GNU / LINUX
Ferramentas básicas
➢ifconfig :: comando utilizado para verificar informações sobre as placas de rede e interfaces existentes
➢Pode ser utilizado também na configuração de sua placa de rede
➢Sintaxe
➢ifconfig eth0 10.0.2.16 netmask 255.255.255.0
➢Primeiro passamos o ip que nossa máquina irá adotar e depois a mascara de rede que será adotada.
➢Para adicionar o gateway ::
route add default gw 10.0.2.3
Configurar DNS
# /etc/resolv.conf
search linuxbrasil.org.br
nameserver 192.168.0.1
# ou você pode por os servidores DNS 1 e DNS 2 do seu provedor de internet
nameserver 200.204.0.10
nameserver 200.204.0.138
# Reiniciar uma placa de rede # /etc/init.d/networking restart
Configuração IP dinâmico DHCP: # dhclient eth0
GNU / LINUX
Configuração pelo Interfaces – IP estático
#sudo pico /etc/network/interfaces
Exemplo de uma rede com endereço IP Dinâmico (tem um servidor dhcp em funcionamento) auto eth0 iface eth0 inet dhcp auto eth0 ( informa que eth0 arranca na inicialização )
iface eth0 inet dhcp ( considerar que iface eth0 vem da interface eth0, o inet informa que a configuração de rede é IPv4 e dhcp que o IP dinâmico é atribuído por um servidor DHCP )
GNU / LINUX
Definir um endereço IP Estático
sudo pico /etc/network/interfaces
GNU / LINUX
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
gateway 192.168.0.1
GNU / LINUX
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
gateway 192.168.0.1
Configuração IP dinâmico DHCP:
GNU / LINUX
Ferramentas básicas
finger :: mostra detalhes de um usuário do sistema. Algumas distribuições do finger possuem bugs e apresentam uma grande falha de segurança para servidores.
➢Sintaxe
➢finger [usuario]
GNU / LINUX
Ferramentas básicas
dnsdomainname :: mostra o nome do domínio de seu sistema
hostname :: mostra ou muda o nome de seu computador na rede
➢talk :: Inicia uma conversa com outro usuário da rede local ou internet
➢Sintaxe
TALK [USUARIO@HOST]
➢ping :: verifica se um computador está disponível na rede
GNU / LINUX
Ferramentas básicas
➢rlogin :: Executa um login em uma máquina local ou remota
➢Sintaxe :: rlogin [IP/DNS]
➢rsh :: Executa um comando em um computador local ou remoto
➢Sintaxe :: rsh [OPÇÕES] [IP/DNS] [COMANDO]
➢[comando] :: comando que será executado
➢[opções] :: -l[nome] usa o nome para entrar
➢[IP/DNS] :: ip para conexão
GNU / LINUX
Ferramentas básicas
➢w :: mostra quem está conectado ao sistema e o que está fazendo
➢Sintaxe
➢w [opções] [usuário]
➢[usuário] :: nome do usuário que deseja ver
➢[opções]
-h :: não mostra o cabeçalho
-u :: Ignora os nomes de usuário enquanto verifica os processos atuais e tempos de CPU
-f :: mostra ou oculta o campo FROM da listagem
GNU / LINUX
Ferramentas básicas
➢traceroute :: Mostra o caminho percorrido por um pacote até alcançar um determinado destino
➢Este comando mostra o caminho percorrido através dos gateways da rede e o tempo gasto para a transmição.
➢Sintaxe
➢traceroute [opções] [host/IP]
GNU / LINUX
✔Atributos do traceroute
➢[host/ip] :: Endereço para onde o pacote será enviado
➢[opções] :: opções de auxílio
➢-l :: mostra o tempo de vida do pacote (ttl)
➢-m [num] :: Ajusta o ttl do pacote (padrão é 30)
➢-n :: Mostra os ips ao invés dos DNS's
➢-p [porta] :: Ajusta a porta para o teste
➢-r :: Pula as tabelas de roteamento
➢-s [end] :: usa o endereço end como endereço de origem
➢-w [num] :: Configura o tempo de espera
GNU / LINUX
✔Ferramentas básicas
➢netstat :: mostra conexões que estão ativas em uma máquina local
➢Sintaxe
netstat [opções]
➢[OPÇÕES]
-i [interface] :: mostra estatísticas da interface
-M :: mostra conexões masquerade
-n :: mostra ip's ao invés de nomes DNS
GNU / LINUX
✔Ferramentas básicas
➢wall :: Envia uma mensagem a todos os usuários do sistema. Este comando lê um arquivo estipulado e envia seu conteúdo a todos na rede
➢Somente o usuário root pode usar este comando.
➢Sintaxe
➢wall [arquivo]
GNU / LINUX
Ferramentas básicas
➢Telnet :: permite acesso a um computador remoto a partir de uma porta
➢Esse serviço gera furos de segurança e é também muito utilizado em ataques e invasões.
➢Sintaxe
➢telnet [opções] [ip/dns] [porta]
GNU / LINUX
✔Atributos do Telnet
➢[opções] :: há alguns atributos de ajuda
➢-a :: Tenta um login automático, enviando o nome do usuário da variável local USER
➢-d :: Ativa o modo de debug
➢-r :: Ativa a emulação de rlogin
➢-l [usuario] :: faz conexão com [usuario]
➢[ip / dns] :: ip ou dns do computador de destino
➢[porta] :: porta da conexão
GNU / LINUX
✔Antes de prosseguir
➢Na maioria das distribuições
➢Arquivos importantes no linux para rede
➢/ETC/NETWORK/INTERFACES
➢/ETC/RESOLV.CONF
➢/ETC/HOST*
GNU / LINUX
✔Resolvedor de nomes DNS
➢O Domain Name System é responsável por fazer o mapeamento do nome da máquina para o endereço ip e vice versa entre outras funções.
➢Sua criação permitiu aos usuários uma forma de guardar endereços de máquinas de uma forma associativa simplificada
O DNS apresenta o que chamamos de resolvedor de nomes
GNU / LINUX
✔O resolvedor de nomes
➢Controlado por um arquivo ou aplicativo associado a banco de dados mantem uma série de conversões, as quais interessa ao servidor local.
➢O servidor DNS mais difundido na internet atualmente é o bind.
➢Mais detalhes a respeito da história do DNS e suas funções podem ser vistas em DNS-HOWTO na internet.
GNU / LINUX
✔Usando arquivos importantes
➢/etc/resolv.conf :: arquivo principal utilizado pelo resolvedor de nomes
➢Palavras usualmente utilizadas
➢domain :: Especifica o nome do domínio local
➢search :: Especifica nomes alternativos ao procurar por um determinado computador
➢nameserver :: Especifica o endereço IP de um servidor de nomes de domínio
GNU / LINUX
✔Como vejo os logs do sistema?
➢Na maioria das distribuições esses arquivos se encontram em /var/log
➢Exemplos
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=3955&pagina=4
Uma abordagem geral sobre seu funcionamento e formas de aplicação
LINUX