Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Sistema de Arquivos Linux: Estrutura, Montagem, SSHD e Compartilhamento, Notas de estudo de Redes de Computadores

Neste documento, aprenda a trabalhar com o sistema de arquivos do linux, incluindo a estrutura de diretórios, montagem, configuração do sshd e compartilhamento de arquivos usando nfs. Ensaie com exemplos práticos e conheça as características do sistema de arquivos ext2.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 19/10/2009

gilmar-gomes-7
gilmar-gomes-7 🇧🇷

1 documento

1 / 55

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
APOSTILA TREINAMENTO AVANÇADO EM LINUX
V1.5
Instrutor: Rodrigo Rubira Branco
Empresa: Firewalls Security
Corporation Site : www.firewalls.com.br
<http://www.firewalls.com.br/>
Contatos: cursos@firewalls.com.br
Data : 15/01/2002
Duração : 40 horas
Conteúdo do Curso:
-ChangeLog v1.5
-Introdução
-Objetivos
-Listas de Discussões de Bauru
-Recapitulando o módulo Básico
oHistória do Linux (não será revisado)
oInstalação do Conectiva, do Slackware, via Rede (não será revisado)
oComandos Básicos do Sistema
§Man
§Projeto LDP, help, info (não será revisado)
§Logout
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37

Pré-visualização parcial do texto

Baixe Sistema de Arquivos Linux: Estrutura, Montagem, SSHD e Compartilhamento e outras Notas de estudo em PDF para Redes de Computadores, somente na Docsity!

APOSTILA TREINAMENTO AVANÇADO EM LINUX

V1.

Instrutor: Rodrigo Rubira Branco

Empresa: Firewalls Security

Corporation Site : www.firewalls.com.br

http://www.firewalls.com.br/

Contatos: cursos@firewalls.com.br

Data : 15/01/

Duração : 40 horas

Conteúdo do Curso:

-ChangeLog v1. -Introdução -Objetivos -Listas de Discussões de Bauru -Recapitulando o módulo Básico oHistória do Linux (não será revisado) oInstalação do Conectiva, do Slackware, via Rede (não será revisado) oComandos Básicos do Sistema §Man §Projeto LDP, help, info (não será revisado) §Logout

§Shutdown -r now § Su §Ls (-la) §Cd (deslocamento relativo x absoluto) §Cp §Mv §Alias §Clear §Mkdir (-p) §Rmdir (-p) §Rm (-rf) §Who (w, who is god, whoami) §Df §Free §Cat /proc/cpuinfo §Setterm §Tput §Uptime §Arquivos da Inicialização §Variáveis §Variável PS §Arquivo /etc/motd §Arquivo /etc/issue e /etc/issue.net §Ps (aux) §Kill §Killall §Sinais (1, 9, 15) §Touch §Find §Locate §Top §Vi (:w :x :q :q! /) §Background (&) §Jobs §Fg §Ln (-s) §Chmod (ugo +rwx) §Umask §Chown (user:group) §Chgrp §Caracteres Especiais (~,[],*,?) §Home do Usuário §Adicionando um Grupo §Adicionando um Usuário §Senhas SHADOW §Arquivo /etc/passwd §Arquivo /etc/group §Porque saber editar manualmente usuários e grupos?

oPersonalizando o kernel -Ferramentas Básicas de Rede oIfconfig oRoute oNetstat oPing oTraceroute oNslookup oEditando os arquivos de configuração manualmente -Compactadores e Empacotadores de Arquivos oGzip oZip oBzip oCompress oTar -Agendamento de Tarefas oCron oAt -Entendendo o Super Daemon Inetd o/etc/inetd.conf o/etc/hosts.allow o/etc/hosts.deny -Configurando o boot da máquina: /etc/lilo.conf -Instalação e compilação de aplicativos oO gcc oO comando ./configure oMódulos do perl oO comando make oO comando make install oQuando ocorrem os problemas...

oGerenciamento de pacotes RPM §Instalando §Removendo §Atualizando §Pesquisando §Erros Comuns -Configurando o NFS oEscolhendo os diretórios a compartilhar oAtualizando tabela de arquivos compartilhados oPortmap oAcionando o Portmap oAcionando o NFS oVerificando arquivos compartilhados pela máquina oVerificando clientes que estão acessando os arquivos compartilhados -SAMBA

