Atividade 01 Introdução ao Linux Linux é um termo utilizado para se referir a sistemas operacionais que utilizem o núcleo Linux. O núcleo ou kernel Linux foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL (versão 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença. Inicialmente desenvolvido e utilizado por grupos de entusiastas em computadores pessoais, os sistemas operacionais com núcleo Linux passaram a ter a colaboração de grandes empresas como IBM, Sun Microsystems, Hewlett-Packard (HP), Red Hat, Novell, Oracle, Google, Mandriva e Canonical.1 Apoiado por pacotes igualmente estáveis e cada vez mais versáteis de softwares livres para escritório (LibreOffice, por exemplo) ou de uso geral (projeto GNU) e por programas para micro e pequenas empresas que na maioria dos casos em nada ficam a dever aos seus concorrentes proprietários, e interfaces gráficas cada vez mais amigáveis como o KDE e o GNOME, o núcleo Linux, conhecido por sua estabilidade e robustez, tem gradualmente caído no domínio popular, encontrando-se cada vez mais presente nos computadores de uso pessoal atuais. Mas já há muito que o Linux se destaca como o núcleo preferido em servidores de grande porte. História Linus Torvalds, criador e principal mantenedor do núcleo Linux. O núcleo Linux foi, originalmente, escrito por Linus Torvalds do Departamento de Ciência da Computação da Universidade de Helsinki, Finlândia, com a ajuda de vários programadores voluntários através da Usenet (uma espécie de sistema de listas de discussão existente desde os primórdios da Internet).
Linus Torvalds começou o desenvolvimento do núcleo como um projeto particular, inspirado pelo seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andrew S. Tanenbaum. Ele limitou-se a criar, nas suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do núcleo Linux, versão 0.02. Desde então muitos programadores têm ajudado a fazer do Linux o sistema operacional que é hoje. No início era utilizado por programadores ou só por quem tinha conhecimentos, e usava linhas de comando. Hoje isso mudou, existem diversas empresas que criam ambientes gráficos, as distribuições são cada vez mais amigáveis de forma que uma pessoa com poucos conhecimentos consegue usar o Linux. Hoje o Linux é um sistema estável e consegue reconhecer muitos periféricos sem necessidade de se instalar os drivers de som, vídeo, modem, rede, entre outros. Estrutura de Diretórios do Linux O diretório raiz (/) Binários executáveis: /bin Binários do sistema: /sbin Programas diversos /usr Configurações do sistema /etc.bibliotecas /lib Opcionais: /opt Aquivos pessoais /home Todos os arquivos e diretórios do sistema Linux instalado no computador partem de uma única origem: o diretório raiz. Mesmo que estejam armazenados em outros dispositivos físicos, é a partir do diretório raiz representado pela barra (/) que você poderá acessá-los. Também vale lembrar que o único usuário do sistema capaz de criar ou mover arquivos do diretório raiz é o root, ou seja, o usuário-administrador. No diretório /bin estão localizados os binários executáveis que podem ser utilizados por qualquer usuário do sistema. São comandos essenciais, usados para trabalhar com arquivos, textos e alguns recursos básicos de rede, como o cp, mv, ping e grep. Se você ainda não conhece esses comandos, não se preocupe: falaremos sobre eles em um artigo futuro, aqui no Canaltech. Assim como o /bin, este diretório armazena executáveis, mas com um diferencial: são aplicativos utilizados por administradores de sistema com o propósito de realizar funções de manutenção e outras tarefas semelhantes. Entre os comandos disponíveis estão o ifconfig, para configurar e controlar interfaces de rede TCP/IP, e o fdisk, que permite particionar discos rígidos, por exemplo. Se você não encontrar um comando no diretório /bin ou /sbin, ele certamente está aqui. O /usr reúne executáveis, bibliotecas e até documentação de softwares usados pelos usuários ou administradores do sistema. Além disso, sempre que você compilar e instalar um programa a partir do código-fonte, ele será instalado nesse diretório. No diretório /etc ficam arquivos de configuração que podem ser usados por todos os softwares, além de scripts especiais para iniciar ou interromper módulos e programas diversos. É no /etc que se encontra, por exemplo, o arquivo resolv.conf, com uma relação de servidores DNS que podem ser acessados pelo sistema, com os parâmetros necessários para isso. Neste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas pelos comandos presentes em /bin e /sbin. Normalmente, os arquivos de bibliotecas começam com os prefixos ld ou lib e possuem "extensão" so. Aplicativos adicionais, que não são essenciais para o sistema, terminam neste diretório. No diretório /home ficam os arquivos pessoais, como documentos e fotografias, sempre dentro de pastas que levam o nome de cada usuário. Vale notar que o diretório pessoal do administrador não fica no mesmo local, e sim em /root.
Inicialização: /boot Volumes e mídias: /mnt e /media Serviços /srv Arquivos de dispositivos: /dev Arquivos variáveis /var Processos do sistema /proc Arquivos temporários: /tmp Arquivos relacionados à inicialização do sistema, ou seja, o processo de boot do Linux, quando o computador é ligado, ficam em /boot. Para acessar os arquivos de um CD, pendrive ou disco rígido presente em outra máquina da rede, é necessário "montar" esse conteúdo no sistema de arquivos local, isso é, torná-lo acessível como se fosse apenas mais um diretório no sistema. Em /media ficam montadas todas as mídias removíveis, como dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado aos administradores que precisam montar temporariamente um sistema de arquivos externo. Dados de servidores e serviços em execução no computador ficam armazenados dentro desse diretório. No Linux, tudo é apresentado na forma de arquivos. Ao plugar um pendrive no computador, por exemplo, um arquivo será criado dentro do diretório /dev e ele servirá como interface para acessar ou gerenciar o drive USB. Nesse diretório, você encontra caminhos semelhantes para acessar terminais e qualquer dispositivo conectado ao computador, como o mouse e até modems. Todo arquivo que aumenta de tamanho ao longo do tempo está no diretório de arquivos variáveis. Um bom exemplo são os logs do sistema, ou seja, registros em forma de texto de atividades realizadas no Linux, como os logins feitos ao longo dos meses. Lembra da história de que tudo funciona como um arquivo no Linux? Pois o /proc é a prova disso. Nesse diretório são encontrados arquivos que revelam informações sobre os recursos e processos em execução no sistema. Quer um exemplo? Para saber há quanto tempo o Linux está sendo usado desde a última vez em que foi iniciado, basta ler o arquivo /proc/uptime. Arquivos e diretórios criados temporariamente tanto pelo sistema quanto pelos usuários devem ficar nesse diretório. Boa parte deles é apagada sempre que o computador é reiniciado. Comandos Gerais via terminal do linux Teoria man Formata e exibe uma página man (man page) O comando man é usado para mostrar o manual de outros comandos. date df Tente "man man" para ver a página do manual do próprio man. Exibe e edita a data e a hora atuais do sistema. Mostra o espaço em disco do sistema de arquivos usado por todas as partições. "df -h" é provavelmente o mais útil - usa megabytes (M) e gigabytes (G) em vez de blocos para relatar o tamanhos. (-h significa "human-readable"). du Exibe o tamanho de arquivos e/ou diretórios. Se nenhum arquivo ou diretório for passado como argumento, será assumido o diretório atual. free O uso da opção du -h tornará a apresentação mais simples de ser interpretada. Este comando exibe a quantidade de memória livre e usada no sistema. "free -m" fornece a informação usando megabytes, que é provavelmente mais útil para
arch clear logout vi echo Login computadores atuais. Exibe a arquitetura do computador. Limpa os dados contidos no terminal Finaliza um login no console ou terminal. O mesmo resultado pode ser alcançado executando o comando exit. Editor Vi nome_do_arquivo cria ou abre o arquivo nome_do_arquivo :w => salvar da memória (buffer) para o disco (arquivo) :q => sair do editor :wq => salvar e sair do editor Permite exibir textos na tela ou em um arquivo. echo 'Olá mundo!' envia para saída de tela a expressão Olá mundo!. echo Frederico Pandolfo > texto_original.txt Permite a um usuário efetuar o logon (estabelecer uma conexão) no sistema, bem como ser utilizado para efetuar o logon com um usuário diferente do atual. login fulano para efetuar o login do usuário fulano. su Permite alternar entre os usuários cadastrados do sistema. su fulano permite alternar para o usuário fulano após senha de login correta. su - permite alternar para o usuário root após senha de login correta. reboot Reinicializa o sistema. sudo reboot para reiniciar imediatamente o sistema. shutdown cat sudo shutdown -h now para encerra o sistema imediatamente. sudo shutdown -h +15 para encerrar o sistema daqui a 15 minutos. O comando cat do sistema operacional Unix é usado para unir, criar e exibir arquivos.. Exibir arquivo cat arquivo Concatenar um arquivo no fim do outro, usa-se: cat arquivo2 >> arquivo1 Criar um arquivo cat > arquivo.txt Esse comando irá criar um arquivo com o nome "arquivo.txt" e será criado no diretório corrente.
Prática 01) Execute o comando man man - Saia: <esc> + < q > + < : > 02) Execute o comando date - Qual foi o resultado apresentado? 03)Execute o comando df -h 04)Execute o comando du -h 05)Execute o comando free 06)Execute o comando arch - Qual a arquitetura do sistema? 07)Execute o comando clear 08)Execute o comando logout 09)Execute o comando login ciber 10)Execute o comando echo cibernetica > texto_original.txt -Abra o arquivo texto_original.txt com o gedit e confira o resultado 11)Execute o comando su -Entre com a senha de root - 12)Execute o comando logout 13)Execute o comando login ciber 14)Execute o comando cat texto_original.txt - Saia: <esc> + < q > + < : > 15)Execute o comando reboot 16)Execute o comando reboot Arquivos e Diretórios pwd cd O comando pwd lhe permite saber em qual diretório você está no momento Este comando nos permite se deslocar entre a árvore de diretórios do sistema. Quando abrimos um terminal, você entra direto no seu diretório pessoal. Para mover-se pelo sistema de arquivos você deve usar o cd. "cd /" para ir ao diretório raiz. "cd" para ir ao seu diretório pessoal. "cd.." para acessar um diretório de nível acima do atual. cd - para voltar ao diretório que se encontrava antes de mudar. Para navegar através múltiplos níveis de diretórios em só comando, use por exemplo, "cd /var/www", que o levará diretamente ao sub-diretório /www do diretório /var. cp Copia arquivos e diretórios. "cp file foo" para fazer uma cópia exata do arquivo "file" dando-lhe o nome de "foo".
mv ls rm Este comando move arquivos e diretórios, sendo muito usado também para renomear um determinado arquivo. mv arquivo1 arquivo2 para renomear o arquivo arquivo1 localizado no diretório pessoal do usuário para arquivo2 no mesmo local. "mv foo ~/Desktop" moverá o arquivo "foo" para seu diretório Desktop sem alterar seu nome. Você deve especificar um novo nome se quiser renomear um arquivo. Comando utilizado para listar o conteúdo de um diretório. Usado com certas opções, é possível ver o tamanho dos arquivos, quando foram criados, e as permissões de cada um. Utilize este comando para remover (deletar) arquivos e opcionalmente diretórios. Por padrão o comando rm exibe um prompt onde o usuário deve confirmar a exclusão de cada arquivo, digitando a letra y seguido de Enter. rm arquivo1 para remover o arquivo chamado arquivo1 do diretório corrente após confirmação no prompt. rm -f arquivo1 para remover o arquivo chamado arquivo1 do diretório corrente sem que lhe seja exibido o prompt de confirmação. mkdir chmod rm -R ~/temp/ para remover de forma recursiva o diretório /temp localizado em sua pasta pessoal e todo seu conteúdo, seja ele arquivos e outras arvores de sub-diretórios. Comando cuja finalidade é permitir a criação de um ou mais diretórios. "mkdir musicas" para criar um diretório chamado musicas dentro do diretório corrente. Altera as permissões de acesso de arquivos e diretórios chmod 744 file para alterar as permissões do arquivo file de modo ao Dono ter total permissão (leitura, execução e escrita) enquanto que os usuários pertencentes ao Grupo e os Outros terão permissão apenas de leitura. Prática 01) Execute o comando pwd 02) Execute o comando cd / e em seguida o comando pwd 03) Execute o comando cd e em seguida o comando pwd 04) Execute o comando cd.. / e em seguida o comando pwd 05) Execute o comando cd /var/ e em seguida o comando pwd 06) Execute o comando cd e em seguida o comando pwd 07) Execute o comando cp texto_original.txt texto2_original.txt - Verifique o conteúdo do arquivo texto_original2.txt - Você obteve o resultado esperado? 08) Execute o comando ls - Verifique no diretório existem os arquivos texto_original.txt e texto_original2.txt
- Você obteve o resultado esperado? 09) Execute o comando ls 10) Execute o comando mv texto_original2.txt texto3_original.txt -Execute o comando ls e verifique se o arquivo texto_origina2.txt foi renomeado para texto_origina3.txt - Você obteve o resultado esperado? 11) Execute o comando ls 12) Execute o comando rm texto_original.txt -Execute o comando ls e verifique se o arquivo texto_origina.txt foi removido - Você obteve o resultado esperado? 13) Execute o comando mkdir diretorioteste -Execute o comando ls e verifique se o diretorio diretorioteste foi criado - Você obteve o resultado esperado? 14) Execute o comando rm -R diretorioteste -Execute o comando ls e verifique se o diretorio diretorioteste foi removido 15) Execute o comando ls -la e veja as permissões do arquivo texto_origina3.txt -Execute o comando chmod 744 texto_original3.txt -Execute o comando ls -la e veja as novas permissões do arquivo texto_origina3.txt Usuários useradd userdel finger passwd Cria um novo usuário ou atualiza as informações padrão de um usuário no sistema Linux. O comando useradd cria uma entrada para o usuário no arquivo /etc/passwd com informações do seu login, UID (user identification), GID (group identification), shell e diretório pessoal, e a senha criptografada deste usuário é armazenada no arquivo /etc/shadow. sudo useradd fulano para criar o novo usuário fulano no sistema, cujo diretório pessoal do mesmo será /home/fulano. Usado para remover uma conta de usuário do sistema, deletando todas entradas deste usuário nos arquivos /etc/passwd, /etc/shadow e /etc/group. userdel -r fulano para remover o usuário fulano do sistema deletando seu diretório pessoal e todo seu conteúdo. Exibe informações dos usuários do sistema. Se um usuário não for passado ao comando o mesmo apresentará informações de todos usuários atualmente logados. finger fulano para exibir informações, como login, diretório pessoal, shell entre outras do usuário fulano. Altera a senha de um usuário exibindo um prompt para que a nova senha seja fornecida, e logo depois repetida para confirmação. O usuário logado pode alterar a própria senha digitando apenas passwd passwd fulano para alterar a senha do usuário fulano.
sudo passwd -l fulano para bloquear a conta do usuário fulano. sudo passwd -u fulano para desbloquear a conta do usuário fulano. 01) Execute o comando useradd usuarioteste 02) Execute o comando passwd usuarioteste e coloque a senha como 123456 03) Execute o comando finger usuarioteste 04) Execute o comando userdel usuarioteste 03) Execute o comando finger usuarioteste Monitoramento de Acesso who Mostra quais usuários estão logados no sistema. last Mostra todas informações referente as entradas (login) e saídas (logout) de usuários do sistema. last -a para exibir estas informações mostrando o nome da maquina de onde foi efetuado os logins. last -d para exibir estas informações mostrando o endereço IP da maquina de onde foi efetuado os logins. last reboot para exibir um registro de todas as reinicializações efetuadas no sistema. 01) Execute o comando who 04) Execute o comando userdel usuarioteste 03) Execute o comando finger usuarioteste Atividade 02 Arquitetura de Redes ifconfig arp ping Permite configurar as interfaces de rede, sendo o comando utilizado na inicialização do sistema para configuração destas interfaces. Caso nenhum argumento seja passado junto ao comando, o mesmo apenas irá exibir o estado das interfaces atualmente definidas. sudo ifconfig eth0 para exibir o estado e informações da interface de rede eth0. Manipula o cache ARP (Address Resolution Protocol) do kernel. sudo arp 192.168.3.1 para exibir as entradas para o host 192.168.3.1. Se um host não for especificado, será exibido todas as entradas do cache. Esta ferramenta é muito útil quando se faz necessário descobrir o endereço MAC de um determinado host da rede. Envia requisições ICMP para um determinado host. É uma ferramenta largamente utilizada para testar a conectividade entre uma maquina/rede local e maquinas/redes remotas. ping -c 5 200.106.28.125 para verificar se a maquina cujo endereço IP é 200.106.28.125 se encontra conectada e alcançável.
É importante ressaltar que muitos servidores, principalmente de redes empresariais, podem bloquear requisições de pacotes ICMP em seu firewall, podendo assim parecer que determinada rede não se encontra alcançável. Prática 1) Quais os principais tipos de rede? - 2) Explique a topologia em estrela - 3) Que é o protocolo CMSA/CD e em que tipo de arquitetura o mesmo funciona? - 4) Que faz o protocolo arp? - 5) Execute o comando ifconfig - Qual o endereço IP da sua interface de rede (placa de rede)? - Qual o endereço MAC de sua interface de rede? 5) Execute o comando arp - Que resultado você obteve: 6) Execute o comando ping para o IP da estação do cadete localizado na sua direita ou, caso não seja possível, para o IP da estação do cadete localizado à sua frente ou à retaguarda (após execução sair com através das teclas <ctrl> <d> ) - A estação do cadete estava conectada à rede? 7) Execute o comando arp novamente - Qual diferença deste resultado para o resultado anterior?