Guia do Linux/Iniciante+Intermediário/Explicações básicas: diferenças entre revisões

Origem: Wikilivros, livros abertos por um mundo aberto.
[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 1: Linha 1:
Este capítulo traz explicações sobre os principais componentes existentes no computador e do sistema operacional.
Este capítulo traz explicações sobre os principais componentes existentes no computador e do sistema operacional.


==EXPLICAÇÕES BÁSICAS==
===Monitorando os logs===


# [[/Arquivos/]]
Os arquivos de logs residem em /var/log e registram tudo o que acontecem com o kernel, com os daemons e utilitários do sistema. Eles são muito importantes tanto para monitorar o que acontece com o seu sistema como para ajudar na solução de problemas diversos.
# [[/Extensão de arquivos/]]

# [[/Tamanho de arquivos/]]
Acostume-se a olhar constantemente os arquivos de log em seu sistema, isto pode ser importante para encontrar possíveis falhas de segurança, tentativa de acesso ao sistema e, principalmente, solucionar problemas (principalmente os mais complicados). Leia Arquivos e daemons de Log, Capítulo 6 para mais detalhes.
# [[/Arquivo texto e binário/]]
# [[/Diretorio/]]
# [[/Diretório raiz / /]]
# [[/Diretório atual/]]
# [[/Diretório home/]]
# [[/Diretório superior/]]


===Destruindo arquivos/partições de forma segura===
===Destruindo arquivos/partições de forma segura===

Revisão das 00h46min de 12 de outubro de 2006

Este capítulo traz explicações sobre os principais componentes existentes no computador e do sistema operacional.

EXPLICAÇÕES BÁSICAS

  1. Arquivos
  2. Extensão de arquivos
  3. Tamanho de arquivos
  4. Arquivo texto e binário
  5. Diretorio
  6. Diretório raiz /
  7. Diretório atual
  8. Diretório home
  9. Diretório superior

Destruindo arquivos/partições de forma segura

Esta seção tem a intenção de conscientizar o administrador do uso devido de técnicas para garantir que dados sensíveis sejam apagados de forma segura em seu sistema.

Quando um arquivo é apagado, apenas a entrada na tabela de inodes é mexida, e ele pode ainda ser recuperado com o debugfs e um pouco de paciência e engenharia. O mesmo acontece com as partições, que podem ser recuperadas com facilidade (isto é explicado no nível Intermediário do guia). Esta recuperação é proporcionada pelas regras de funcionamento do sistema de arquivos e do esquema de particionamento, ou seja, são permitidas pelo SO.

Vou um pouco mais além: O disco rígido é uma mídia magnética e opera de forma mecânica para ler/gravar dados. Quando um arquivo é apagado, seja por qualquer motivo, ainda é possível recupera-lo. O que permite isto é porque o HD nem sempre tem a precisão de gravar exatamente no mesmo lugar (pois a cabeça é movida mecanicamente), gravando em trilhas microscópicamente vizinhas a anterior. Então a imagem do arquivo que foi apagada continua lá. Segundo ouvi falar, a NASA possui recursos para recuperar até 60 regravações posteriores no disco. É claro que isto pode ocorrer em pouco tempo, dependendo do tamanho de sua partição e se esta for uma /var/spool em um servidor de e-mails :-)

Baseado nesta teoria, você poderá apagar os dados de forma destrutiva usando o programa shred, que regrava o arquivo repetidamente com dados aleatórios. Sua sintaxe é a seguinte:

    shred -n 70 -v -u arquivo

Isto faz com que ele regrava o conteúdo do arquivo 70 vezes com dados aleatórios. O -u trunca e remove o arquivo após concluído.

Note que o uso de dados aleatórios serve para destruir as possibilidades de uma recuperação simples, este é o motivo de se recomendar sempre o uso de /dev/urandom ao invés de /dev/zero para destruição de arquivos.

OBS1: Saiba exatamente o que está fazendo pois estes procedimentos servem para dificultar ao máximo a recuperação de dados.

OBS2: Devido as tecnologias de sistemas que utilizam journaling (XFS, EXT3, JFS e ReiserFS) e sistemas RAID, o shred não funcionará. O shred também não funcionará com sistemas de arquivos via rede (NFS, SMB, etc.). Se procura alguma forma de proteger seus dados, mesmo que apagados, utilize um método de criptografia como o DM-CRYPTO, crypto-loop, gpg, etc.

OBS3: Caso esteja usando um sistema de arquivos criptografado, estes procedimentos são quase desnecessários (dependendo do nível de segurança e algorítmos que você utiliza).

Curingas

Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no GNU/Linux:

   * "*" - Faz referência a um nome completo/restante de um arquivo/diretório.
   * "?" - Faz referência a uma letra naquela posição.
   * [padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser:
         o [a-z][0-9] - Faz referência a caracteres de a até z seguido de um caracter de 0 até 9.
         o [a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição.
         o [a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição.
  • A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar [a-zA-Z].
  • Caso a expressão seja precedida por um ^, faz referência a qualquer caracter exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter exceto a, b e c.
   * {padrões} - Expande e gera strings para pesquisa de padrões de um arquivo/diretório.
         o X{ab,01} - Faz referência a seqüencia de caracteres Xab ou X01
         o X{a-z,10} Faz referencia a seqüencia de caracteres Xa-z e X10.

O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Para entender melhor vamos a prática:

Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new.

Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o coringa "*" para especificar todos os arquivos do diretório:

cd /usr/teste e ls * ou ls /usr/teste/*.

Não tem muito sentido usar o comando ls com "*" porque todos os arquivos serão listados se o ls for usado sem nenhum Coringa.

Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com excessão de teste4.new, teste5.new, podemos usar inicialmente 3 métodos:

  1. Usando o comando ls *.txt que pega todos os arquivos que começam com qualquer nome e terminam com .txt.
  2. Usando o comando ls teste?.txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt também faria a mesma coisa, mas se também tivéssemos um arquivo chamado teste10.txt este também seria listado.
  3. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtém uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado.

Agora para listar somente teste4.new e teste5.new podemos usar os seguintes métodos:

  1. ls *.new que lista todos os arquivos que terminam com .new
  2. ls teste?.new que lista todos os arquivos que começam com teste, contenham qualquer caracter na posição do coringa ? e terminem com .new.
  3. ls teste[4,5].* que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.

Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes.

acima: Ìndice
anterior: Introdução | próximo: Hardware