oEntendendo o Funcionamento do NetBIOS oEntendendo o Funcionamento do Samba oConfigurando um servidor SAMBA oCompartilhando Diretórios através do SAMBA oAcessando arquivos compartilhados através do Linux oFazendo uma máquina Windows se autenticar no Linux -Configurando o SSHD oRetirando a compatibilidade com a Versão 1 oRetirando o uso da diretiva UseLogin oAumentando a chave criptográfica oPermitindo ao root se logar remotamente -Configurando o ProFTPd oHabilitando usuário anonymous oMudando informações do servidor oDiretivas de configuração -Configurando o BIND oEntendendo o DNS oConfigurando uma Zona de Exemplo oConfigurando uma Zona Reversa de Exemplo oOs arquivos de Zonas -Configurando o Apache oSobre oPorque utiliza-lo oExemplo de configuração -Configurando o PostFix oEntendendo o servidor de Emails oPorque utilizar postfix oDiretivas de configuração -Segurança oQuesitos para um sistema seguro oOnde se atualizar oMontando um firewall linux §Entendendo o iptables §Regras de entrada, saída e passagem de pacotes §Tabelas do iptables §Proibindo protocolos §Proibindo portas e tipos de mensagens §Proibindo flags TCP §Proibindo estados de pacotes §Limitando as conexões

ChangeLog v1.

As mudanças da versão 1.0 para a versão 1.5 são: -Corrigido erro pequeno na parte de While -Incluído o comando tput -Incluído o comando setterm

Os objetivos deste treinamento não são os de tornar seus adeptos especialistas

avançados no sistema operacional, e sim usuários e administradores avançados. Isto quer dizer que eles dominaram algumas características do sistema, mas devem estudar e se aprofundar muito para se tornarem especialistas e profissionais no mesmo. Espero converter os usuários que leiam e façam o treinamento e mostrar-lhes quão fácil é entrar no mundo LINUX. Percebam que a apostila é técnica, não sendo altamente instrutiva isoladamente, por isso, façam os exemplos desta e vejam os manuais para maiores entendimentos. Ela é apenas um complemento do treinamento completo, mas pode facilmente se tornar um curso através de um documento para as pessoas mais esforçadas e interessadas. NÃO ficarei preso a uma única distribuição, mas gostaria de lembrar que pessoalmente eu utilizo o FwSec Linux, um Slackware Linux modificado e com a segurança reimplementada pela minha empresa (Firewalls Security), portanto, todos os exemplos mostrados serão em Conectiva Linux (no qual sou certificado) e Slackware Linux. Também NÃO mencionarei o uso de Configuradores Gráficos (tais como LinuxConf e WebMin). Os exemplos aqui apresentados são EXEMPLOS, embora as configurações funcionem podem não ser as ideais para um servidor e devem ser revistas e acrescentadas. Esta apostila PODE e DEVE ser distribuída livremente, desde que não seja alterada. Esta pode ser encontrada online em http://www.firewalls.com.br/cursos/linux.

Listas de Discussões de Bauru

Estou tentando formular algumas listas para discussão sobre o sistema operacional

Linux em Bauru. Atualmente, existem as seguintes listas criadas: senac cti tcpdump seguranca linux Para se cadastrar acesse: www.firewalls.com.br/mailman/listinfo/nomeDaLista <http:// www.firewalls.com.br/mailman/listinfo/nomeDaLista> Coloque seu email e uma senha e você receberá uma mensagem com instruções. O objetivo destas listas é ter discussões de qualidade, portanto serão monitoradas e assuntos infundados serão proibidos.

Recapitulando o módulo Básico

  • Man

Comando que nos mostra o manual de um outro comando. Uso: man [seção] comando Observe que seção é opcional, mas pode ser: 1à Comandos do usuário 2à Chamadas ao sistema 3à Biblioteca de funções 4à Dispositivos 5à Formatos de arquivos 6à Jogos 7à Informações Gerais 8à Administração do sistema

Exemplo de uso: man 1 ls Utilize /palavra para procurar e q para sair.

- Logout Fecha a shell do usuário. Este comando é utilizado quando se termina sua sessão ou para se trocar de usuário.

  • Shutdown -r now Comando utilizado para reiniciar a máquina. Possui alguns similares: Reboot Init 6 Ctrl + Alt + Del Existe também o shutdown -h now que desliga a máquina. Seus similares: Halt Init 0
  • Su Utilizado para se trocar de usuário sem efetuar logout. Muito comum em acessos via rede, já que via rede por default o root não pode se logar. Usa-se também su -c "comando a executar" para se executar um comando com poderes de root e depois retornar. Obviamente será pedida uma senha. Uso do su: su nomeDoUsuarioAseVirar
  • Ls Comando que serve para listar arquivos. Suas opções mais utilizadas são -la, onde o -l significa para listar as permissões (inclusive) e o -a para listar todos os arquivos (lembrando que para o linux arquivos começados com. são ocultos). OBS: O Conectiva Linux possui um alias chamado l para o comando ls -la, use-o e caso a sua distribuição não contenha tal alias, crie-o. Veja mais adiante como fazê- lo.

- Rm (-rf) Comando utilizado para apagar arquivos. Observe que o rm simplesmente não apaga diretórios. Sua opção -r indica para apagar recursivamente, ou seja, ir apagando todos os arquivos em subdiretórios e inclusive os próprios diretórios. A opção -f força apagar, e não emite mensagens de erro caso não exista um arquivo. Ex: rm -rf arquivoQueNaoExiste Não acontecerá NADA. Nenhuma mensagem de erro será informada. - Who (w, who is god, whoami) O commando who e w listam os usuários que estão logados na máquina. O w tem uma saída um pouco mais complexa, mostrando mais informações. O comando who is god é uma sátira e retorna o nome de seu usuário. O comando whoami (pode ser escrito who am i) também retorna o nome de seu usuário e é utilizado para saber com qual usuário você está logado, muito usado quando se utiliza o su e acaba se confundindo quem é você. - Df Mostra informações de sistemas de arquivos montados (mesmo CDRom e Disquete). - Free Mostra informações de memória (swap inclusive). - Cat /proc/cpuinfo Informações muito completas de seu processador. - Setterm Este comando serve para modificar configurações do terminal do Linux, tais como cor de fundo e cor da letra. Ex: setterm -background green --> Fundo Verde setterm -foreground yellow --> Letra "amarela". O amarela está entre aspas devido ao fato de que a cor não parece ser amarelo não. OBS: Este comando mudará a cor a partir do momento em que ele for dado, ou seja, você precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.

  • Tput

Utilizaremos este comando para posicionar o cursor na tela, onde quisermos. Ele será muito útil quando estivermos construindo shell scripts. Ex: tput cup 5 10 à Posiciona o cursor na linha 5 coluna 10.

- Uptime Mostra a quanto tempo o sistema está ligado. Os maiores uptimes da internet são com máquinas UNIX. - Arquivos da Inicialização Alguns arquivos são executados quando o sistema reinicializa. O que nos

será conveniente falar por agora será o arquivo /etc/rc.d/rc.local (todas as distribuições devem tê-lo implementado). Este arquivo será o último a ser executado quando da inicialização do sistema. Diversos arquivos são executados no processo de entrada de um usuário no sistema. São eles: .bashrc .profile .bash_login Os 3 se localizam no HOME do usuário E: /etc/bashrc /etc/profile Observe que enquanto os 3 primeiros são exclusivos dos usuários (cada usuário pode ter suas configurações), os últimos 2 são globais a todos os usuários que entrarem no sistema. Não recomenda-se alterar o arquivo /etc/profile já que este é de configurações e variáveis.

- Variáveis Variáveis nada mais são do que espaços na memória que armazenam

valores. O linux possui variáveis do próprio sistema, que armazenam valores de configurações ou informações da máquina. Para vê-las utilize o comando set. Para darmos um valor a uma variável e torna-la global ao sistema, fazemos export variável=valor. Para retirarmos uma variável fazemos unset variável.

- Variável PS Esta variável guarda os valores para o PROMPT do Linux. Observe que

estes valores podem ser variáveis interpretadas pela SHELL, e por default o são, ou seja, se você utilizar uma shell que não a shell BASH, eles podem ficar sem sentido. A variável PS1 é uma variável normal do sistema, qualquer valor que for dado a ela irá ficar no prompt.

1-) SigHUP à Manda a aplicação reiniciar 9-) SigKILL à Manda o kernel tirar a aplicação da lista de processos ativos (mata mesmo!) 15-) SigTERM à Manda um sinal para que a aplicação termine normalmente Os sinais são utilizados para comunicações INTER-PROCESSOS, ou seja, quando um processo deseja indicar algo para outro processo. Neste caso, o processo kill (killall é a mesma coisa), envia o sinal que pedirmos para a aplicação. Existem outros sinais (como SigINT) que são utilizados pelo sistema. Para visualizá-los utilize o comando kill -l.

- Touch Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma coisa. Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar ... Pode-se criar diversos arquivos de uma única vez. - Find Busca arquivos. Muito avançado. Uso: find DirAProcurar opções Exemplos de uso: find / -name Rodrigo.tar à Procura a partir da raiz (no sistema todo) o arquivo chamado Rodrigo.tar find /home -exec grep "teste" {} ; -exec ls -la {} : à Procura a partir do diretório /home arquivos com o conteúdo teste (grep teste) e lista este arquivo (ls -la). find /usr -type l -ok rm -rf {} ; à Procura no diretório /usr links (- type l) e caso encontre, confirma se deve ou não apagar (-ok rm -rf). Consulte o manual para informações mais interessantes. - Locate Busca arquivos, mas utiliza uma base de dados como padrão, o que o torna muito rápido. Cuidado!! Atualize sempre sua base de dados, ou irão aparecer arquivos que já foram removidos em suas buscas. Outro problema do locate é o fato de que ele busca qualquer ocorrência da palavra a buscar, ou seja, se você fizer locate a, ele irá listar TUDO no sistema que contém a palavra a. Para atualizar sua base de dados utilize: updatedb Para buscar utilize: locate oqbuscar - Top Método interessante de se vizualizar os processos ativos na máquina.

Use: M --> Ordenar por consumo de memória P --> Ordenar por consumo de CPU

- Vi (:w :x :q :q! /) Ótimo editor de textos que recomenda-se e muito saber. As opções vistas

foram: ØModo Comando, Fim de Linha e de Edição Ø:w à Salva arquivo Ø:x à Salva e sai Ø:q à Sai quando você não alterou nada Ø:q! à Sai sem salvar Ø/palavra à Procura palavra Øn à Procura pela próxima ocorrência de palavra

- Background (&) O linux possui uma opção interessante que é a de mandar processos para o segundo plano, liberando assim o ambiente do usuário. Pode-se fazer isso através do sinal & após qualquer comando. - Jobs Lista os processos que estão em segundo plano, retornando o número do processo de segundo plano, que deverá ser utilizado para traze-lo de volta. - Fg Comando que trás de volta um processo do segundo plano. Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs - ln (-s) Este comando cria um link (atalho) entre diretórios e arquivos. Um link simbólico (opção -s) nada mais é do que um arquivo no HD que aponta para a área onde está o arquivo original. Se o original é apagado, o link fica "quebrado". Já um link direto (apenas ln) dá um outro nome para a mesma área do HD. Como um backup contra remoção indevida, no entanto usa-se o mesmo espaço do HD, referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto não pode ser feito entre diretórios. Uso: ln -s Original Link ln Original Link - Chmod (ugo +rwx) Comando que muda as permissões de um arquivo. Estas podem ser vistas através do comando ls -l. A esquerda dos arquivos aparecerá uma cadeia de caracteres de difícil compreensão inicial, mas prestem atenção: PrimeiroCaractere à Indica o tipo de arquivo, pode ser:

  • à Arquivo normal (executável ou texto)

- Chgrp Utilizado para mudar apenas o grupo dono de um arquivo. Uso: chgrp novogrupo ArquivoOuDiretório - Caracteres Especiais (~,[],,?)* São também conhecidos como METACARACTERES. Os mais comuns e utilizados são: * à Simboliza TUDO ? à Simboliza QUALQUER CARACTERE ~ à Simboliza o HOME do usuário Corrente [AB]* à Qualquer arquivo (*) começado com A ou com B. - Home do usuário Diretório que pertence ao usuário, onde ele pode tudo. O comando cd isolado leva o usuário até este diretório. Ao logar no sistema, o usuário cai também em seu home. - Adicionando um Grupo Um grupo nada mais é do que a união de diversos usuários com as mesmas

características. Por exemplo, poderíamos ter um grupo estudantes ou alunos. Para adicionarmos este grupo, devemos utilizar o comando: groupadd alunos No arquivo /etc/group será adicionada uma entrada alunos, e será dado um GID (identificador de grupo) a este grupo.

- Adicionando um Usuário Qualquer pessoa que for utilizar o linux deve necessariamente possuir um usuário válido na máquina. Lembrando que NÃO devemos utilizar o root a menos que necessário, esta tarefa é importantíssima mesmo para usuários caseiros. Adicionando: useradd rodrigo -g alunos Adicionamos o usuário rodrigo no grupo alunos. Observe que a opção -g nomegrupo não se faz necessária, e caso seja omitida, teremos comportamentos diferentes em algumas distribuições: RedHat e familiares (incluindo Conectiva): Será criado um grupo com o mesmo nome do usuário e este será adicionado neste grupo Slackware: O usuário será adicionado em um grupo chamado users Isto ocorre devido a não padronização deste ato e ao fato de um usuário NECESSARIAMENTE pertencer a algum grupo - Senhas SHADOW O esquema de senhas chamado SHADOW foi criado devido ao fato de o

Linux (e os Unix-Like da vida) utilizarem em suas senhas um método de criptografia

chamado DES (Data Encryption Standard). Este método é fraco (utiliza chaves de apenas 64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhor sobre este assunto). Como o arquivo /etc/passwd necessita ter permissão de leitura para todos, qualquer usuário facilmente conseguiria obter a senha de ROOT do sistema. Com isso criaram o SHADOW, onde as senhas criptografadas com o DES ficam no arquivo /etc/shadow que só pode ser visto pelo root. Sobra então no arquivo /etc/passwd apenas um * ou! no lugar da senha criptografada do usuário. Todas as distribuições linux trazem o SHADOW por padrão.

- Arquivo /etc/passwd Este arquivo contém os usuários cadastrados na máquina e informações sobre eles. Sua sintaxe é: login:UID:GID:Descrição:Home:Shell Onde: ·login à Nome do usuário na máquina ·UID à Identificador do usuário. O Linux utiliza este número para dar ou tirar permissões. Pode ser repetido entre usuários. ·GID à Identificador do grupo principal do usuário. ·Descrição à Qualquer coisa, se for omitido, deve-se deixar ::. Geralmente coloca-se nome e cargo do usuário ·Home à Diretório pessoal do usuário. Não necessariamente, mas recomenda-se que ele fique no /home e tenha o mesmo nome do usuário. Ex: Usuário: Rodrigo Home: /home/Rodrigo ·Shell à Shell que o usuário irá utilizar para se logar no sistema. Use /bin/false caso o usuário não deva logar. E /bin/bash caso deva. OBS: Deve ter ficado na cabeça do leitor atento o fato de CASO O USUÁRIO NÃO DEVA LOGAR. Mas quando isto acontece? Digamos que temos uma aplicação que deve ser executada com as permissões de um usuário. Criamos um para ela, mas este não é um usuário válido, como minha aplicação iria entrar na máquina? Este é um caso. - Arquivo /etc/group Similarmente ao /etc/passwd este arquivo possui as configurações dos grupos (o /etc/passwd possui dos usuários) Sua sintaxe geral é: :x::, Os usuários que pertencerem a este grupo estarão listados neste arquivo, a menos que o grupo seja primário do usuário, neste caso apenas estaria referenciado em /etc/ passwd no campo gid. Preste atenção que é neste arquivo que o GID dos grupos está especificado, sendo que o /etc/passwd apenas consulta ele.

else echo ´ Valor != 1´ à Agora esta certo fi

ØFor variavel in lista do done

oComando de loop oA variável irá assumir a cada itereção do loop um valor da lista oEx: for nome in Rodrigo Alberto Gilberto do echo $nome done oIrá ter a saída: Rodrigo Alberto Gilberto

ØScript Adiciona 1000 usuários

·Cria-se um arquivo chamado /tmp/nomes.txt ·Neste arquivo coloca-se o nome dos 1000 usuários. ·Faz-se o seguinte script: ofor user in cat /tmp/nomes.txt odo §useradd $user odone ·Observe o cat /tmp/nomes.txt no lugar da lista. A crase faz com que o comando seja executado. ·O comando CAT lista o conteúdo de um arquivo, no caso nomes.txt que fica no lugar da LISTA. ·A variável user assume valor por valor desta lista a cada iteração e é utilizado o comando useradd para adicionar o usuário. ·Também pode ser escrito assim: Øfor user in cat /tmp/nomes.txt ; do useradd $user; done

ØScript Abrir Interface que Escolher

§Lembre-se que o arquivo .xinitrc localizado no home do usuário é executado assim que a interface gráfica abre. #!/bin/bash echo "Escolha a interface" echo " 1- KDE" echo " 2- Wmaker" echo " 3- Gnome" read iface if [ $iface = "1" ] then kde

exit fi if [ $iface = "2" ] then echo "wmaker" > ~/.xinitrc fi if [ $iface = "3" ] then echo "gnome" > ~/.xinitrc fi startx OBS: Observe o echo "gnome" > ~/.xinitrc, utilizei o metaractere ~ para indicar o home do usuário, assim independente do usuário que executar, o script funcionará. O comando exit serve para fechar o script, porque eu não desejo que o startx seja executado caso kde tenha sido. Coloquei um único startx ao final do script, ao invés de um por if. Utilizei o comando read para acessar um valor digitado pelo usuário e armazenei este valor na variável iface, que não precisa ser previamente declarada.

Aprofundando-se em SHELL Script

- Case Usado quando se necessita de muitos If´s. Funciona assim: case $Variável in valor) comando comando comando ;; valor2) comando comando ;; *) comando comando ;; esac

Exercício: Reescrever o script de abrir interface usando o case

- While Faz um loop que só sairá quando encontrar o comando break ou a condição for FALSA. Sintaxe: while Condição