SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Linux
Professional
SUMÁRIO
EXAME 102........................................................................................................................................2
  Customizar e usar o ambiente shell.................................................................................................2
  Customizar ou escrever scripts simples...........................................................................................3
  Gestão de Dados SQL......................................................................................................................6
  Instalar e Configurar o X11.............................................................................................................6
  Configurar um Gerenciador de Janelas............................................................................................9
  Acessibilidade................................................................................................................................10
  Tarefas Administrativas.................................................................................................................10
  Automação com Agendamento de Tarefas....................................................................................14
  Localização e Internacionalização.................................................................................................15
  Manter a Hora do Sistema.............................................................................................................17
  Log de Sistema...............................................................................................................................20
  Agente de Transferência de E-mail (MTA)...................................................................................21
  Gerenciar Impressoras e Impressão...............................................................................................22
  Fundamentos de Protocolos da Internet.........................................................................................23
  Configuração Básica de Rede........................................................................................................27
  Executar Tarefas de Administração de Segurança.........................................................................28
  Configuração de Segurança do Host..............................................................................................33
  Protegendo os Dados com Criptografia.........................................................................................36




                                                                                                                                                2
EXAME 102
                   Customizar e usar o ambiente shell
/etc/profile – Contém várias definições para o perfil de todo o sistema. Este arquivo é lido antes do
arquivo de configuração pessoal de cada usuário. Tipicamente contém a definição da variável PS1 e
do umask para todos os usuários.

Quando o sistema é carregado, o bash procura estes arquivos em seqüência e executa os comandos
contidos, caso existam:
   1. /etc/profile
   2. ~/.bash_profile
   3. ~/.bash_login
   4. ~/.profile

Após o /etc/profile, o bash pesquisa no diretório do usuário na ordem especificada acima e
interrompe a pesquisa assim que o primeiro arquivo é encontrado. Ou seja, procura o
~/.bash_profile, se não o achar procura o ~/.bash_login e se não o achar, procura o ~/.profile.

Os arquivos ~/.bash_profile, ~/.bash_login e ~/.profile residem no diretório pessoal de cada usuário
e dizem respeito à configurações de perfil específicas de cada usuário. São executadas apenas para
logins de usuários com shell.
    • O arquivo ~/.bashrc é executado por shells que não requerem autenticação

~/.hushlogin - Faz o bash pular as mensagens do /etc/motd, exibindo imediatamente o aviso de
comando após a digitação da senha.

~/.bash_logout – Arquivo que é lido e executado toda vez que o usuário sai do shell.

/etc/motd - O conteúdo de /etc/motd é exibido por login(1) após um login bem sucedido, antes do
shell de login ser executado. O "motd" significa "message of the day" ("mensagem do dia"), e
tradicionalmente esse arquivo tem sido usado exatamente para isso.

Variáveis de ambiente – Variáveis que afetam todo o sistema operacional (ex: PATH). São nomes
que contém algum valor e tem a forma Nome=Valor. Para criar uma variável de ambiente basta
digitar no shell [nome=valor], para exportá-las para o sistema utilize o comando export.

/etc/environment – Arquivo do Debian para definição de variáveis de ambiente que serão
automaticamente exportadas para o sistema na iniciaçação do sistema.

env – Rodar um programa em um ambiente modificado ou exibir as variáveis de ambiente
atualmente definidas.
    • -i : ignorar as variáveis de ambiente atuais e rodar um comando com o sistema limpo.
    • -u : remover (unset) uma variável de sistema na execução de um comando.

export – Exportar uma variável local para o sistema inteiro. Pode ser usado juntamente com a

                                                                                                   3
definição da variável (export VARIAVEL=VALOR) ou com uma variável local já definida (export
VARIAVEL).

set – Mostrar todas as variáveis, incluindo as variáveis locais e de sistema.

unset – Destrói a variável especificada, sendo ela local ou de sistema.

alias – Permite criar um apelido para um programa ou comando. Por exemplo para alterar o
comportamento do comando cp para preservar automaticamente as permissões dos arquivos, utilize
alias cp='cp -p'

/etc/skel – Esqueleto de diretório pessoal para novos usuários criados. Contém arquivos
(tipicamente .bash_profile, .bashrc e .bash_logout) que serão copiados para o diretório pessoal de
cada novo usuário criado.

Funções – Função é um código escrito para resolver uma pequena parte de um problema. Assim
sendo, tem uma “função” na resolução de um problema. No Linux pode ser declarada tipicamente
da seguinte forma:
                           function nome_funcao() { comandos; }
    • Para chamar uma função basta digitar o seu nome. Exemplo: nome_funcao

                Customizar ou escrever scripts simples
Scripts utilizam a habilidade natural do Bash de programação, oferecendo uma linguagem
padronizada para escrever-se pequenos programas que resolvam problemas. A linguagem de
programação do Bash é muito versátil e permite desde a escrita de programas simples a outros bem
complexos.
   • Os scripts mais simples são simplesmente um agrupamento de comandos.

Para criar um script, o código deve ser escrito em um arquivo à parte. Para executá-lo, existem duas
formas básicas:
    1. Indiretamente, através do comando source. Uma vez o código digitado em um arquivo,
        invoca-se o script digitando no shell: source arquivo_de_scripts argumentos. O arquivo não
        precisa ter permissão de execução.
    2. Diretamente, utilizando, na primeira linha do script, o construtor she-bang e dando
        permissão de execução para o script (chmod +x). No shell, chama-se o script digitando
        ./arquivo_de_scripts. O construtor she-bang constitui-se da seguinte linha:
         a) #!/bin/bash

Para utilizar parâmetros passados para scripts Bash, basta leras as variáveis numéricas $1, $2, $3,
etc, que significam sucessivamente o primeiro parâmetro, o segundo, o terceiro e assim por diante.
    • Para listar todos os parâmetros de uma vez, utiliza-se $*

Exemplo de um pequeno script para procurar arquivos com uma determinada string no diretório
atual:

       #!/bin/bash
       find ­name “*$1”

Algumas variáveis especiais que podem ser utilizadas dentro de scripts Bash:

                                                                                                  4
•   $0 – Nome do programa
   •   $# - Quantidade de parâmetros passados
   •   $* - Contém o conjunto de todos os parâmetros

Condicionais – para fazer comparações condicionais, utiliza-se o construtor if.

       if [ "a" = "3" ] || [ "a" = "b" ]; then
             echo "a não é igual a 3 ou b";
       elif [ "a" = "c" ] || [ "a" = "d" ]; then
             echo "a não é igual a c ou d";
       else
             echo "A é diferente de 3,c,b,d";
       fi

Laços – Laços executam uma certa sequência de comandos até que uma determinada condição seja
satisfeita.

       While

       #!/bin/bash 
       CONTADOR=0
       while [ $CONTADOR ­lt 10 ]; do
             echo "Contador em: $CONTADOR";
             let CONTADOR=CONTADOR+1; 
       done

       For

       #!/bin/bash
       for i in $( ls ); do
             echo item: $i
       done

       Until

       #!/bin/bash 
       CONTADOR=20
       until [ $CONTADOR ­lt 10 ]; do
             echo CONTADOR $CONTADOR
             let CONTADOR­=1
       done

test – Verifica tipos de arquivos ou compara valores. Nos scripts o comando test pode ser omitindo,
fornecendo apenas a expressão.

       #!/bin/bash
       if ( test ­d $1); then
             echo “É um diretório”;
       fi

                    Expressão                              Significado
            ( expressão )              Testa se a expressão é verdadeira
            ( !expressão )             Testa se a expressão é falsa

                                                                                                 5
Expressão1 -a Expressão2    Testa se ambas as expressões são verdadeiras
         Expressão1 -o Expressão2    Teste se uma das expressões é verdadeira
         -n String                   Se o tamanho da String é maior que zero
         -z String                   Se o tamanho da String é zero
         String1 = String2           Se a String1 é igual à String2
         String1 != String2          Se a String1 é diferente da String2
         Inteiro1 -eq Inteiro2       Se o Inteiro1 é igual ao Inteiro2
         Inteiro1 -ge Inteiro2       Se o inteiro1 é maior ou igual ao Inteiro2
         Inteiro1 -gt Inteiro2       Se o inteiro1 é maior que o Inteiro2
         Inteiro1 -le Inteiro2       Se o Inteiro1 é menor ou igual ao Inteiro2
         Inteiro1 -lt Inteiro2       Se o Inteiro1 é menor que o Inteiro2
         Inteiro1 -ne Inteiro2       Se o Inteiro1 não é igual ao Inteiro2
         Arquivo1 -ef Arquivo2       Se o Arquivo1 tem o mesmo inode do Arquivo2
         Arquivo1 -nt Arquivo2       Se o Arquivo1 é mais recente que o Arquivo2
         Arquivo1 -ot Arquivo2       Se o Arquivo1 é mais antigo que o Arquivo2
         -d Arquivo                  Se o Arquivo existe e é um diretório
         -e Arquivo                  Se o Arquivo existe
         -f Arquivo                  Se o arquivo existe e é do tipo comum
         -h Arquivo                  Se o arquivo existe e é um link simbólico
         -r Arquivo                  Se o arquivo existe e tem permissão de leitura
         -s Arquivo                  Se o arquivo existe e tem tamanho maior que 0
         -w Arquivo                  Se o arquivo existe e tem permissão de escrita
         -x Arquivo                  Se o arquivo existe e tem permissão de execução

seq – Imprime uma sequência de números.
   • -s : Usa outro tipo de separador diferente do padrão (n)
   • seq [opção] último : começa do 1 e vai até o último, de 1 em 1.
   • seq [opção] primeiro último : começa do primeiro e vai até o último, de 1 em 1
   • seq [opção] primeiro incremento último : começa do primeiro e vai até o último, usando o
       incremento.

       #!/bin/bash 
       for i in `seq 10`; do 
             echo item: $i 
       done 

Substituição de Comandos – O Bash oferece a capacidade de substituir o comando pelo resultado
de sua execução. Assim, antes de exibir o comando em si, com a substituição de comandos, exibe-se
o resultado da sua execução. Existem duas formas:
1.$(comando)
2.`comando`


                                                                                               6
Gestão de Dados SQL
SQL (Structured Query Language) - Sql é um conjunto de comandos de manipulação de banco
de dados. Inicialmente chamada Sequel – Structured English Query Language. Desenvolvida pela
IBM baseada num trabalho de E. F. Codd.
1.Primeira versão comercial lançada em 1975 pela Relational Software Inc. (hoje Oracle)
2.Padronizada pela ANSI e ISO. Primeira versão em 86 (SQL-86)
3.Segunda versão em 89 (SQL-89) utilizada pelos bancos de dados atuais.
4.Em 92 recebe aprimoramentos (SQL-92)
5.Em 1999 surge a SQL-99 (ou SQL3) que define um modelo de Banco de Dados Objeto-
Relacional

Um banco de dados é um conjunto coerente e lógico de dados relacionados que possuem
significância intrínseca.
    • Uma tabela é um conjunto de linhas e colunas onde as colunas qualificam cada elemento
        (linha).

Entidade – Agrupamento lógico de informações inter-relacionadas necessárias para a execução das
atividades do sistema [TABELA].

Atributos – Informações básicas que qualificam uma entidade e descreve seus elementos ou
características [COLUNA].

Tupla – Estrutura de atributos intimamente relacionados e interdependentes que residem em uma
entidade [LINHA].

Chave – Atributo utilizado para indexar dados:
  • Primária: Permite identificar uma única ocorrência de uma tupla em uma entidade.
  • Estrangeira: Atributo que estabelece a relação de uma entidade com a chave primária de
      outra entidade e permite a relação entre entidades.
  • Secundária: Utilizada como meio de classificação e pesquisa em entidades.

DDL (Data Definition Language) – Permite a criação dos componentes do banco de dados.
  • CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX,
      DROP INDEX.

DML (Data Manipulation Language) – Permite a manipulação dos dados armazenados no banco
de dados.
    • INSERT, DELETE, UPDATE

DQL (Data Query Language) – Permite extrair dados do banco de dados
  • SELECT

DCL (Data Control Language) – Provê a segurança interna do banco de dados
  • CREATE USER, ALTER USER, GRANT, REVOKE, CREATE SCHEMA.

                        Instalar e Configurar o X11

                                                                                             7
Xorg – Servidor X X11R7. Xorg é um servidor X completo que foi originalmente projetado para
sistemas operacionais UNIX e UNIX-like rodando em hardware Intel x86. Agora, ele roda em uma
ampla gama de plataformas de hardware e sistema operacional.
    • X é implementado usando-se um modelo cliente-servidor. Os servidores e clientes X
       podem ser localizados no mesmo computador ou separados em uma rede, de forma que a
       computação seja trabalhada separadamente da geração da exibição.

/etc/X11/xorg.conf – Arquivo de configuração para o Servidor X Xorg. Composto por um número
de seções que podem estar presentes em qualquer ordem, ou omitidas para usar os valores de
configuração padrão. Cada seção tem a forma:

       Section "NomeSecao" 
             EntradasSecao
             ... 
       EndSection 

Os nomes das seções são:
   • Files – Caminhos de arquivos
   • ServerFlags – Flags de servidor
   • Module – Carregamento dinâmico de módulos
   • Extensions – Habilitação de extenções
   • InputDevice – Descrição de dispositivos de entrada
   • InputClass – Descrição de classes de entrada
   • Device – Descrição de dispositivos gráficos
   • VideoAdaptor – Descrição do adaptador de vídeo
   • Monitor – Descrição do monitor
   • Modes – Descrições dos modos de vídeo
   • Screen – Configuração da tela
   • ServerLayout – Layout geral
   • DRI – Configuração específica de DRI
   • Vendor – Configurações específicas do fornecedor

Os seguintes nomes de seção obsoletos são ainda reconhecidos para efeitos de compatibilidade. Nos
novos arquivos de configuração, a seção InputDevice deve ser utilizada.
   • Keyboard – Configuração de teclado
   • Pointer – Configuração de dispositivo apontador (mouse)

xvidtune – Programa usado para fazer ajustes finos nas configurações de vídeo, ajustando a sua
exibição de vídeo ao seu monitor. Sem quaisquer opções, se apresenta ao usuário com vários botões
e controles deslizantes que podem ser usados para ajustar interativamente modos de vídeo
existentes. Ele também irá imprimir as configurações em um formato adequado para a inclusão em
um arquivo xorg.conf.

X – X é o nome genérico para o servidor de janelas X Window System. É frequentemente um link
ou uma cópia do binário do servidor para encaminhar o servidor mais frequentemente usado em
uma dada máquina.
   • O servidor C é usualmente iniciado pelo programa X Display Manager (xdm) ou um
      programa gerenciador de janelas similar.


                                                                                               8
•   Instalações que rodem mais de um sistema de janelas podem precisar usar o utilitário xinit
       ao invés do gerenciador de janelas. Contudo, xinit deve ser considerado uma ferramenta
       para criar scripts de inicialização e não é recomendado para usuários finais.

xhost – Programa de controle de acesso para o servidor X. O programa xhost é usado para adicionar
ou deletar nomes de hosts ou nome de usuários para a lista de permitidos a fazer conexões com o
servidor X.
    • [+] nome : O nome dado é adicionado à lista de permitidos a se conectarem ao servidor X.
       O nome pode ser um host ou nome de usuário.
    • -name : O nome dado é removido da lista de permitidos a se conectarem ao servidor. O
       nome pode ser um host ou nome de usuário.
    • + : O acesso é garantido a qualquer pessoa.
    • - : O acesso é restrito aos nomes da lista de permitidos.
    • Utiliza o arquivo /etc/X*.hosts

xwininfo – É um utilitário para mostrar informações sobre janelas. Se nenhuma opção for passada,
assume -stats. O usuário tem a opção de selecionar a janela alvo com o mouse ou de especificar a
janela na linha de comando.
    • -stats : Mostrar vários atributos pertencentes ao local e aparência da janela selecionada.
    • -size : Mostra o tamanho da janela selecionada.

xdpyinfo – É um utilitário para mostrar informações sobre um servidor X. É usado para examinar
as capacidades de um servidor.
    • -display : Informações sobre uma determinada tela. O display do usuário é conseguido
       através da variável de sistema $DISPLAY.

Fontes – O Servidor X pode obter fontes de diretórios ou de servidores de fontes. A lista de
diretórios ou de servidores de fonte que o servidor X usa quando tenta abrir uma fonte é contralada
pela diretriz font path.
    • O local padrão para fontes é /usr/share/fonts

xfs – Servidor de fontes X. Fornece fontes ao sistema de janelas X.
    • Arquivo de configuração padrão em /etc/X11/fs/config
    • A porta padrão é a TCP 7100
    • A diretriz catalogue no arquivo de configuração define os diretórios com as fontes
       fornecidas pelo sistema.

mkfontdir – Criar um índice de arquivos de fonte X em um diretório. Para cada diretório, o
aplicativo lê todas os arquivos de fonte procurando por propriedades chamadas FONT que serão
usadas como nomes de fontes, e, com os nomes dessas fontes, é criado um arquivo fonts.dir no
diretório. O servidor X e o servidor de fontes utilizam esse arquivo para achar as fontes do diretório.

xfd – Mostrar todos os caracteres de uma fonte.
   • -fn : Especifica a fonte cujos caracteres serão exibidos.

xlsfonts – Listar as fontes do servidor X.
    • -display : De um monitor em específico.

xfontsel – Provê um jeito simples de mostrar as fontes conhecidas pelo servidor X, examinar

                                                                                                     9
simples amostras de cada uma, e obter uma descrição sobre a mesma.

~/.Xauthority – Arquivo que contém opções para autenticação junto ao servidor X durante a
conexão. Só não é usado no caso de controle de acesso baseado no host, que utiliza a aplicação
xhost.

xset – Utilitário de preferências de usuário para o X. Programa usado para configurar várias
preferências de usuário para o display.
    • -display : Especificar o servidor a ser usado
    • fp=diretório : Adiciona dinamicamente um diretório de fontes para o sistema X.
    • +fp : adiciona elementos de fonte do diretório corrente
    • -fp : remove elementos de fonte do diretório corrente

xinit – Inicializador do sistema de janelas X. Usado para iniciar o X Windows Server e o primeiro
programa cliente em sistemas que não usam um gerenciador de janelas como o xdm.
    • Se nenhum programa cliente específico for oferecido na linha de comando, o xinit irá
        procurar no arquivo ~/.xinitrc
    • DISPLAY : Variável de sistema que mostra o nome do monitor ao qual o cliente está
        conectado.

startx – Iniciar uma sessão X. O script startx é um front-end para o xinit que fornece um modo
mais elegante de iniciar uma única sessão do Sistema X. Pode ser executado sem argumentos.

               Configurar um Gerenciador de Janelas
O gerenciador de janelas é a interface entre o usuário e o servidor X. É praticamente impossível
utilizar o ambiente gráfico sem um gerenciador de janelas. O procedimento mais comum para
iniciar uma sessão do X é através do comando startx, que chama o script xinit. O script xinit tem
dentre suas funções iniciar o servidor X e programas clientes. O gerenciador de janelas é o principal
desses clientes. Há o script xinit padrão, localizado em /etc/X11/xinit/xinitrc, mas o mais comum é
cada usuário ter seu script xinit personalizado, ~/.xinitrc.

Para executar seu servidor X automaticamente na inicialização do sistema e exibir um prompt de
login gráfico, você tem que alterar (como root) apenas um caracter no arquivo /etc/inittab . Este
arquivo especifica o seguinte:
    • id:3:initdefault:
Altere-o para
    • id:5:initdefault:

Isto faz com que seja definido o nível 5 de execução, o qual é o X-windows. O significado dos
diferentes níveis de execução é mostrado no próprio arquivo /etc/inittab :

   •   0 - halt (Não use o initdefault para este nível de execução)
   •   1 - Single user mode(modo mono-usuário)
   •   2 - Multiuser, without NFS (O mesmo que 3, se você não tem rede)
   •   3 - Full multiuser mode ( modo multiusuário completo)
   •   4 - unused (não usado)
   •   5 - X11


                                                                                                  10
•   6 - reboot (Não use o initdefault para este nível de execução)

gdm – Gerenciador de Janelas do Gnome, é responsável para gerenciar janelas no sistema. Isto
inclui autenticação de usuários, iniciar e terminar uma sessão de usuário.
•Arquivo de configuração em /usr/share/doc/gdm

                                     Acessibilidade
Acessibilidade significa não apenas permitir que pessoas com cadeiras de rodas participem de
atividades que incluem o uso de produtos, serviços e informação, mas a inclusão e extensão do uso
destes por todas as parcelas presentes em uma determinada população.

Em informática, programas que provêm acessibilidade são ferramentas ou conjuntos de ferramentas
que permitem que portadores de deficiências (as mais variadas) se utilizem dos recursos que o
computador oferece. Essas ferramentas podem constituir leitores de tela para deficientes visuais,
teclados virtuais para portadores de deficiência motora ou com dificuldades de coordenação
motora, e sintetizadores de voz para pessoas com problemas de fala.

Orca – Orca é uma flexível, extensível e poderosa tecnologia assistiva para pessoas com
deficiências visuais. Usando várias combinações da síntese de voz, braille e ampliação, Orca ajuda
a fornecer acesso a aplicativos e ferramentas. O comando para executar o orca é orca. Você pode
entrar este comando pressionando Alt+F2 quando estiver logado, esperar um segundo ou dois, e
então digitar orca e pressionar a tecla de retorno. Orca está projetado apresentar a informação
enquanto você navega pelo "desktop" usando os mecanismos internos de navegação do GNOME.
Estes mecanismos de navegação são consistentes através da maioria das aplicações de "desktop".

GOK - O aplicativo Gnome On-Screen Keyboard exibe teclados virtuais em seu desktop. Você
pode usar o ponteiro do mouse padrão ou dispositivo apontador alternativo para operar o teclado
virtual. On-Screen Keyboard apresenta os seguintes tipos de teclados:
    • Composer Keyboards permitem compor texto. Para digitar caracteres alfanuméricos, você
         selecione os caracteres do teclado do compositor.
    • Dynamic Keyboards refletem as aplicações que estão atualmente em execução no desktop.
         Por exemplo, On-Screen Keyboard gera teclados dinâmicos que contêm as chaves para
         representar as aplicações que estão rodando no seu desktop ou nos menus que estão contidos
         em um aplicativo.

emacspeak - Emacspeak é uma interface de voz que permite que usuários deficientes visuais
interajam de forma independente e eficiente com o computador. A formatação de áudio e suporte
completo para Aural W3C CSS (ACSS) permite Emacspeak para produzir ricas apresentações
fonética de informação eletrônica. Ao misturar perfeitamente todos os aspectos da Internet, como
navegação na Web e mensagens, Emacspeak permite acesso a informação local e remota através de
uma interface de usuário consistente e bem integrada. Disponível sem custo na Internet, Emacspeak
mudou drasticamente a forma como centenas de cegos e deficientes visuais de todo o mundo
interage com o computador pessoal e a Internet. Quando combinado com o Linux rodando em
hardware de baixo custo, Emacspeak/Linux fornece uma solução estável que abre a internet para
usuários com deficiência visual em todo o mundo.

                            Tarefas Administrativas

                                                                                                11
/etc/passwd – arquivo de senhas. Passwd é um arquivo texto, que contém a lista de contas do
sistema, fornecendo para cada conta qualquer informação útil como identificação numérica do
usuário, identificação numérica do grupo, diretório do usuário, interpretador de comandos, etc.
    • Permissão total de leitura e permissão de escrita somente para o superusuário.
    • Cada linha tem o formato:
    • account:password:UID:GID:GECOS:directory:shell
    • As GIDs devem ter um correspondente em /etc/group

/etc/shadow – arquivo de senhas criptografadas. Contém, além das senhas criptografadas,
informações sobre a idade das senhas.

shadowconfig – Habilitar ou desabilitar senhas shadow.

/etc/group – arquivo dos grupos de usuários. Define os grupos aos quais os usuários pertencem.
    • Uma entrada por linha, e cada linha segue o seguinte formato:
    • nome_do_grupo:senha:GID:lista_de_usuários
    • O último campo, lista de usuários, contém todos os usuários do grupo, separados por vírgula

/etc/login.defs – configurações para a suíte de aplicativos de login. Define várias opções de
segurança e de informação.

/etc/skel - diretório que contém arquivos padrão que são copiados para novos usuários.
Normalmente contém os arquivos .bashrc, .profile e .bash_logout

passwd - mudar a senha de uma conta de usuário. Um usuário normal somente pode alterar a senha
para sua própria conta, o super-usuário pode mudar a senha de qualquer conta. O usuário primeiro é
questionado sobre sua senha atual, o super-usuário não precisa informar a senha atual.
    • -a : usado juntamente com -S, mostra informações sobre todos usuários.
    • -d / --delete : deletar uma senha de usuário.
    • -e / --expire : expira imediatamente a senha de uma conta. Isto força o usuário a mudar a
       sua senha no próximo login.
    • -i / --inactive dias : esta opção é usada para desabilitar uma conta depois que a senha
       houver expirado por um número de dias.
    • -l / --lock : trava a senha para uma conta. Não desabilita a conta, apenas o uso de senha.
    • -m / --mindays : definir o número de dias mínimo entre alterações de senhas.
    • -S / --status : mostra informações de estado da conta. Consiste em 7 campos.
    • Nome de login
    • Indica se a conta está travada (L), se tem senha definida (NP) ou se tem uma senha usável
       (P)
    • Data da última modificação
    • Idade mínima, idade máxima, período de alerta e período de inatividade, expressos em dias.
    • -u / --unlock : destravar a senha da conta de usuário.
    • -w / --warndays : definir o número de dias para o período de alerta.
    • -x / --maxdays : definir o número máximo de dias que uma senha continua válida.

chage - mudar as informações de expiração da senha do usuário. Chage [opções] [login]. Muda o
número de dias entre alterações de senhas, e a data da última alteração da senha. Usado pelo sistema
para determinar quando um usuário deve alterar sua senha.


                                                                                                 12
•   -d / --lastday dia : definir a data quando a senha foi alterada. A data pode ser expressa
       noformato YYYY-MM-DD.
   •   -E / --expiredate : definir a data quando a senha da conta de usuário irá expirar.
   •   -I / --inactive : definir o número de dias de inatividade desde que a senha tenha expirado até
       que a conta seja trancada.
   •   -l / --list : mostrar informações sobre a idade das contas.
   •   -m / --mindays : definir o número mínimo de dias para alterar a senha.
   •   -M / --maxdays : definir o número máximo de dias durante os quais a senha é válida.
   •   -W / --warndays : definir o número de dias do período de alerta até que uma alteração de
       senha seja exigida.

groupadd - criar um novo grupo.
   • -f / --force : se o grupo já existir, o aplicativo fecha com estado de sucesso.
   • -g / --gid : o ID de identificação do grupo.
   • -r / --system : criar um grupo do sistema.

groupdel - deletar um grupo. Modifica os arquivos de conta do sistema, deletando todas as entradas
para o referido grupo. Não é possível excluir o grupo primário de um usuário existente.

groupmod - modificar a definição de um grupo no sistema.
   • -g / --gid : modificar o ID do grupo. Valores entre 0 e 999 são tipicamente reservados para
      grupos do sistema.
   • -n / --new-name novo_grupo : o nome do grupo será alterado para novo_grupo.
   • -p : alterar a senha do grupo.

newgrp – conectar a um novo grupo. É usado para mudar o grupo atual durante uma sessão de
login. Também tenta adicionar o grupo ao conjunto de grupos do usuário.

groups – mostrar os grupos os quais o usuário faz parte. O superusuário pode visualizar os grupos
de todos outros usuários.

useradd – criar um novo usuário. É um utilitário de baixo nível para adicionar usuários. No Debian,
administradores devem usar o adduser.
   • -c / --comment : qualquer string de texto. Comumente usado para o nome completo.
   • -b / --base-dir diretório : o diretório base para o sistema.
   • -D / --defaults : adiciona um usuário com os valores padrão.
   • -e / --expiredate : a data na qual a conta do usuário irá expirar. Formato YYYY-MM-DD
   • -f / --inactive dias : número de dias, depois que a senha expirar, até que a conta seja
       permanentemente desativada.
   • -g / --gid : o nome ou o id do grupo inicial do usuário.
   • -G / --groups : uma lista suplementar dos grupos os quais o usuário é membro.
   • -k / --skel diretório : o diretório skeleton, que contém arquivos e diretórios a serem
       copiados para a pasta home do novo usuário criado.
   • -l : não adicionar o usuário ao banco de dados do lastlog e do faillog
   • -m / --create-home : criar um diretório home para o usuário, se não existir. Por padrão,
       nenhum diretório home é criado.
   • -N / --no-user-group : não criar um grupo com o mesmo nome do usuário, mas adicionar o
       usuário a um grupo especificado com o argumento -g.


                                                                                                  13
•   -p / --password senha : a senha encriptada, protegida pelo crypt.
   •   -r / --system : criar uma conta de sistema.
   •   -s / --shell shell : o nome do shell do usuário, deixado em branco por padrão.
   •   -u / --uid uid : o valor numérico do ID do usuário.
   •   -U / --user-group : criar um grupo com o mesmo nome do usuário, e adicionar o usuário a
       este grupo.

Observações sobre o useradd:
   • Quando invocado somente com a opção -D, useradd irá mostrar os valores padrão atuais.
      Quando invocado com a opção -D junto com outras opções, useradd irá atualizar os valores
      padrão para as opções especificadas.
   • O arquivo /etc/login.defs muda o comportamento desta ferramenta.

userdel – excluir uma conta de usuário e arquivos relacionados. Utilitário de baixo nível para
remoção de usuários. No debian recomenda-se o utilitário deluser.
   • -f / --force : força a remoção de uma conta de usuário, mesmo se o usuário estiver logado.
       Força a remoção do diretório home e do spool de e-mail. Esta opção pode ser perigosa.
   • -r / --remove : arquivos no diretório home do usuário e spool de e-mail são removidos.

usermod – modificar uma conta de usuário.
   • -a / --append : adiciona o usuário a grupos suplementares. Use apenas com a opção -G.
   • -c / --comment : novo valor para o campo comentário do arquivo passwd.
   • -d / --home : caminho para o diretório home do usuário.
   • -e / --expiredate : data na qual a conta de usuário será desabilitada.
   • -f / --inactive : o número de dias depois que a senha houver expirado até que a conta seja
      permanentemente desabilitada.
   • -g / --gid : o grupo ou ID de grupo do grupo inicial do login de usuário.
   • -G / --groups : lista de grupos suplementares os quais o usuário deve fazer parte, separados
      por vírgula.
   • -l / --login : o nome do usuário será alterado. Nada mais é alterado, nem mesmo o diretório
      home do usuário.
   • -L / --lock : travar uma senha de usuário.
   • -p / --password : alterar a senha.
   • -s / --shell : alterar o shell do login inicial do usuário.
   • -u / --uid : alterar o ID de usuário.
   • -U / --unlock : destravar a senha do usuário.

chfn – alterar o nome real do usuário e outras informações.
   • -f : nome completo
   • -r : número da sala
   • -w : telefone do trabalho
   • -h : telefone de casa
   • -o : outros

chsh – mudar o shell de login do usuário. Um usuário normal somente pode mudar o seu próprio
shell, o superusuário pode mudar o shell de qualquer usuário.
    • -s / --shell : definir, via linha de comando, o novo shell do usuário.
    • Shells disponíveis encontram-se em /etc/shells

                                                                                              14
Automação com Agendamento de Tarefas
Cron é um daemon usado no Linux e em várias versões do Unix que executa tarefas agendadas no
arquivo "/etc/crontab". Esta é uma ferramenta bastante poderosa, que pode ser usada para
automatizar tarefas de rotina e de manutenção do sistema.

crontab – manter arquivos de crontab para usuários individuais. Cada usuário tem seu próprio
arquivo crontab, localizado em /var/spool/cron/crontabs
   • -l : lista as tarefas agendadas para o usuário
   • -e : edita o agendador
   • -r : apaga o arquivo do usuário

/etc/crontab – arquivo de configuração do cron para o sistema e para o root, segue a sintaxe
informada abaixo.
    • Quando um dos atributos é informado como sendo * (asterisco) assume-se a condição para
        todos os valores possíveis. Por exemplo, se colocamos * no mês, executa-se o comando
        dado em todos os meses do ano.
    • Deve-se informar o SHELL utilizado e o PATH
    • SHELL = /bin/bash
    • PATH = /sbin:/bin:/usr/sbin:/usr/bin
    • MAILTO = root
    • HOME = /

.---------------- minuto (0 - 59)
| .------------- hora (0 - 23)
| | .---------- dia do mês (1 - 31)
| | | .------- mês (1 - 12)
| | | | .---- dia da semana (0 - 6) (Domingo=0)
| | | | |
* * * * * comando a ser executado

Exemplo – todos os dias, às 8 da manhã, executar o comando updatedb
* 08 * * * updatedb

Dentro do diretório /etc, existem quatro diretórios de agendamentos pré-definidos. Para utilizá-los,
basta copiar o script para dentro de um desses diretórios:
    • /etc/cron.hourly/ : de hora em hora
    • /etc/cron.daily/ : de dia em dia
    • /etc/cron.weekly/ : de semana em semana
    • /etc/cron.montly/ : de mês em mês

Após copiar o script para o diretório desejado, é necessário reiniciar o daemon do cron, para que as
alterações entrem em vigor.
    • /etc/init.d/cron restart

at – Enfileirar, examinar ou deletar trabalhos para execuções posteriores. Aceita horários no
formato HH:mm para executar uma tarefa em uma hora específica do dia (se o horário já houver


                                                                                                 15
passado, o próximo dia é assumido). Pode-se usar os sufixos AM ou PM para executar no período
matutino ou vespertino.
   • -l : um alias para atq. Lista os trabalhos enfileirados.
   • -d : um alias para atrm. Deleta um trabalho enfileirado.
   • -f arquivo : lê os comandos de um arquivo
   • Tarefas agendadas ficam guardadas no diretório /var/spool/cron/atjobs
   • Também pode-se especificar qual dia a tarefa será executada nos formatos MMDDAA ou
       MM/DD/YY ou DD.MM.YY
   • A especificação da data deve vir após a especificação da hora. Por exemplo, pode-se utilizar
       at 4pm +3 days
   • Pode-se especificar horários tais como now + número unidade. As unidades podem ser
       minutes, hours, days ou weeks. at now + 12 hours

O superusuário pode usar esses comandos em qualquer caso. Para outros usuários, permissão de uso
deve estar determinada nos arquivos /etc/at.allow e /etc/at.deny
   • Um arquivo /etc/at.deny vazio significa que qualquer usuário pode utilizar esses comandos.
       Essa é a configuração padrão.

anacron – Usado para executar comandos periodicamente, com uma frequência especificada em
dias. Diferente do cron, não assume que a máquina rode continuamente.
    • Quando executado, anacron lê uma lista de tarefas de um arquivo de configuração,
        normalmente /etc/anacrontab. Esse arquivo contém uma lista das tarefas que o anacron
        controla.
    • /var/spool/anacron – Diretório usado para armazenar as etiquetas de tempo dos arquivos.
    • -u : apenas atualizar a etiqueta de tempo dos trabalhos, para a hora corrente, mas não
        executar nenhum.
    • -s : serializar a execução das tarefas. Uma só roda após a conclusão da outra.
    • -n : executar todos as tarefas agora.

/etc/anacrontab – Arquivo de configuração para o anacron. As descrições de tarefas seguem a
forma:

       período delay identificador­da­tarefa comando
       @nome_do_período delay identificador­da­tarefa comando

       Exemplo de uso:

       # todo dia (1), após 5 minutos (5) depois de ligado.
       1     5    falador    echo “Olá eu sou o falador”

   •   O período é especificado em dias, o delay em minutos.

                   Localização e Internacionalização
O kernel do Linux mantém um relógio separado do relógio do hardware (BIOS). Durante o boot, o
relógio do kernel lê o relógio do hardware e a partir daí roda distintamente. Esse procedimento se
justifica pois ler o relógio do hardware é lento e complicado. O relógio do kernel guarda a hora
universal, de modo que fusos horários são calculados por cada processo através das ferramentas
timezone.


                                                                                               16
O fuso horário do sistema é determinado pelo arquivo /etc/localtime, que geralmente é um link
simbólico apontando para o arquivo real em /usr/share/zoneinfo/ ou em /usr/lib/zoneinfo/.
   • Os fuso horários possíveis são encontrados em /usr/share/zoneinfo

date – Exibir ou configurar a data e hora do sistema.
   • -u : mostrar a hora universal.
   • Segue o seguinte formato:

       date MMDDhhmmYYYY.ss

       MM – Mês
       DD – Dia
       hh – Hora
       mm – Minuto
       YYYY – Ano
       ss – Segundo

       Exemplo:

       # date 111622042010.20 
       # Ter Nov 16 22:04:20 BRST 2010 

hwclock – Consultar e definir o relógio de hardware.
   • -r / --show : ler o relógio de hardware e imprimir na saída padrão.
   • -s / --hctosys : configurar a hora do sistema para a hora do relógio de hardware.
   • -w / --systohc : configurar o relógio de hardware igual o relógio do sistema.

locale – Obter informações específicas da localidade. Mostra informações sobre a localidade atual
do sistema.
    • -a / --all-locales : Mostra o nome de todas as variáveis.
    • /usr/share/i18n/SUPPORTED – Lista de todos os valores suportados pelo nome da
        localidade.

/usr/lib/locale/ - Base de dados para todas atuais definições de categoria de localização.

tzselect – Ver fuso horários. É chamado sem nenhum parâmetro e mostra uma lista de cerca de uma
dúzia de áreas geográficas que pode-se reconhecer como os continentes. Depois de escolher uma
área geográfica pelo número, uma lista de países e cidades nesta área serão mostrados.
    • /usr/share/zoneinfo – Arquivos para fuso horários possíveis.
    • Escolher no diretório acima e depois configurar em /etc/timezone
    • Para alterar permanentemente as opções de localidade, também pode-se utilizar o comando:
        dpkg-reconfigure tzdata, anteriormente usava-se o comando tzconfig.

iconv – Converter a codificação de um arquivo dado de uma codificação para outra.
    • -f / --from-code : Definir a codificação de origem dos caracteres.
    • -t / --to-code : Definir a condificação de destino dos caracteres.
    • -l / --list : Listar todos os conjuntos de caracteres conhecidos.
    • -o / --output : Especificar o arquivo de saída.

UTF-8 - uma codificação Unicode multibyte compatível com ASCII. A codificação UTF-8 é a

                                                                                              17
maneira de usar o conjunto de caracteres Unicode sob sistemas operacionais do estilo Unix.
   • A ordenação lexicográfica das strings UCS-4 é preservada.
   • Os bytes 0xfe e 0xff nunca são usados na codificação UTF-8
   • O caractere Unicode 0xa9 = 1010 1001 (o sinal de copyright) é codificado em UTF-8 como
       11000010 10101001 = 0xc2 0xa9
   • Geralmente utilizado no Linux

ISO 8859 - Conjunto de caracteres ISO (International Organization for Standardization), que é
extensão ao código ASCII. Inclui caracteres acentuados. O padrão ISO 8859 inclui várias extensões
de 8 bits para o conjunto de caracteres ASCII (também conhecido como ISO 646-IRV).
Especialmente importante é o ISO 8859-1, o "Alfabeto Latino No. 1", que tem se tornado
largamente implementado e já pode ser visto como um substituto de fato para o padrão ASCII.
    • Geralmente utilizado no Windows

ASCII - significa American Standard Code for Information Interchange (Código Americano Padrão
para Intercâmbio de Informação). É um código de 7 bits. Muitos códigos de 8 bits (tais como o ISO
8859-1) contém o ASCII como a sua metade inferior. A parte internacional correspondente do
ASCII é conhecida como ISO 646.

                          Manter a Hora do Sistema
O NTP (Network Time Protocol) é largamente utilizado para sincronizar um computador a um
servidor de tempo da Internet ou de outras fontes, como um receptor de rádio ou de satélite.
    • Utiliza o protocolo de transporte UDP na porta 123
    • Arquivo de configuração em /etc/ntp.conf
    • Definido na RFC 5905. Site oficial: www.ntp.org

Os servidores NTP formam uma topologia hierárquica, dividida em camadas ou estratos
numerados de 0 a 16, onde 16 significa um estrato desativado.
   • O estrato 0 na verdade não faz parte da rede de servidores NTP, mas representa uma
      referência primária de tempo, que é geralmente um receptor do sistema de posicionamento
      global (GPS) ou um relógio atômico.

ntpd - Processo daemon que define e mantém o sistema de tempo em sincronismo com servidores
de tempo da Internet que pertençam ao padrão.
    • Lê o arquivo /etc/ntpd.conf no momento da inicialização para determinar as fontes de
       sincronismo e o modo de operação.
    • -a : requer autenticação criptográfica para associações de clientes broadcast, multicast e
       simétricos passivos. Este é o padrão.
    • -A : não requer autenticação criptográfica para associações de clientes broadcast, multicast e
       simétricos passivos. Pode não ser uma boa idéia.
    • -b : habilitar o cliente para sincronizar com servidores broadcast.
    • -c arquivo_configuracao : definir um outro local para o arquivo de configuração que não
       seja o /etc/ntpd.conf
    • -f drift_file : especificar o nome e caminho para o arquivo de freqüências, por padrão em
       /etc/ntp.drift. No Debian fica em /var/lib/ntp/ntp.drift
    • -k arquivo_chave : especificar o nome e o caminho do arquivo de chave simétrica.
    • -l arquivo_log : especificar o nome e o caminho do arquivo de log. O padrão é o arquivo de


                                                                                                 18
log do sistema.
   •   -q : fechar o ntpd após o primeiro sincronismo.

/etc/ntp.conf – Arquivo de configuração para o servidor de tempo NTP. Normalmente lido na
inicialização do daemon ntpd para determinar as fontes de sincronismo e o modo de operação.
Comandos de configuração consistem em uma palavra-chave inicial seguida por uma lista de
argumentos.
    • server endereço : para definição de uma fonte de sincronismo. O ideal é usar fontes
         redundantes para garantir a confiabilidade.
    • peer endereço : informar o endereço do par de sincronismo.
    • broadcast endereço : para definir um endereço para replicação broadcast.
    • prefer : marca um servidor como preferido. Utilizado somente com a opção server ou peer.
    • key : todos os pacotes são enviados e recebidos utilizando-se a chave especificada para
         autenticação.
    • driftfile arquivo_drift : define o nome e caminho do arquivo de freqüências.

       ## /etc/ntp.conf 

       # Permite acesso ao servidor para sincronizar mas nao 
       # permite modificacoes no servico 
       restrict default nomodify notrap noquery 
        
       # Permite acesso completo para a interface local 
       restrict 127.0.0.1 
        
       # Libera acesso a minha rede local 
       restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 
        
       # Servidor para sincronizar o relógio 
       # Será usado em ordem 
       # o pcdsh05.on.br e stratum 1 todos os outros são stratum 2 
       server pcdsh05.on.br 
       server ntp.pop­go.rnp.br 
       server ntp.pop­df.rnp.br 

       # Informa o local do arquivo drift 
       driftfile /var/lib/ntp/ntp.drift 

       # Local do arquivo de log 
       # Por padrao em: /var/log/daemon.log 
       logfile /var/log/ntp/ntp.log

ntpdate - Utilitário que permite configurar o horário e data locais usando como referência um
servidor NTP remoto. Deve ser executado como root na máquina local. Pode ser rodado
manualmente quando necessário e pode ser definido em um script de inicialização.
    • -a key : habilitar a função de autenticação e especificar a chave de identificação a ser usada.
    • -d : habilitar o modo de depuração, informando todos os passos mas sem ajustar o relógio
       local.
    • -k arquivo_chave : especificar o nome e caminho para a chave de autenticação.
    • -q : perguntar as horas apenas, sem definir o relógio.
    • -t tempo : especificar o tempo máximo para esperar uma resposta do servidor, em segundos.



                                                                                                  19
#! /bin/sh 

       # Colocar em /etc/init.d, dar permissao de execucao 
       # chmod +x /etc/init.d/relogio depois configurar a 
       # inicializacao update­rc.d relogio defaults 

       ntpdate ntp.pop­go.rnp.br

ntpq – Programa padrão para consultas. É usado para monitorar as operações do daemon NTP e
determinar a performance.
    • -4 / -6 : força a resolução de DNS para o formato Ipv4 ou Ipv6.
    • -i : força o ntp a operar no modo interativo, utilizando as entradas e saída padrão do sistema.
    • -n : todos os endereços de host saem no formato "dotted-quad” em vez de converter aos
       nomes canônicos de host.
    • -p : imprimir uma lista de todos os pares conhecidos ao servidor bem como um sumário de
       seus estados.
    • -c : passar um comando como se estivesse no modo interativo, através da linha de
       comandos.
       ○ peers / pe : fornece informações sobre todos os pares com os quais você está associado,
           com informações sobre os seus servidores.
       ○ associations / as : informações sobre as associações com os servidores.
       ○ readvar / rv : informações detalhadas sobre sua associação.
       ○ clockvar / cv : solicita que uma lista de variáveis de relógio do servidor seja enviada.
       ○ readlist / rl : solicita que os valores das variáveis na lista de variáveis internas sejam
           devolvidos pelo servidor

ntpdc – programa especial de consultas ntp. Usado para consultar o daemon ntpqd sobre o seu
estado atual e sobre requisições de mudanças em seu estado.
    • -4 / -6 : força a resolução de DNS para o formato Ipv4 ou Ipv6.
    • -i : força o ntp a operar no modo interativo, utilizando as entradas e saída padrão do sistema.
    • -n : todos os endereços de host saem no formato "dotted-quad” em vez de converter aos
       nomes canônicos de host.
    • -l : obtém uma lista de todos os pares que são conhecidos pelo servidor. Equivalente a -c
       listpeers
    • -s : imprimir uma lista de pares conhecidos pelo servidor bem como um sumário de seu
       estado.
    • -p : imprimir uma lista de todos os pares conhecidos ao servidor bem como um sumário de
       seus estados.
    • -c : passar um comando como se estivesse no modo interativo, através da linha de
       comandos.
       ○ peers / pe : fornece informações sobre todos os pares com os quais você está associado,
            com informações sobre os seus servidores.
       ○ listpeers : lista resumida de todos os servidores aos quais está conectado.
       ○ showpeer endereco : mostrar informações detalhadas sobre uma associação.
       ○ sysinfo : imprime uma variedade de variáveis de estado do sistema.
       ○ sysstats : imprime contadores estatísticos mantidos pelo módulo do protocolo de tempo.
       ○ reslist : lista de restrições do servidor ntp local.

ntptrace - Determina de onde um determinado servidor NTP obtém a referência de tempo e traça o


                                                                                                  20
caminho seguido até o servidor primário (comumente, servidor NTP stratum 1).
   • -r numero : numero de tentativas.
   • -t tempo : tempo das tentativas.

                                    Log de Sistema
rsyslog – Utilitário de sistema que provê suporte para log de mensagens.
   • Arquivo de configuração em /etc/rsyslog.conf

O comportamento do rsyslogd é controlado pelo seu arquivo de configuração, /etc/rsyslog.conf.
Esse arquivo de texto contém linhas, indicando o que deve ser locado e onde. Cada linha contém
diretivas nesta forma:

       # facilidade.nícel ação
       auth,authpriv.*                     /var/log/auth.log

   •   Facilidade : Representa o criador da mensagem (ou seja, o kernel ou o processo) e é um dos
       seguintes: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, user, uucp ou
       local0 até local7.
   •   Nível : Especifica um limite de severidade a partir do qual as mensagens começam a ser
       logadas, e é um dos seguintes: debug, info, notice, warning, err, crit, alert ou emerg. O
       asterisco (*) pode ser usado para descrever todas as facilidades ou todos os níveis.
   •   Ação : Representa o destino das mensagens que correspondem a um dado selecionador
       (facilidade.nível). A ação pode ser um nome de arquivo ou um nome de host precedido pelo
       sinal @.

logger - Criar entradas no log do sistema (/var/log/).
   • -f file : Registrar um arquivo específico.
   • -t tag : Criar registros com uma tag específica.
   • -p facilidade.nivel : Define a prioridade do registro.
   • Ex: logger -p local5.info -t YURI “Isso é um teste” / cat /var/log/messages

logrotate – Permite rotação automática, compressão, remoção e envio de arquivos de log. Cada
arquivo de log pode ser manipulado diariamente,semanalmente, mensalmente ou quando ele se
tornar muito grande.
    • Normalmente executa no agendamento diário do cron.
    • /var/lib/logrotate/status – Arquivo de status do logrotate.
    • /etc/logrotate.conf – Configurações do logrotate.
    • -f / --force : força a rotação, mesmo que não seja necessário.

       # Exemplo de configuração do /etc/logrotate.conf 
       weekly 
       rotate 4 
       create 

       /var/log/dpkg.log { 
        monthly 
        rotate 12 
        compress 
        delaycompress 


                                                                                               21
 missingok 
        notifempty 
        create 640 root adm 
       } 

savelog – Salva e opcionalmente comprime copias antigas de arquivos. Versões antigas de arquivos
são chamadas: arquivo.<versão><sufixo>
    • -p : preserva definições de dono
    • -j : comprimir com bzip2 ao invés de gzip
    • -l : não comprimir arquivos de log
    • -t : criar um arquivo novo para o log.

            Agente de Transferência de E-mail (MTA)
O programa responsável por administrar o envio e o recebimento de mensagens de correio
eletrônico, local e remotamente, é chamado MTA – Mail Transport Agent. Há várias opções de
MTAs, dentre as quais o sendmail, o postfix, o qmail e o exim. O MTA roda como um daemon do
sistema, geralmente monitorando a porta 25 (SMTP).
    • O MTA mais utilizado é o sendmail, e os demais geralmente oferecem opções de
        interoperabilidade com ele, salvo as peculiaridades de cada um.
    • Sendmail – www.sendmail.org
    • Exim – www.exim.org
    • Qmail – qmail.org/top.html
    • Postfix – www.postfix.org

O sendmail depende de arquivos e diretórios de suporte para funcionar. Os caminhos podem ser
alterados no arquivos de configuração do sendmail, mas geralmente encontram-se nos locais
padrão:
    • /etc/mail/access - Lista de hosts autorizados a enviar email por este servidor.
    • /etc/mail/aliases ou /etc/aliases - Vincula nomes diferentes para destinatários no sistema.
        Após alterar este arquivo, é necessário executar o comando newaliases para gerar o arquivo
        /etc/mail/aliases.db e só então os aliases serão utilizados pelo sendmail.
    • ~/.forward - Pode conter um ou mais endereços para os quais os emails recebidos pelo
        usuário em questão serão direcionados.
    • /var/spool/mail/ - Diretório onde são armazenados os emails após serem recebidos pelo
        sendmail. É criado um arquivo para cada usuário, que será lido pelo cliente de email do
        usuário.
    • /var/spool/mqueue/ - Diretório de fila para os emails enviados pelos usuários do sistema.

mail – Aplicativo usado para ler os e-mails do usuário.
   • ~/mbox – Arquivo usado para catalogar todos os e-mails já lidos pelo usuário.
   • -s : Definir o assunto do e-mail.
   • Segue o formato: mail -s Assunto usuario@maquina <enter> Mensagem, pode conter mais
       de uma linha. Ao final, em uma linha nova, pressiona-se <ctrl+d> para finalizar e enviar a
       mensagem.

mailq – Mostra a lista de e-mails a serem enviados.



                                                                                               22
Gerenciar Impressoras e Impressão
CUPS é o programa usado para imprimir de aplicativos como um browser de Internet. Ele converte
a página produzida pela aplicação em algo que a impressora possa entender e então envia a
informação para a impressora para imprimir.

   ✔   Para acessar o aplicativo de configuração via browser, acesse: http://localhost:631/
   ✔   Configurações gerais do cups ficam em: /etc/cups/cupsd.conf
   ✔   Configurações de impressoras ficam em: /etc/cups/printers.conf
   ✔   Diretório de spool do CUPS: /var/spool/cups
   ✔   Impressoras do sistema também são identificadas em: /etc/printcap

cupsd – cupsd é o agendador para o CUPS. Ele implementa um sistema de impressão baseado no
Protocolo de Impressão da Internet (IPP v.2.1). O arquivo de configuração fica em
/etc/cups/cupsd.conf
    • -c arquivo : usa o arquivo de configuração especificado.
    • -f : executa o cupsd em primeiro plano.
    • -h : mostra como usar o programa
    • -t : testa o arquivo de configuração por erros de sintaxe

/etc/cups/cupsd.conf – arquivo de configuração do CUPS. Contém as diretivas que controlam as
funções do servidor.

/etc/cups/printers.conf – arquivo que contém as configurações das impressoras instaladas.

lpr – envia arquivos para impressão.
    • -E : forçar a criptografia quando conectar ao servidor.
    • -C nome : definir o nome do trabalho.
    • -P destino : imprimir trabalhos para a impressora especificada
    • -U username : especificar um nome de usuário diferente
    • -# copias : definir o número de cópias a serem impressas.
    • -h : desabilitar a impressão de banners.
    • -l : afirmar que o trabalho já está formatado para impressão, enviando para impressora sem
        nenhum filtro.
    • -m : enviar um e-mail ao final do trabalho.
    • -p : especificar a adição de um cabeçalho com data, hora, nome e número da página.
    • -r : excluir os arquivos após a impressão.

lpq – mostrar o estado de uma fila de impressão de uma determinada impressora.
   • -E : forçar a criptografia quando conectar ao servidor.
   • -P destino : imprimir trabalhos para a impressora especificada
   • -U username : especificar um nome de usuário diferente
   • -a : exibir trabalhos em todas as impressoras
   • -l : mostrar dados em um formato mais detalhado

lprm – cancelar trabalhos de impressão que haviam sido enfileirados.
   • -E : forçar a criptografia quando conectar ao servidor.


                                                                                              23
•   -P destino : imprimir trabalhos para a impressora especificada
   •   -U username : especificar um nome de usuário diferente

               Fundamentos de Protocolos da Internet
/etc/services – Lista os serviços da rede Internet. Arquivo ASCII provendo um mapeamento
amigável entre nomes textuais para serviços da internet, e consignar suporte para números de portas
e tipo de protocolos.
     • Números de portas são designadas pelo IANA (Internet Assigned Numbers Authority), e
        atualmente a política deles é designar ambos os protocolos TCP e UDP quando designando
        um número de porta.

Alguns números de portas associados a serviços amplamente conhecidos:

                                PORTA             SERVIÇO
                                   20            FTP (dados)
                                   21                FTP
                                   22                SSH
                                   23              TELNET
                                   25               SMTP
                                   53                DNS
                                   80               HTTP
                                  110               POP3
                                  119      NNTP (USENET news)
                                  139             NETBIOS
                                  143               IMAP
                                  161               SNMP
                                  443              HTTPS
                                  465     SSMTP (smtp sobre SSL)
                                  993     IMAPS (imap sobre SSL)
                                  995      POP3S (pop3 sobre SSL)

ftp - uma interface de usuário para o protocolo de transferência de arquivos da Internet. O programa
permite ao usuário transferir arquivos para e de um site remoto da rede.
    • -p : usar o modo passivo para transferência de dados. Permite o uso de ftp em sistemas onde
        um firewall previne conexões de fora retornarem à máquina local. Requer que o servidor ftp
        suporte o comando PASV.
    • -i : desliga o prompt interativo durante a transferência de múltiplos arquivos.
    • -n : restringe ao ftp de tentar "login automático" na conexão inicial. Se o login automático é
        ativado, ftp irá verificar o arquivo .netrc no diretório home do usuário para uma entrada
        descrevendo uma conta na máquina remota.
    • -e : desativar a edição de comandos e o suporte a histórico.


                                                                                                 24
•   -v : modo verbose que exibe todas as respostas do servidor remoto bem como relatório
       estatístico da transferência de dados.
   •   -d : habilitar o modo de depuração.

Comandos de Conexão:
  • open host [port] : estabelecer uma conexão com um servidor ftp específico. Um número de
     porta pode ser opcionalmente fornecido.
  • user user-name [password] [account] : identifica você mesmo para o servidor ftp remoto.
     Se a senha não for especificada, o servidor irá requerê-la.
  • account [passwd] : fornece uma senha suplementar requerida para acesso a um sistema
     remoto para acesso aos recursos, uma vez que o login tenha sido completado com sucesso.
  • close / disconnect : terminar a sessão ftp com o servidor remoto e retornar ao interpretador
     de comandos.
  • bye / quit : terminar uma sessão ftp com o servidor remoto e fechar o ftp.

Comandos de Manipulação de arquivos e diretórios:
  • append local-file [remote-file] : anexar um arquivo local para um arquivo na máquina
     remota.
  • delete remote-file : excluir o arquivo remoto na máquina remota.
  • mdelete [remote-files] : excluir os arquivos remotos na máquina remota.
  • mkdir directory-name : criar um diretório na máquina remota.
  • mls remote-files local-file : exibir uma lista do conteúdo de vários diretórios na máquina
     remota.
  • cd remote-directory : alterar o diretório de trabalho na máquina remota para remote
     directory.
  • lcd [directory] : alterar o diretório de trabalho na máquina local.
  • get remote-file [local-file] : recuperar o arquivo remoto e armazená-lo na máquina local. Se
     o nome local não for especificado, usa-se o mesmo nome no diretório atual.
  • mget remote-files : recuperar vários arquivos da máquina remota e armazená-los na
     máquina local.
  • newer file-name [local-file] : recuperar um arquivo somente se a data de modificação do
     mesmo na máquina remota for mais recente do que a data de modificação no sistema atual.
  • put local-file [remote-file] : armazenar um arquivo local no servidor remoto.
  • mput local-files : colocar vários arquivos da máquina local na máquina remota.
  • send local-file [remote-file] : armazenar um arquivo local no servidor remoto.
  • rename [from] [to] : renomear um arquivo da máquina remota.
  • rmdir directory-name : excluir um diretório da máquina remota
  • recv remote-file [local-file] : recuperar o arquivo remoto e armazená-lo na máquina local.
     Se o nome local não for especificado, usa-se o mesmo nome no diretório atual.
  • ls [remote-directory] [local-file] : exibir uma lista do conteúdo de um diretório na máquina
     remota.
  • dir [remote-directory] [local-file] : imprimir uma lista do conteúdo do diretório remoto e,
     opcionalmente, colocar a saída em um arquivo local.
  • mdir remote-files local-file : igual ao dir, exceto pelo fato de aceitar vários diretórios a
     serem exibidos da máquina remota.
  • nlist [remote-directory] [local-file] : exibir uma lista dos arquivos do diretório na máquina
     remota e, opcionalmente, gravar a lista em um arquivo local.



                                                                                              25
Comandos para Informações:
  • verbose : alterar para o modo verbose. No modo verbose todas as respostas do servidor são
     exibidas.
  • pwd : imprimir o nome do diretório atual de trabalho na máquina remota.
  • remotestatus [file-name] : sem argumentos exibe o status atual da máquina remota. Se um
     arquivo for especificado, mostra o status do arquivo.
  • size file-name : exibir o tamanho de um arquivo na máquina remota.
  • status : mostrar o status atual do ftp.
  • system : exibir o tipo de sistema operacional rodando na máquina remota.
  • help [command] : imprimir uma mensagem informativa sobre o significado de um
     comando.

Comandos para Configurações:
  • ascii : definir o tipo de transferência de arquivos para ASCII. Este é o tipo padrão.
  • bell : faz com que um alarme toque depois que cada comandos de transferência de arquivos
     for completado.
  • binary : definir o tipo de transferência de arquivos para suportar transferência de imangens
     binárias.
  • idle [seconds] : definir o tempo de inatividade no servidor remoto. Se os segundos forem
     omitidos, exibi-se o valor atual configurado.
  • mode [mode-name] : definir o modo de transferência de arquivos. O valor padrão é
     “stream”
  • modtime file-name : mostrar a data da última modificação do arquivo na máquina remota.
  • prompt : alterar para o modo de prompt interativo. Esse é o padrão.
  • type [type-name] : define o tipo de transferência de arquivos. Se nenhum tipo for
     informado, o tipo atual é exibido. O tipo padrão é ASCII.
  • umask [newmask] : definir o umask padrão do servidor remoto. Se um novo valor for
     omitido, o valor atual é exibido.
  • chmod mode file-name : alterar o modo de permissão do arquivo file-name no sistema
     remoto para mode.

telnet – Usado para comunicação interativa com outro host usando o protocolo TELNET.
    • Usado seguindo o modelo: telnet [-l usuário] host porta
    • Funciona normalmente na porta 23.
    • /etc/telnetrc : valores globais de inicialização do telnet.
    • -l : especificar o usuário a ser usado na máquina remota.

Alguns comandos do telnet:
   • close : fecha a conexão com o host remoto.
   • logout : desconecta a sessão do usuário, sem fechar a conexão com o host.
   • open host : abrir uma conexão com o host, quando não o for feito pela linha de comando.
   • exit : fechar qualquer conexão e encerra o telnet.
   • status : mostrar o estado atual do telnet.

host – Utilitário de pesquisa DNS. Usado normalmente para converter nomes em endereços IP e
vice versa.
    • Utiliza o arquivo /etc/resolv.conf para definir o servidor DNS a ser utilizado na pesquisa.



                                                                                               26
host [opções] nome [servidor]

       Exemplo

       host www.google.com

dig – Utilitário de pesquisa DNS – mostra o formado dos pacotes DNS de resposta. Funciona como
uma ferramenta flexível para interrogar servidores DNS. Ele faz pesquisas de nomes e mostra as
respostas que são enviadas do servidor de nomes que é questionado.

       dig [@ip.do.servidor] nome tipo

   •   Os tipos que podem ser usados são: ANY, A, MX, SIG, etc.
   •   Servidores de nomes são definidos na RFC 1035.

ping – Enviar pacotes ECHO_REQUEST ICMP para hosts de rede.
   • -b : permitir pings para endereços broadcast.
   • -c : especificar o número de pacotes a ser enviado.
   • -f : flood ping. Zero de intervalo entre pacotes.
   • -i : definir o intervalo entre o envio de pacotes.
   • -q : não exibir a saída de cada pacote. Quiet.
   • -s : definir o tamanho dos pacotes. O padrão é 56 que se transformam em 64 com os 8 bytes
       do cabeçalho ICMP.

traceroute – Imprime a rota dos pacotes da máquina local até uma rede de destino.
    • -I : usar pacotes ICMP ECHO para os testes
    • -T : usar pacotes TCP SYN para os testes
    • -i : especificar a interface pela qual os pacotes serão enviados
    • -s : escolher um IP de origem alternativo.

tracepath – Traça o caminho para um host da rede, descobrindo o MTU ao longo deste caminho.
Usa-se uma porta UDP aleatória ou definida pelo usuário. É similar ao traceroute mas não requer
privilégios de root.
    • -b : imprimir o nome do host e o endereço IP. O padrão é apenas o nome.
    • -n : mostrar apenas o endereço IP para identificar os hosts.

tcpdump – Capturar o tráfego de uma rede. Mostra uma descrição do conteúdo dos pacotes que
passam por uma interface de rede.
   • -A : imprimir cada pacote em ASCII.
   • -B : definir o tamanho do buffer de captura.
   • -c : número de pacotes a serem capturados.
   • -i : especificar a interface a ser monitorada.
   • -n : não converter endereços em nomes.

Algumas opções para filtro do tcpdump:
   • dst host endereço.do.host : captura apenas pacotes com o endereço de destino especificado.
   • src host endereço.do.host : captura apenas pacotes com o endereço de origem especificado.
   • host endereço.do.host : pacotes de ou para o host especificado.
   • dst net rede : definir a rede de destino

                                                                                            27
•   src net rede : definir a rede de origem
   •   net rede : definir uma rede relacionada, de origem ou destino
   •   dst port porta : porta de destino
   •   src port port : porta de origem
   •   port port : porta relacionada, de origem ou destino
   •   less tamanho : pacotes menores que um determinado tamanho
   •   greater tamanho : pacotes maiores que um determinado tamanho
   •   tcp, udp, icmp : definir o protoco dos pacotes a serem capturados.

                       Configuração Básica de Rede
/etc/hostname – Definir o nome de rede da máquina local.

hostname – Mostra ou altera o nome do host.

/etc/hosts – Tabela estática de pesquisa para nomes de host. Este é um arquivo de texto simples que
associa endereços IP com hostnames.
    • Formato: endereço.IP hostname [aliases]

/etc/networks – Semelhante ao hosts, atribui nomes à números de redes.

/etc/resolv.conf – Arquivo de configuração do resolvedor de nomes do sistema.
    • nameserver : endereço de um servidor de nomes que será usado para resolver pesquisas.
    • domain : especifica o nome de domínio.
    • search : definir uma lista de busca

/etc/nsswitch.conf - Sistema de bancos de dados e arquivo de configuração Name Service Switch.
Define a forma de busca de vários bancos de dados de funcionalidades do sistema.
    • Aceita os seguintes bancos de dados: aliases, ethers, group, hosts, netgroup, networks,
        passwd, protocols, publickey, rpc, services, shadow
    • Os tipos de pesquisa suportados são:
        ◦ compat : utiliza arquivos do sistema
        ◦ dns : resolução por servidores de nomes
        ◦ nis : utiliza o serviço nis

ifconfig – Configura uma interface de rede. É usado durante o boot para configurar a maioria delas
para um estado usável. Se nenhum argumento for informado, ifconfig somente mostra o estado das
interfaces correntemente definidas.

       ifconfig eth0 10.0.0.10 netmask 255.0.0.0 up

   •   up : causa a ativação da interface.
   •   down : causa a desativação da interface.
   •   mtu : configura o tamanho da unidade máxima de transferência (MTU) para a interface.
   •   netmask : configura a máscara de rede.
   •   broadcast : especifica o endereço de broadcast.
   •   hw : configura o endereço de hardware (mac).


                                                                                                28
ifup – Ativar uma interface de rede.
    • -a : ativar todas as interfaces de rede.
    • /var/run/network/ifstate – estado atual das interfaces de rede.
    • Pode ser usada para criar aliases para as interfaces de rede.

       ifup eth0=home

ifdown – Desativar uma interface de rede.
    • -a : desativar todas as interfaces de rede.

route – Mostra e manipula tabelas de roteamento IP.
   • add e del são usados juntamente com -net ou -host (exemplo: route add -net 127.0.0.0)
   • -n : mostra endereços numéricos, sem tentar resolver nomes.
   • del : remove uma rota
   • add : adiciona uma rota
   • -net : o alvo é o endereço de uma rede
   • -host : o alvo é o endereço de um host
   • gw : quaisquer pacotes IP para a rede/máquina destino serão roteadas através do
       gateway/roteador especificado.

netstat - Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões
mascaradas. Você pode ver o estado das conexões de rede através da listagem dos sockets abertos.
   • -r / --route : obter as tabelas de roteamento do kernel.
   • -i / --interfaces : mostrar uma tabela de todas as interfaces.
   • -s / --statistics : Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que são
       lidas a partir de /proc/net/snmp.
   • -n : mostrar endereços numéricos, sem tentar resolver nomes.

      Executar Tarefas de Administração de Segurança
find : Procura por arquivos em uma hierarquia de diretórios.
    • -perm : Especificar a permissão para os arquivos que se busca.
    • -L : Aceitar links simbólicos.
    • -mount : Não buscar em diretórios de outros sistemas de arquivos
    • -empty : Buscar arquivos vazios
    • -executable : Buscar arquivos executáveis
    • -group : Arquivos pertencentes a um determinado grupo
    • -name : Procurar arquivos pelo nome
    • -readable : Arquivos com permissão de leitura
    • -size : Definir o tamanho do arquivo. Pode ser antecedido por + ou – para indicar maior que
        ou menor que o tamanho especificado. find / -size +10M (k | M | G)
    • -type : Arquivos por tipo. D – diretórios, F – Regurar e L – link simbólico
    • -writable : Arquivos com permissão de escrita

Para buscar todos arquivos com suid definido:

       find / ­perm ­u=rws



                                                                                                29
(dar ênfase as opções de mudança de idade das senhas)
passwd - mudar a senha de uma conta de usuário. Um usuário normal somente pode alterar a senha
para sua própria conta, o super-usuário pode mudar a senha de qualquer conta. O usuário primeiro é
questionado sobre sua senha atual, o super-usuário não precisa informar a senha atual.
    • -a : usado juntamente com -S, mostra informações sobre todos usuários.
    • -d / --delete : deletar uma senha de usuário.
    • -e / --expire : expira imediatamente a senha de uma conta. Isto força o usuário a mudar a
       sua senha no próximo login.
    • -i / --inactive dias : esta opção é usada para desabilitar uma conta depois que a senha
       houver expirado por um número de dias.
    • -l / --lock : trava a senha para uma conta. Não desabilita a conta, apenas o uso de senha.
    • -m / --mindays : definir o número de dias mínimo entre alterações de senhas.
    • -S / --status : mostra informações de estado da conta. Consiste em 7 campos.
    • Nome de login
    • Indica se a conta está travada (L), se tem senha definida (NP) ou se tem uma senha usável
       (P)
    • Data da última modificação
    • Idade mínima, idade máxima, período de alerta e período de inatividade, expressos em dias.
    • -u / --unlock : destravar a senha da conta de usuário.
    • -w / --warndays : definir o número de dias para o período de alerta.
    • -x / --maxdays : definir o número máximo de dias que uma senha continua válida.

chage - mudar as informações de expiração da senha do usuário. Chage [opções] [login]. Muda o
número de dias entre alterações de senhas, e a data da última alteração da senha. Usado pelo sistema
para determinar quando um usuário deve alterar sua senha.
    • -d / --lastday dia : definir a data quando a senha foi alterada. A data pode ser expressa
       noformato YYYY-MM-DD.
    • -E / --expiredate : definir a data quando a senha da conta de usuário irá expirar.
    • -I / --inactive : definir o número de dias de inatividade desde que a senha tenha expirado até
       que a conta seja trancada.
    • -l / --list : mostrar informações sobre a idade das contas.
    • -m / --mindays : definir o número mínimo de dias para alterar a senha.
    • -M / --maxdays : definir o número máximo de dias durante os quais a senha é válida.
    • -W / --warndays : definir o número de dias do período de alerta até que uma alteração de
       senha seja exigida.

lsof – Listar os arquivos abertos. Um arquivo aberto pode ser um arquivo regular, um diretório, um
arquivo de bloco especial, entre outros.
    • Exemplo, saber um arquivo de texto aberto: lsof | grep .odt

nmap – (Network Mapper) Ferramenta de exploração da rede e escaner de portas para segurança.
Utilizado principalmente para auditorias de segurança. A saída do nmap é uma lista dos alvos
escaneados, com informações suplementares que dependem de cada opção utilizada.
    • Especificação de alvo
        ◦ -iL <inputfilename> : Entrada de uma lista de hosts/redes
        ◦ -iR <num hosts> : Escolhe alvos aleatórios
        ◦ --exclude <host1[,host2][,host3],...> : Excluir hosts da redes
        ◦ --excludefile <exclude_file> : Lista de exclusão de arquivo

                                                                                                 30
•   Descoberta de host
    ◦ -SL : List Scan - metas simplesmente uma lista de verificação
    ◦ -sL : List Scan - lista de verificação
    ◦ -sP : Ping Scan - determinar se o host está online
    ◦ -P0 : Tratar todos os hosts como online - skip descoberta de hosts
    ◦ -PS[portlist] : TCP SYN descobre dados das portas
    ◦ -PA[portlist] : TCP ACK descobre dados das portos
    ◦ -PU[portlist] : UDP descobre dados das portas
    ◦ -PE : ICMP echo request descobre perdido (Descobre pacotes icmp perdidos)
    ◦ -PP : timestamp reques descobre perdido
    ◦ -PM : netmask request descobre perdido
    ◦ -n/-R : Never/Always às vezes resolver DNS padrão
    ◦ --dns-servers <serv1[,serv2],...> : Especificar servidores DNS personalizado
    ◦ --system-dns : Resolver dns do SO´s
•   Técnicas de escaneamento
    ◦ -sS : TCP SYN Scan
    ◦ -sT : Connect Scan
    ◦ -sA : ACK Scan
    ◦ -sW : Windows Scan
    ◦ -sM : Maimon scan
    ◦ -sN : TCP Null, scan
    ◦ -sF : FIN Scan
    ◦ -sX : Xmas Scan
    ◦ --scanflags <flags> : Customize TCP scan flags
    ◦ -sI <zombie host[robeport]> : Idlescan
    ◦ -sO : IP protocol scan
    ◦ -b <ftp relay host> : FTP bounce scan
•   Especificação de Portas e Ordem de Scan
    ◦ -p <port ranges (faixas)> : Escaneia apenas as portas especificadas
    ◦ -F : Fast - Escaneia apenas as portas listados no arquivo nmap-services
    ◦ -r : Escaneia portas consecutivamente - não aleatoriamente
•   Detecção de versão/serviço
    ◦ -sV : Probe abrir portas determinar serviço de informação / versão
    ◦ --version-intensity <level> : Set de 0 (claro) a 9 (tentar todas as sondas)
    ◦ --version-light : Limite para as sondas mais provável (intensidade 2
    ◦ --version-all : Experimente todas as sondagens (intensidade 9)
    ◦ --version-trace : Mostrar versão detalhada verificação de atividade (para depuração)
•   Detecção de SO
    ◦ -O : Ativar a detecção de SO
    ◦ --osscan-limit : Limite de detecção de SO a alvos promissores
    ◦ --osscan-guess : Guess OS de forma mais agressiva
•   Calendário e desempenho
    ◦ Opções que tomar <hora> são em milissegundos, a menos que você adicione 's'
       (segundos), 'm' (minutos), ou 'h' (horas) para o valor (por exemplo, 30m).
    ◦ -T[0-5] : definir modelo de calendário (mais alto é mais rápido)
    ◦ --min-hostgroup/max-hostgroup <size> : Parallel host scan group sizes


                                                                                       31
◦ --min-parallelism/max-parallelism <time> : Probe parallelization
       ◦ --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time> : Especifica o tempo de
          ida e volta.
       ◦ --max-retries <tries> : Caps número de retransmissões de sondagens de scan de portas.
       ◦ --host-timeout <time> : Dê-se no alvo após este tempo
       ◦ --scan-delay/--max-scan-delay <time> : Ajuste o atraso entre sondagens
   •   Firewall/IDS Evasion e Spoofing
       ◦ -f; --mtu <val> : fragmentar pacotes (opcionalmente w / dado MTU)
       ◦ -D <decoy1,decoy2[,ME],...> : Disfarça um scan com chamarizes
       ◦ -S <IP_Address> : Disfarça o endereço de origem
       ◦ -e <iface> : Usa a interface especificada
       ◦ -g/--source-port <portnum> : Use o número de determinada porta
       ◦ --data-length <num> : Acrescenta dados aleatórios nos pacotes enviados
       ◦ --ttl <val> : Defina o campo IP time-to-live
       ◦ --spoof-mac <mac add/prefix/vendor name> : Disfarça o endereço MAC
       ◦ --badsum : Enviar pacotes TCP/UDP com um falso checksum
   •   Output
       ◦ -oN <file> : Saída de digitalização em formato normal
       ◦ -oX <file> : Saída de digitalização em formato XML
       ◦ -oS <file> : Saída digitalizar S|<rlpt kIddi3 formato
       ◦ -oG <file> : Saída de digitalização em formato grep
       ◦ -oA <basename> : Saída em três principais formatos de uma só vez
       ◦ -v : nível de verbosidade (uso duas vezes por mais efeito)
       ◦ -d[level] : Ajusta ou aumentar o nível de depuração (até 9)
       ◦ --packet-trace : Mostrar todos os pacotes enviados e recebidos
       ◦ --iflist : nterfaces de impressão do host e rotas (para depuração)
       ◦ --log-errors : Log de erros / avisos para a saída em formato de arquivo normal
       ◦ --append-output : Acrescentar ao invés de sobrepor especificado arquivos de saída
       ◦ --resume <filename> : Continuar um scan abortado
       ◦ --stylesheet <path/URL> : folha de estilo XSL para transformar a saída XML para
          HTML
       ◦ --webxml : Referência de estilo de Insecure.Org para XML mais portátil
       ◦ --no-stylesheet : Evitar associação de estilo XSL w / saída XML
   •   Misc
       ◦ -6 : Ativar varredura IPv6
       ◦ -A : Permite a detecção de SO e detecção de versão
       ◦ --datadir <dirname> : Especificar os dados personalizados Nmap localização do
          arquivo
       ◦ --send-eth/--send-ip : Enviar usando frames ethernet em estado bruto ou pacotes IP
       ◦ --privileged : Suponha que o usuário é altamente privilegiado
       ◦ -V : número de versão de impressão
       ◦ -h : Imprima esta página de resumo de ajuda.

O programa sudo tem o propósito da segurança e serve essencialmente para executar um comando
como outro usuário. Tipicamente usado para atribuir a usuários comuns poderes para tarefas
administrativas sem precisarem da senha do root.
   • As permissões de acesso e definições são feitas no arquivo /etc/sudoers

                                                                                           32
•   Se um usuário não listado no arquivo /etc/sudoers tentar executar um comando via sudo, um
       e-mail é enviado para o responsável definido no arquivo sudoers, por padrão o root.

sudo – executar um comando como outro usuário.
   • -b : executar um comando em background
   • -E : preservar o sistema, incluindo variáveis
   • -e : ao invés de executar um comando, editar um arquivo. O mesmo que sudoedit.
   • -h : help, imprime uma mensagem de uso
   • -i : simula um login inicial. Essa opção roda o shell especificado em /etc/passwd.
   • -L : lista as opções padrão do sudo
   • -l : mostra quais comandos o usuário pode rodar
   • -s : usa um shell específico.
   • -u : faz o usuário rodar um comando como outro usuário que não o root

sudoedit – editar um arquivo como outro usuário.

/etc/sudoers – arquivo de configuração do sudo, lista os privilégios de cada usuário, definindo
quem pode rodar o que e onde. Possui quatro seções explicadas na tabela a seguir.
    • Este arquivo deve pertencer ao usuário root e ter a permissão 440

       Seção    Objeto                                 Descrição
          1    Hosts       Sintaxe: Host_Alias IDENTIFICADOR = endereco
                           Utilizado para definir os grupos de hosts que serão utilizados nas
                           restrições.
                           Exemplo: Host_Alias LOCAL = localhost, 127.0.0.1
          2    Usuários    Sintaxe: User_Alias IDENTIFICADOR = usuarios
                           Utilizado para definir os grupos de usuários que serão utilizados
                           nas restrições.
                           Exemplo: User_Alias ADMIN = yuri
          3    Comandos Sintaxe: Cmnd_AliasIDENTIFICADOR = comandos
                        Utilizado para definir grupos de comandos que serão utilizados
                        nas restrições.
                        Exemplo: Cmnd_Alias DESLIGAR = /sbin/shutdown -h now
          4    Restrições Sintaxe: USUARIO COMPUTADOR = COMANDOS
                          Define as restrições de acesso dos usuários. Mistura-se aqui os
                          identificadores das seções anteriores à fim de montar regras que
                          definam os acessos.
                          Exemplo: ADMIN LOCAL = DESLIGAR

su – Alterar o ID de usuário ou tornar-se super-usuário. Usado para se tornar outro usuário durante
a sessão. Invocado sem argumentos, o su por padrão tentar tornar-se super-usuário.
    • -c : especificar um único comando a ser executado com a identidade de outro usuário.
    • -s : especificar o shell a ser utilizado com a nova identidade.
    • -p : preservar o sistema e suas variáveis.

ulimit – Obter e definir os limites de usuários. Impôr limites aos utilizadores a nivel de numero de
processos em execuçao, quotas de memoria, quotas de espaço em stack, numero de arquivos


                                                                                                  33
abertos, etc.
   • -c : Core file em blocos de 512 bytes
   • -d : Segmento de dados em Kbytes
   • -f : Tamanho maximo de cada ficheiro em blocos de 512 bytes
   • -n : Numero maximo de filedescriptor + 1
   • -s : Stack em Kbytes
   • -t : Tempo de CPU em segundos
   • -v : Tamanho maximo de memoria virtual em Kbytes. ?
   • -m : Tamanho maximo de memoria
   • -u : Numero maximo de processos
   • -p : Tamanho para pipes em blocos de 512
   • -S : Impoe o soft limit
   • -H : Impoe o hard limit
   • -a : Nostra os limits correntemente aplicados

                 Configuração de Segurança do Host
/etc/nologin – Previnir usuários sem privilégios de se logarem no sistema. Se o arquivo existir, o
login será permitido apenas ao root, nenhum outro usuário poderá se logar no sistema.

nologin – Recusar o login de forma educada. Mostra uma mensagem dizendo que a conta não está
disponível atualmente.

xinetd - O xinetd é responsável por vários serviços básicos de um sistema disponibilizados em uma
rede. Muitos serviços de rede são implementados através de processos dedicados que esperam por
requisições que chegam da rede. Mas dada a razoável quantidade de serviços, um esquema
interessante foi implantado. Neste esquema, um único processo, chamado xinetd (Extend Internet
Super Server), rodando na máquina que está oferecendo os serviços de rede, é responsável por
escutar as requisições que chegam, e conforme a porta por onde chega à requisição, disparar e
executar o processo correspondente àquele serviço.
    • O xinetd carrega seu arquivo de configuração e passa a “ouvir” por conexões em portas
        específicas. Quando uma conexão é solicitada, o xinetd executa o programa servidor
        correspondente para manipular o serviço solicitado. Então, desta forma, existirá apenas um
        servidor em memória esperando por uma solicitação.
    • O superservidor ou xinetd é configurado para iniciar a sua execução quando o sistema é
        inicializado, recebendo a lista de serviços a serem monitorados a partir de um arquivo
        denominado /etc/xinetd.conf

Configuração do /etc/xinetd.conf:
   • As configurações inseridas dentro da sessão defaults serão aplicadas para todos os outros
      serviços configurados.

       defaults
       {
             instances = 25   //número de conexões simultâneas.
             per_source = 10 //máximo de conexões de uma mesma máquina.
             log_type = SYSLOG authpriv
             log_on_success = HOST PID USERID
             log_on_failure = HOST RECORD USERID


                                                                                               34
}

       service telnet
       {
             flags = REUSE //Repassa as opções para o daemon
             log_type = FILE /var/log/telnet.log
             socket_type = stream //Tipo de soquete. Dgram, stream e raw
             protocol = tcp
             wait = no
             user = root
             server = /usr/sbin/in.telnetd //Daemon do serviço.
             bind = 200.1.1.20 //Definindo a origem para redirecionamentos.
             redirect = 192.168.1.111 23 //máquina que receberá a requisição.
             only_from = 192.168.1.0/24 //Limita o acesso ao serviço.
       }

O inetd é chamado de Super-Servidor Internet porque ele gerencia conexões para diversos
daemons. O inetd atua como um servidor gerenciador para outros daemons. Quando uma conexão é
recebida pelo inetd, ele determina para qual daemon a conexão é destinada e executa o daemon
correspondente e a ele delega o socket. Executar uma instância do inetd reduz a carga no sistema de
forma geral, comparado a se executar cada daemon individualmente.
    • Ser arquivo de configuração é definido em /etc/inetd.conf
    • daytime, time, echo, discard, chargen, e auth são todos serviços fornecidos internamente
       pelo inetd.
    • -d : Ativa a depuração.
    • -l : Ativa o registro das conexões bem sucedidas.
    • -w : Ativa o encapsulamento TCP para serviços externos (ativado por padrão).
    • -W : Ativa o encapsulamento do TCP para serviços internos que são embutidos no inetd
       (ativado por padrão).
    • -c máximo : Especifica o número máximo padrão de invocações simultâneas de cada
       serviço; o padrão é ilimitado. Pode ser anulado em cada serviço com o parâmetro max-child.
    • -C taxa : Especifica o número máximo padrão de vezes que um serviço pode ser invocado a
       partir de um único endereço IP em um minuto; o padrão é ilimitado.
    • -R taxa : Especifica o número máximo de vezes que um serviço pode ser invocado em um
       minuto; o padrão é 256. Uma taxa de 0 permite um número ilimitado de invocações.
    • -p : Especifica um arquivo alternativo para armazenar o ID do processo.

Configuração do /etc/inetd.conf:
   • Cada linha do arquivo de configuração especifica um daemon individual. Formato padrão

       nome­do­serviço
       tipo­de­socket
       protocolo
       {wait|nowait}[/max­de­filhos[/max­de­conexões­por­ip­por­minuto]]
       usuário[:grupo][/classe­de­login]
       programa­servidor
       argumentos­do­programa­servidor

       Exemplo:

       ftp stream tcp nowait root /usr/libexec/ftpd ftpd ­l
       telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd


                                                                                                35
init - O init é sempre o primeiro processo do sistema (o seu número de processo é sempre igual a 1).
    • Seu principal papel é criar processos de um script guardado em /etc/inittab
    • Um runlevel é uma configuração de softwares do sistema que permite que apenas um grupo
        selecionado de processos exista.
    • Existem 8 runlevels, de 0 a 6 e S.
    • O programa telinit permite alterar o runlevel em execução.
    • Os runlevels S, 0, 1 e 6 são reservados.
        ◦ S : Inicializar o sistema.
        ◦ 0 : Desligar
        ◦ 1 : Mono-usuário
        ◦ 2 : Multiusuário, sem NFS
        ◦ 3 : Multiusuário completo
        ◦ 4 : Não usado
        ◦ 5 : X11
        ◦ 6 : Reinicializar

Depois que o init é invocado na última fase da sequência de boot do kernel, ele procura o arquivo
/etc/inittab e busca uma entrada do tipo initdefault que determina o runlevel inicial do sistema.
    • Uma entrada no /etc/inittab tem o seguinte formato:

       ID : RUNLEVELS : ACTION : PROCESS

       Exemplo ­ iniciar o Tomcat

       tom:23:respawn:su ­­c "/usr/java/tomcat/bin/catalina.sh run ­security" 
       >/dev/null 2>&1

Em um sistema Debian temos a configuração do init no arquivo /etc/inittab. Nos diretórios
/etc/init.d/rcN.d ficam localizados links simbólicos para os scripts que estão fisicamente gravados
em /etc/init.d/, onde este "N" do "rcN.d" indica o número do runlevel em que o script ou daemon
será executado.
    • No diretório /etc/init.d ficam guardados os scrips para os processos a serem executados na
         inicialização do sistema.

TCPWrappers é um programa utilizado para filtrar e monitorar as requisições feitas para os
daemons de serviços controlados pelo inetd (FINGER, FTP, TELNET, RLOGIN, RSH, EXEC,
TALK e outros) e caso a conexão seja permitida, o controle da mesma é repassado para o daemon
verdadeiro.
   • O TCPWrappers também mantém um log com todas as informações a respeito da conexão
       (horário, origem e daemon requisitado).
   • O controle de acesso é feito através dos arquivos: /etc/hosts.allow (Hosts com acesso
       permitido) e /etc/hosts.deny (Hosts com acesso negado).
   • Para que o TCPWrappers passe a controlar as conexões a estes daemons, deve-se editar o
       arquivo /etc/inetd.conf, substituindo-se a referência ao daemon original por uma referência
       ao daemon do TCPWrappers.

       /etc/inetd.conf sem TCPWrappers:
       telnet stream tcp nowait root /usr/sbin/telnetd telnetd



                                                                                                 36
/etc/inetd.conf com TCPWrappers:
       telnet stream tcp nowait root /usr/sbin/tcpd telnetd

A sintaxe, tanto para o arquivo hosts.allow quanto hosts.deny possuem o seguinte formato:

       daemon : cliente [:opção1:opção2:...]

       Exemplo

       sshd : ALL
       ALL : ALL
       sshd : .example.com : severity local0.alert

Você pode usar coringas na seção cliente da regra para classificar amplamente um conjunto de
computadores. A seguir, os coringas válidos que podem ser usados:
   • ALL : Casa com tudo
   • LOCAL : Casa com qualquer computador que não contenha um ponto ("."), como por
      exemplo, localhost.
   • KNOWN : Casa com qualquer host em que seu nome e endereço sejam conhecidos ou em
      que o usuário é conhecido.
   • UNKNOWN : Casa com qualquer host em que o nome ou endereço são desconhecidos ou
      em que o usuário seja desconhecido.
   • PARANOID : Casa com qualquer computador em que o nome não bate com seu endereço.

               Protegendo os Dados com Criptografia
SSH é um programa para conectar e executar comandos em uma máquina remota. Ele tem o
propósito de prover comunicação criptografada segura entre dois hosts não seguros sobre uma rede
insegura. Conexões X11 e portas Tcp arbitrárias podem ser repassadas dentro do canal seguro.
    • Se o comando for especificado, ele é executado no host remoto sem autenticar no shell
    • http://www.openssh.com/

ssh [-l login] [-o option] [-p porta] [usuario@] hostname [comando]
    • ~/.ssh/config : arquivo de configuração do cliente.
    • -C : requisita a compressão de todos os dados, utiliza o algoritmo do gzip.
    • -F arquivo : especificar um arquivo de configuração alternativo.
    • -g : permitir aos hosts remotos a conectarem às portas locais encaminhadas.
    • -i arquivo : selecionar um arquivo com a chave privada para autenticação RSA ou DSA.
    • -l login : especificar o usuário para logar na máquina remota.
    • -N : não executar comandos remotos. Útil somente para portas encaminhadas.
    • -p porta : porta para conectar ao host remoto.
    • -q : Modo silencioso. A maioria das mensagens de alerta e diagnóstico são suprimidas.
    • -v : Modo verbose. Faz o ssh imprimir mensagens de depuração.
    • -X : habilitar encaminhamento X11.
    • -x : desabilitar encaminhamento X11.

A autenticação baseada em host trabalha como se segue:
   1. Verificação se o usuário existe em /etc/hosts.equiv ou /etc/ssh/shosts.equiv da máquina
      remota e se o usuário é o mesmo dos dois lados.


                                                                                              37
Linux Professional
Linux Professional
Linux Professional

Weitere ähnliche Inhalte

Was ist angesagt?

Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1Felipe Santos
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell ScriptHugo Maia Vieira
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell ScriptLuís Eduardo
 
Curso de Shell Script 05/11
Curso de Shell Script 05/11Curso de Shell Script 05/11
Curso de Shell Script 05/11Rodrigo Silva
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3Felipe Santos
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à ShellscriptVinícius Hax
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Pessoal
 

Was ist angesagt? (12)

Curso shell
Curso shellCurso shell
Curso shell
 
Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Shell script
Shell scriptShell script
Shell script
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Curso de Shell Script 05/11
Curso de Shell Script 05/11Curso de Shell Script 05/11
Curso de Shell Script 05/11
 
Aula4
Aula4Aula4
Aula4
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
 

Ähnlich wie Linux Professional

Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellportal_Do_estudante
 
Lab so-abertos-unidade15
Lab so-abertos-unidade15Lab so-abertos-unidade15
Lab so-abertos-unidade15Leandro Almeida
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comandoSoftD Abreu
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandosIvan Ribeiro
 
Oficina shell
Oficina shellOficina shell
Oficina shellapsegundo
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power toolsArmando Reis
 
Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxTchelinux
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosLuiz Arthur
 
01 apostila-introducao-shell
01   apostila-introducao-shell01   apostila-introducao-shell
01 apostila-introducao-shellvinicius caldeira
 

Ähnlich wie Linux Professional (20)

Linux shell
Linux shellLinux shell
Linux shell
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shell
 
Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
Shell Script Linux
Shell Script LinuxShell Script Linux
Shell Script Linux
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Lab so-abertos-unidade15
Lab so-abertos-unidade15Lab so-abertos-unidade15
Lab so-abertos-unidade15
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comando
 
Introdução ao bash
Introdução ao bashIntrodução ao bash
Introdução ao bash
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power tools
 
Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves Hax
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
 
01 apostila-introducao-shell
01   apostila-introducao-shell01   apostila-introducao-shell
01 apostila-introducao-shell
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 

Linux Professional

  • 2. SUMÁRIO EXAME 102........................................................................................................................................2 Customizar e usar o ambiente shell.................................................................................................2 Customizar ou escrever scripts simples...........................................................................................3 Gestão de Dados SQL......................................................................................................................6 Instalar e Configurar o X11.............................................................................................................6 Configurar um Gerenciador de Janelas............................................................................................9 Acessibilidade................................................................................................................................10 Tarefas Administrativas.................................................................................................................10 Automação com Agendamento de Tarefas....................................................................................14 Localização e Internacionalização.................................................................................................15 Manter a Hora do Sistema.............................................................................................................17 Log de Sistema...............................................................................................................................20 Agente de Transferência de E-mail (MTA)...................................................................................21 Gerenciar Impressoras e Impressão...............................................................................................22 Fundamentos de Protocolos da Internet.........................................................................................23 Configuração Básica de Rede........................................................................................................27 Executar Tarefas de Administração de Segurança.........................................................................28 Configuração de Segurança do Host..............................................................................................33 Protegendo os Dados com Criptografia.........................................................................................36 2
  • 3. EXAME 102 Customizar e usar o ambiente shell /etc/profile – Contém várias definições para o perfil de todo o sistema. Este arquivo é lido antes do arquivo de configuração pessoal de cada usuário. Tipicamente contém a definição da variável PS1 e do umask para todos os usuários. Quando o sistema é carregado, o bash procura estes arquivos em seqüência e executa os comandos contidos, caso existam: 1. /etc/profile 2. ~/.bash_profile 3. ~/.bash_login 4. ~/.profile Após o /etc/profile, o bash pesquisa no diretório do usuário na ordem especificada acima e interrompe a pesquisa assim que o primeiro arquivo é encontrado. Ou seja, procura o ~/.bash_profile, se não o achar procura o ~/.bash_login e se não o achar, procura o ~/.profile. Os arquivos ~/.bash_profile, ~/.bash_login e ~/.profile residem no diretório pessoal de cada usuário e dizem respeito à configurações de perfil específicas de cada usuário. São executadas apenas para logins de usuários com shell. • O arquivo ~/.bashrc é executado por shells que não requerem autenticação ~/.hushlogin - Faz o bash pular as mensagens do /etc/motd, exibindo imediatamente o aviso de comando após a digitação da senha. ~/.bash_logout – Arquivo que é lido e executado toda vez que o usuário sai do shell. /etc/motd - O conteúdo de /etc/motd é exibido por login(1) após um login bem sucedido, antes do shell de login ser executado. O "motd" significa "message of the day" ("mensagem do dia"), e tradicionalmente esse arquivo tem sido usado exatamente para isso. Variáveis de ambiente – Variáveis que afetam todo o sistema operacional (ex: PATH). São nomes que contém algum valor e tem a forma Nome=Valor. Para criar uma variável de ambiente basta digitar no shell [nome=valor], para exportá-las para o sistema utilize o comando export. /etc/environment – Arquivo do Debian para definição de variáveis de ambiente que serão automaticamente exportadas para o sistema na iniciaçação do sistema. env – Rodar um programa em um ambiente modificado ou exibir as variáveis de ambiente atualmente definidas. • -i : ignorar as variáveis de ambiente atuais e rodar um comando com o sistema limpo. • -u : remover (unset) uma variável de sistema na execução de um comando. export – Exportar uma variável local para o sistema inteiro. Pode ser usado juntamente com a 3
  • 4. definição da variável (export VARIAVEL=VALOR) ou com uma variável local já definida (export VARIAVEL). set – Mostrar todas as variáveis, incluindo as variáveis locais e de sistema. unset – Destrói a variável especificada, sendo ela local ou de sistema. alias – Permite criar um apelido para um programa ou comando. Por exemplo para alterar o comportamento do comando cp para preservar automaticamente as permissões dos arquivos, utilize alias cp='cp -p' /etc/skel – Esqueleto de diretório pessoal para novos usuários criados. Contém arquivos (tipicamente .bash_profile, .bashrc e .bash_logout) que serão copiados para o diretório pessoal de cada novo usuário criado. Funções – Função é um código escrito para resolver uma pequena parte de um problema. Assim sendo, tem uma “função” na resolução de um problema. No Linux pode ser declarada tipicamente da seguinte forma: function nome_funcao() { comandos; } • Para chamar uma função basta digitar o seu nome. Exemplo: nome_funcao Customizar ou escrever scripts simples Scripts utilizam a habilidade natural do Bash de programação, oferecendo uma linguagem padronizada para escrever-se pequenos programas que resolvam problemas. A linguagem de programação do Bash é muito versátil e permite desde a escrita de programas simples a outros bem complexos. • Os scripts mais simples são simplesmente um agrupamento de comandos. Para criar um script, o código deve ser escrito em um arquivo à parte. Para executá-lo, existem duas formas básicas: 1. Indiretamente, através do comando source. Uma vez o código digitado em um arquivo, invoca-se o script digitando no shell: source arquivo_de_scripts argumentos. O arquivo não precisa ter permissão de execução. 2. Diretamente, utilizando, na primeira linha do script, o construtor she-bang e dando permissão de execução para o script (chmod +x). No shell, chama-se o script digitando ./arquivo_de_scripts. O construtor she-bang constitui-se da seguinte linha: a) #!/bin/bash Para utilizar parâmetros passados para scripts Bash, basta leras as variáveis numéricas $1, $2, $3, etc, que significam sucessivamente o primeiro parâmetro, o segundo, o terceiro e assim por diante. • Para listar todos os parâmetros de uma vez, utiliza-se $* Exemplo de um pequeno script para procurar arquivos com uma determinada string no diretório atual: #!/bin/bash find ­name “*$1” Algumas variáveis especiais que podem ser utilizadas dentro de scripts Bash: 4
  • 5. $0 – Nome do programa • $# - Quantidade de parâmetros passados • $* - Contém o conjunto de todos os parâmetros Condicionais – para fazer comparações condicionais, utiliza-se o construtor if. if [ "a" = "3" ] || [ "a" = "b" ]; then echo "a não é igual a 3 ou b"; elif [ "a" = "c" ] || [ "a" = "d" ]; then echo "a não é igual a c ou d"; else echo "A é diferente de 3,c,b,d"; fi Laços – Laços executam uma certa sequência de comandos até que uma determinada condição seja satisfeita. While #!/bin/bash  CONTADOR=0 while [ $CONTADOR ­lt 10 ]; do echo "Contador em: $CONTADOR"; let CONTADOR=CONTADOR+1;  done For #!/bin/bash for i in $( ls ); do echo item: $i done Until #!/bin/bash  CONTADOR=20 until [ $CONTADOR ­lt 10 ]; do echo CONTADOR $CONTADOR let CONTADOR­=1 done test – Verifica tipos de arquivos ou compara valores. Nos scripts o comando test pode ser omitindo, fornecendo apenas a expressão. #!/bin/bash if ( test ­d $1); then echo “É um diretório”; fi Expressão Significado ( expressão ) Testa se a expressão é verdadeira ( !expressão ) Testa se a expressão é falsa 5
  • 6. Expressão1 -a Expressão2 Testa se ambas as expressões são verdadeiras Expressão1 -o Expressão2 Teste se uma das expressões é verdadeira -n String Se o tamanho da String é maior que zero -z String Se o tamanho da String é zero String1 = String2 Se a String1 é igual à String2 String1 != String2 Se a String1 é diferente da String2 Inteiro1 -eq Inteiro2 Se o Inteiro1 é igual ao Inteiro2 Inteiro1 -ge Inteiro2 Se o inteiro1 é maior ou igual ao Inteiro2 Inteiro1 -gt Inteiro2 Se o inteiro1 é maior que o Inteiro2 Inteiro1 -le Inteiro2 Se o Inteiro1 é menor ou igual ao Inteiro2 Inteiro1 -lt Inteiro2 Se o Inteiro1 é menor que o Inteiro2 Inteiro1 -ne Inteiro2 Se o Inteiro1 não é igual ao Inteiro2 Arquivo1 -ef Arquivo2 Se o Arquivo1 tem o mesmo inode do Arquivo2 Arquivo1 -nt Arquivo2 Se o Arquivo1 é mais recente que o Arquivo2 Arquivo1 -ot Arquivo2 Se o Arquivo1 é mais antigo que o Arquivo2 -d Arquivo Se o Arquivo existe e é um diretório -e Arquivo Se o Arquivo existe -f Arquivo Se o arquivo existe e é do tipo comum -h Arquivo Se o arquivo existe e é um link simbólico -r Arquivo Se o arquivo existe e tem permissão de leitura -s Arquivo Se o arquivo existe e tem tamanho maior que 0 -w Arquivo Se o arquivo existe e tem permissão de escrita -x Arquivo Se o arquivo existe e tem permissão de execução seq – Imprime uma sequência de números. • -s : Usa outro tipo de separador diferente do padrão (n) • seq [opção] último : começa do 1 e vai até o último, de 1 em 1. • seq [opção] primeiro último : começa do primeiro e vai até o último, de 1 em 1 • seq [opção] primeiro incremento último : começa do primeiro e vai até o último, usando o incremento. #!/bin/bash  for i in `seq 10`; do  echo item: $i  done  Substituição de Comandos – O Bash oferece a capacidade de substituir o comando pelo resultado de sua execução. Assim, antes de exibir o comando em si, com a substituição de comandos, exibe-se o resultado da sua execução. Existem duas formas: 1.$(comando) 2.`comando` 6
  • 7. Gestão de Dados SQL SQL (Structured Query Language) - Sql é um conjunto de comandos de manipulação de banco de dados. Inicialmente chamada Sequel – Structured English Query Language. Desenvolvida pela IBM baseada num trabalho de E. F. Codd. 1.Primeira versão comercial lançada em 1975 pela Relational Software Inc. (hoje Oracle) 2.Padronizada pela ANSI e ISO. Primeira versão em 86 (SQL-86) 3.Segunda versão em 89 (SQL-89) utilizada pelos bancos de dados atuais. 4.Em 92 recebe aprimoramentos (SQL-92) 5.Em 1999 surge a SQL-99 (ou SQL3) que define um modelo de Banco de Dados Objeto- Relacional Um banco de dados é um conjunto coerente e lógico de dados relacionados que possuem significância intrínseca. • Uma tabela é um conjunto de linhas e colunas onde as colunas qualificam cada elemento (linha). Entidade – Agrupamento lógico de informações inter-relacionadas necessárias para a execução das atividades do sistema [TABELA]. Atributos – Informações básicas que qualificam uma entidade e descreve seus elementos ou características [COLUNA]. Tupla – Estrutura de atributos intimamente relacionados e interdependentes que residem em uma entidade [LINHA]. Chave – Atributo utilizado para indexar dados: • Primária: Permite identificar uma única ocorrência de uma tupla em uma entidade. • Estrangeira: Atributo que estabelece a relação de uma entidade com a chave primária de outra entidade e permite a relação entre entidades. • Secundária: Utilizada como meio de classificação e pesquisa em entidades. DDL (Data Definition Language) – Permite a criação dos componentes do banco de dados. • CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX. DML (Data Manipulation Language) – Permite a manipulação dos dados armazenados no banco de dados. • INSERT, DELETE, UPDATE DQL (Data Query Language) – Permite extrair dados do banco de dados • SELECT DCL (Data Control Language) – Provê a segurança interna do banco de dados • CREATE USER, ALTER USER, GRANT, REVOKE, CREATE SCHEMA. Instalar e Configurar o X11 7
  • 8. Xorg – Servidor X X11R7. Xorg é um servidor X completo que foi originalmente projetado para sistemas operacionais UNIX e UNIX-like rodando em hardware Intel x86. Agora, ele roda em uma ampla gama de plataformas de hardware e sistema operacional. • X é implementado usando-se um modelo cliente-servidor. Os servidores e clientes X podem ser localizados no mesmo computador ou separados em uma rede, de forma que a computação seja trabalhada separadamente da geração da exibição. /etc/X11/xorg.conf – Arquivo de configuração para o Servidor X Xorg. Composto por um número de seções que podem estar presentes em qualquer ordem, ou omitidas para usar os valores de configuração padrão. Cada seção tem a forma: Section "NomeSecao"  EntradasSecao ...  EndSection  Os nomes das seções são: • Files – Caminhos de arquivos • ServerFlags – Flags de servidor • Module – Carregamento dinâmico de módulos • Extensions – Habilitação de extenções • InputDevice – Descrição de dispositivos de entrada • InputClass – Descrição de classes de entrada • Device – Descrição de dispositivos gráficos • VideoAdaptor – Descrição do adaptador de vídeo • Monitor – Descrição do monitor • Modes – Descrições dos modos de vídeo • Screen – Configuração da tela • ServerLayout – Layout geral • DRI – Configuração específica de DRI • Vendor – Configurações específicas do fornecedor Os seguintes nomes de seção obsoletos são ainda reconhecidos para efeitos de compatibilidade. Nos novos arquivos de configuração, a seção InputDevice deve ser utilizada. • Keyboard – Configuração de teclado • Pointer – Configuração de dispositivo apontador (mouse) xvidtune – Programa usado para fazer ajustes finos nas configurações de vídeo, ajustando a sua exibição de vídeo ao seu monitor. Sem quaisquer opções, se apresenta ao usuário com vários botões e controles deslizantes que podem ser usados para ajustar interativamente modos de vídeo existentes. Ele também irá imprimir as configurações em um formato adequado para a inclusão em um arquivo xorg.conf. X – X é o nome genérico para o servidor de janelas X Window System. É frequentemente um link ou uma cópia do binário do servidor para encaminhar o servidor mais frequentemente usado em uma dada máquina. • O servidor C é usualmente iniciado pelo programa X Display Manager (xdm) ou um programa gerenciador de janelas similar. 8
  • 9. Instalações que rodem mais de um sistema de janelas podem precisar usar o utilitário xinit ao invés do gerenciador de janelas. Contudo, xinit deve ser considerado uma ferramenta para criar scripts de inicialização e não é recomendado para usuários finais. xhost – Programa de controle de acesso para o servidor X. O programa xhost é usado para adicionar ou deletar nomes de hosts ou nome de usuários para a lista de permitidos a fazer conexões com o servidor X. • [+] nome : O nome dado é adicionado à lista de permitidos a se conectarem ao servidor X. O nome pode ser um host ou nome de usuário. • -name : O nome dado é removido da lista de permitidos a se conectarem ao servidor. O nome pode ser um host ou nome de usuário. • + : O acesso é garantido a qualquer pessoa. • - : O acesso é restrito aos nomes da lista de permitidos. • Utiliza o arquivo /etc/X*.hosts xwininfo – É um utilitário para mostrar informações sobre janelas. Se nenhuma opção for passada, assume -stats. O usuário tem a opção de selecionar a janela alvo com o mouse ou de especificar a janela na linha de comando. • -stats : Mostrar vários atributos pertencentes ao local e aparência da janela selecionada. • -size : Mostra o tamanho da janela selecionada. xdpyinfo – É um utilitário para mostrar informações sobre um servidor X. É usado para examinar as capacidades de um servidor. • -display : Informações sobre uma determinada tela. O display do usuário é conseguido através da variável de sistema $DISPLAY. Fontes – O Servidor X pode obter fontes de diretórios ou de servidores de fontes. A lista de diretórios ou de servidores de fonte que o servidor X usa quando tenta abrir uma fonte é contralada pela diretriz font path. • O local padrão para fontes é /usr/share/fonts xfs – Servidor de fontes X. Fornece fontes ao sistema de janelas X. • Arquivo de configuração padrão em /etc/X11/fs/config • A porta padrão é a TCP 7100 • A diretriz catalogue no arquivo de configuração define os diretórios com as fontes fornecidas pelo sistema. mkfontdir – Criar um índice de arquivos de fonte X em um diretório. Para cada diretório, o aplicativo lê todas os arquivos de fonte procurando por propriedades chamadas FONT que serão usadas como nomes de fontes, e, com os nomes dessas fontes, é criado um arquivo fonts.dir no diretório. O servidor X e o servidor de fontes utilizam esse arquivo para achar as fontes do diretório. xfd – Mostrar todos os caracteres de uma fonte. • -fn : Especifica a fonte cujos caracteres serão exibidos. xlsfonts – Listar as fontes do servidor X. • -display : De um monitor em específico. xfontsel – Provê um jeito simples de mostrar as fontes conhecidas pelo servidor X, examinar 9
  • 10. simples amostras de cada uma, e obter uma descrição sobre a mesma. ~/.Xauthority – Arquivo que contém opções para autenticação junto ao servidor X durante a conexão. Só não é usado no caso de controle de acesso baseado no host, que utiliza a aplicação xhost. xset – Utilitário de preferências de usuário para o X. Programa usado para configurar várias preferências de usuário para o display. • -display : Especificar o servidor a ser usado • fp=diretório : Adiciona dinamicamente um diretório de fontes para o sistema X. • +fp : adiciona elementos de fonte do diretório corrente • -fp : remove elementos de fonte do diretório corrente xinit – Inicializador do sistema de janelas X. Usado para iniciar o X Windows Server e o primeiro programa cliente em sistemas que não usam um gerenciador de janelas como o xdm. • Se nenhum programa cliente específico for oferecido na linha de comando, o xinit irá procurar no arquivo ~/.xinitrc • DISPLAY : Variável de sistema que mostra o nome do monitor ao qual o cliente está conectado. startx – Iniciar uma sessão X. O script startx é um front-end para o xinit que fornece um modo mais elegante de iniciar uma única sessão do Sistema X. Pode ser executado sem argumentos. Configurar um Gerenciador de Janelas O gerenciador de janelas é a interface entre o usuário e o servidor X. É praticamente impossível utilizar o ambiente gráfico sem um gerenciador de janelas. O procedimento mais comum para iniciar uma sessão do X é através do comando startx, que chama o script xinit. O script xinit tem dentre suas funções iniciar o servidor X e programas clientes. O gerenciador de janelas é o principal desses clientes. Há o script xinit padrão, localizado em /etc/X11/xinit/xinitrc, mas o mais comum é cada usuário ter seu script xinit personalizado, ~/.xinitrc. Para executar seu servidor X automaticamente na inicialização do sistema e exibir um prompt de login gráfico, você tem que alterar (como root) apenas um caracter no arquivo /etc/inittab . Este arquivo especifica o seguinte: • id:3:initdefault: Altere-o para • id:5:initdefault: Isto faz com que seja definido o nível 5 de execução, o qual é o X-windows. O significado dos diferentes níveis de execução é mostrado no próprio arquivo /etc/inittab : • 0 - halt (Não use o initdefault para este nível de execução) • 1 - Single user mode(modo mono-usuário) • 2 - Multiuser, without NFS (O mesmo que 3, se você não tem rede) • 3 - Full multiuser mode ( modo multiusuário completo) • 4 - unused (não usado) • 5 - X11 10
  • 11. 6 - reboot (Não use o initdefault para este nível de execução) gdm – Gerenciador de Janelas do Gnome, é responsável para gerenciar janelas no sistema. Isto inclui autenticação de usuários, iniciar e terminar uma sessão de usuário. •Arquivo de configuração em /usr/share/doc/gdm Acessibilidade Acessibilidade significa não apenas permitir que pessoas com cadeiras de rodas participem de atividades que incluem o uso de produtos, serviços e informação, mas a inclusão e extensão do uso destes por todas as parcelas presentes em uma determinada população. Em informática, programas que provêm acessibilidade são ferramentas ou conjuntos de ferramentas que permitem que portadores de deficiências (as mais variadas) se utilizem dos recursos que o computador oferece. Essas ferramentas podem constituir leitores de tela para deficientes visuais, teclados virtuais para portadores de deficiência motora ou com dificuldades de coordenação motora, e sintetizadores de voz para pessoas com problemas de fala. Orca – Orca é uma flexível, extensível e poderosa tecnologia assistiva para pessoas com deficiências visuais. Usando várias combinações da síntese de voz, braille e ampliação, Orca ajuda a fornecer acesso a aplicativos e ferramentas. O comando para executar o orca é orca. Você pode entrar este comando pressionando Alt+F2 quando estiver logado, esperar um segundo ou dois, e então digitar orca e pressionar a tecla de retorno. Orca está projetado apresentar a informação enquanto você navega pelo "desktop" usando os mecanismos internos de navegação do GNOME. Estes mecanismos de navegação são consistentes através da maioria das aplicações de "desktop". GOK - O aplicativo Gnome On-Screen Keyboard exibe teclados virtuais em seu desktop. Você pode usar o ponteiro do mouse padrão ou dispositivo apontador alternativo para operar o teclado virtual. On-Screen Keyboard apresenta os seguintes tipos de teclados: • Composer Keyboards permitem compor texto. Para digitar caracteres alfanuméricos, você selecione os caracteres do teclado do compositor. • Dynamic Keyboards refletem as aplicações que estão atualmente em execução no desktop. Por exemplo, On-Screen Keyboard gera teclados dinâmicos que contêm as chaves para representar as aplicações que estão rodando no seu desktop ou nos menus que estão contidos em um aplicativo. emacspeak - Emacspeak é uma interface de voz que permite que usuários deficientes visuais interajam de forma independente e eficiente com o computador. A formatação de áudio e suporte completo para Aural W3C CSS (ACSS) permite Emacspeak para produzir ricas apresentações fonética de informação eletrônica. Ao misturar perfeitamente todos os aspectos da Internet, como navegação na Web e mensagens, Emacspeak permite acesso a informação local e remota através de uma interface de usuário consistente e bem integrada. Disponível sem custo na Internet, Emacspeak mudou drasticamente a forma como centenas de cegos e deficientes visuais de todo o mundo interage com o computador pessoal e a Internet. Quando combinado com o Linux rodando em hardware de baixo custo, Emacspeak/Linux fornece uma solução estável que abre a internet para usuários com deficiência visual em todo o mundo. Tarefas Administrativas 11
  • 12. /etc/passwd – arquivo de senhas. Passwd é um arquivo texto, que contém a lista de contas do sistema, fornecendo para cada conta qualquer informação útil como identificação numérica do usuário, identificação numérica do grupo, diretório do usuário, interpretador de comandos, etc. • Permissão total de leitura e permissão de escrita somente para o superusuário. • Cada linha tem o formato: • account:password:UID:GID:GECOS:directory:shell • As GIDs devem ter um correspondente em /etc/group /etc/shadow – arquivo de senhas criptografadas. Contém, além das senhas criptografadas, informações sobre a idade das senhas. shadowconfig – Habilitar ou desabilitar senhas shadow. /etc/group – arquivo dos grupos de usuários. Define os grupos aos quais os usuários pertencem. • Uma entrada por linha, e cada linha segue o seguinte formato: • nome_do_grupo:senha:GID:lista_de_usuários • O último campo, lista de usuários, contém todos os usuários do grupo, separados por vírgula /etc/login.defs – configurações para a suíte de aplicativos de login. Define várias opções de segurança e de informação. /etc/skel - diretório que contém arquivos padrão que são copiados para novos usuários. Normalmente contém os arquivos .bashrc, .profile e .bash_logout passwd - mudar a senha de uma conta de usuário. Um usuário normal somente pode alterar a senha para sua própria conta, o super-usuário pode mudar a senha de qualquer conta. O usuário primeiro é questionado sobre sua senha atual, o super-usuário não precisa informar a senha atual. • -a : usado juntamente com -S, mostra informações sobre todos usuários. • -d / --delete : deletar uma senha de usuário. • -e / --expire : expira imediatamente a senha de uma conta. Isto força o usuário a mudar a sua senha no próximo login. • -i / --inactive dias : esta opção é usada para desabilitar uma conta depois que a senha houver expirado por um número de dias. • -l / --lock : trava a senha para uma conta. Não desabilita a conta, apenas o uso de senha. • -m / --mindays : definir o número de dias mínimo entre alterações de senhas. • -S / --status : mostra informações de estado da conta. Consiste em 7 campos. • Nome de login • Indica se a conta está travada (L), se tem senha definida (NP) ou se tem uma senha usável (P) • Data da última modificação • Idade mínima, idade máxima, período de alerta e período de inatividade, expressos em dias. • -u / --unlock : destravar a senha da conta de usuário. • -w / --warndays : definir o número de dias para o período de alerta. • -x / --maxdays : definir o número máximo de dias que uma senha continua válida. chage - mudar as informações de expiração da senha do usuário. Chage [opções] [login]. Muda o número de dias entre alterações de senhas, e a data da última alteração da senha. Usado pelo sistema para determinar quando um usuário deve alterar sua senha. 12
  • 13. -d / --lastday dia : definir a data quando a senha foi alterada. A data pode ser expressa noformato YYYY-MM-DD. • -E / --expiredate : definir a data quando a senha da conta de usuário irá expirar. • -I / --inactive : definir o número de dias de inatividade desde que a senha tenha expirado até que a conta seja trancada. • -l / --list : mostrar informações sobre a idade das contas. • -m / --mindays : definir o número mínimo de dias para alterar a senha. • -M / --maxdays : definir o número máximo de dias durante os quais a senha é válida. • -W / --warndays : definir o número de dias do período de alerta até que uma alteração de senha seja exigida. groupadd - criar um novo grupo. • -f / --force : se o grupo já existir, o aplicativo fecha com estado de sucesso. • -g / --gid : o ID de identificação do grupo. • -r / --system : criar um grupo do sistema. groupdel - deletar um grupo. Modifica os arquivos de conta do sistema, deletando todas as entradas para o referido grupo. Não é possível excluir o grupo primário de um usuário existente. groupmod - modificar a definição de um grupo no sistema. • -g / --gid : modificar o ID do grupo. Valores entre 0 e 999 são tipicamente reservados para grupos do sistema. • -n / --new-name novo_grupo : o nome do grupo será alterado para novo_grupo. • -p : alterar a senha do grupo. newgrp – conectar a um novo grupo. É usado para mudar o grupo atual durante uma sessão de login. Também tenta adicionar o grupo ao conjunto de grupos do usuário. groups – mostrar os grupos os quais o usuário faz parte. O superusuário pode visualizar os grupos de todos outros usuários. useradd – criar um novo usuário. É um utilitário de baixo nível para adicionar usuários. No Debian, administradores devem usar o adduser. • -c / --comment : qualquer string de texto. Comumente usado para o nome completo. • -b / --base-dir diretório : o diretório base para o sistema. • -D / --defaults : adiciona um usuário com os valores padrão. • -e / --expiredate : a data na qual a conta do usuário irá expirar. Formato YYYY-MM-DD • -f / --inactive dias : número de dias, depois que a senha expirar, até que a conta seja permanentemente desativada. • -g / --gid : o nome ou o id do grupo inicial do usuário. • -G / --groups : uma lista suplementar dos grupos os quais o usuário é membro. • -k / --skel diretório : o diretório skeleton, que contém arquivos e diretórios a serem copiados para a pasta home do novo usuário criado. • -l : não adicionar o usuário ao banco de dados do lastlog e do faillog • -m / --create-home : criar um diretório home para o usuário, se não existir. Por padrão, nenhum diretório home é criado. • -N / --no-user-group : não criar um grupo com o mesmo nome do usuário, mas adicionar o usuário a um grupo especificado com o argumento -g. 13
  • 14. -p / --password senha : a senha encriptada, protegida pelo crypt. • -r / --system : criar uma conta de sistema. • -s / --shell shell : o nome do shell do usuário, deixado em branco por padrão. • -u / --uid uid : o valor numérico do ID do usuário. • -U / --user-group : criar um grupo com o mesmo nome do usuário, e adicionar o usuário a este grupo. Observações sobre o useradd: • Quando invocado somente com a opção -D, useradd irá mostrar os valores padrão atuais. Quando invocado com a opção -D junto com outras opções, useradd irá atualizar os valores padrão para as opções especificadas. • O arquivo /etc/login.defs muda o comportamento desta ferramenta. userdel – excluir uma conta de usuário e arquivos relacionados. Utilitário de baixo nível para remoção de usuários. No debian recomenda-se o utilitário deluser. • -f / --force : força a remoção de uma conta de usuário, mesmo se o usuário estiver logado. Força a remoção do diretório home e do spool de e-mail. Esta opção pode ser perigosa. • -r / --remove : arquivos no diretório home do usuário e spool de e-mail são removidos. usermod – modificar uma conta de usuário. • -a / --append : adiciona o usuário a grupos suplementares. Use apenas com a opção -G. • -c / --comment : novo valor para o campo comentário do arquivo passwd. • -d / --home : caminho para o diretório home do usuário. • -e / --expiredate : data na qual a conta de usuário será desabilitada. • -f / --inactive : o número de dias depois que a senha houver expirado até que a conta seja permanentemente desabilitada. • -g / --gid : o grupo ou ID de grupo do grupo inicial do login de usuário. • -G / --groups : lista de grupos suplementares os quais o usuário deve fazer parte, separados por vírgula. • -l / --login : o nome do usuário será alterado. Nada mais é alterado, nem mesmo o diretório home do usuário. • -L / --lock : travar uma senha de usuário. • -p / --password : alterar a senha. • -s / --shell : alterar o shell do login inicial do usuário. • -u / --uid : alterar o ID de usuário. • -U / --unlock : destravar a senha do usuário. chfn – alterar o nome real do usuário e outras informações. • -f : nome completo • -r : número da sala • -w : telefone do trabalho • -h : telefone de casa • -o : outros chsh – mudar o shell de login do usuário. Um usuário normal somente pode mudar o seu próprio shell, o superusuário pode mudar o shell de qualquer usuário. • -s / --shell : definir, via linha de comando, o novo shell do usuário. • Shells disponíveis encontram-se em /etc/shells 14
  • 15. Automação com Agendamento de Tarefas Cron é um daemon usado no Linux e em várias versões do Unix que executa tarefas agendadas no arquivo "/etc/crontab". Esta é uma ferramenta bastante poderosa, que pode ser usada para automatizar tarefas de rotina e de manutenção do sistema. crontab – manter arquivos de crontab para usuários individuais. Cada usuário tem seu próprio arquivo crontab, localizado em /var/spool/cron/crontabs • -l : lista as tarefas agendadas para o usuário • -e : edita o agendador • -r : apaga o arquivo do usuário /etc/crontab – arquivo de configuração do cron para o sistema e para o root, segue a sintaxe informada abaixo. • Quando um dos atributos é informado como sendo * (asterisco) assume-se a condição para todos os valores possíveis. Por exemplo, se colocamos * no mês, executa-se o comando dado em todos os meses do ano. • Deve-se informar o SHELL utilizado e o PATH • SHELL = /bin/bash • PATH = /sbin:/bin:/usr/sbin:/usr/bin • MAILTO = root • HOME = / .---------------- minuto (0 - 59) | .------------- hora (0 - 23) | | .---------- dia do mês (1 - 31) | | | .------- mês (1 - 12) | | | | .---- dia da semana (0 - 6) (Domingo=0) | | | | | * * * * * comando a ser executado Exemplo – todos os dias, às 8 da manhã, executar o comando updatedb * 08 * * * updatedb Dentro do diretório /etc, existem quatro diretórios de agendamentos pré-definidos. Para utilizá-los, basta copiar o script para dentro de um desses diretórios: • /etc/cron.hourly/ : de hora em hora • /etc/cron.daily/ : de dia em dia • /etc/cron.weekly/ : de semana em semana • /etc/cron.montly/ : de mês em mês Após copiar o script para o diretório desejado, é necessário reiniciar o daemon do cron, para que as alterações entrem em vigor. • /etc/init.d/cron restart at – Enfileirar, examinar ou deletar trabalhos para execuções posteriores. Aceita horários no formato HH:mm para executar uma tarefa em uma hora específica do dia (se o horário já houver 15
  • 16. passado, o próximo dia é assumido). Pode-se usar os sufixos AM ou PM para executar no período matutino ou vespertino. • -l : um alias para atq. Lista os trabalhos enfileirados. • -d : um alias para atrm. Deleta um trabalho enfileirado. • -f arquivo : lê os comandos de um arquivo • Tarefas agendadas ficam guardadas no diretório /var/spool/cron/atjobs • Também pode-se especificar qual dia a tarefa será executada nos formatos MMDDAA ou MM/DD/YY ou DD.MM.YY • A especificação da data deve vir após a especificação da hora. Por exemplo, pode-se utilizar at 4pm +3 days • Pode-se especificar horários tais como now + número unidade. As unidades podem ser minutes, hours, days ou weeks. at now + 12 hours O superusuário pode usar esses comandos em qualquer caso. Para outros usuários, permissão de uso deve estar determinada nos arquivos /etc/at.allow e /etc/at.deny • Um arquivo /etc/at.deny vazio significa que qualquer usuário pode utilizar esses comandos. Essa é a configuração padrão. anacron – Usado para executar comandos periodicamente, com uma frequência especificada em dias. Diferente do cron, não assume que a máquina rode continuamente. • Quando executado, anacron lê uma lista de tarefas de um arquivo de configuração, normalmente /etc/anacrontab. Esse arquivo contém uma lista das tarefas que o anacron controla. • /var/spool/anacron – Diretório usado para armazenar as etiquetas de tempo dos arquivos. • -u : apenas atualizar a etiqueta de tempo dos trabalhos, para a hora corrente, mas não executar nenhum. • -s : serializar a execução das tarefas. Uma só roda após a conclusão da outra. • -n : executar todos as tarefas agora. /etc/anacrontab – Arquivo de configuração para o anacron. As descrições de tarefas seguem a forma: período delay identificador­da­tarefa comando @nome_do_período delay identificador­da­tarefa comando Exemplo de uso: # todo dia (1), após 5 minutos (5) depois de ligado. 1 5 falador echo “Olá eu sou o falador” • O período é especificado em dias, o delay em minutos. Localização e Internacionalização O kernel do Linux mantém um relógio separado do relógio do hardware (BIOS). Durante o boot, o relógio do kernel lê o relógio do hardware e a partir daí roda distintamente. Esse procedimento se justifica pois ler o relógio do hardware é lento e complicado. O relógio do kernel guarda a hora universal, de modo que fusos horários são calculados por cada processo através das ferramentas timezone. 16
  • 17. O fuso horário do sistema é determinado pelo arquivo /etc/localtime, que geralmente é um link simbólico apontando para o arquivo real em /usr/share/zoneinfo/ ou em /usr/lib/zoneinfo/. • Os fuso horários possíveis são encontrados em /usr/share/zoneinfo date – Exibir ou configurar a data e hora do sistema. • -u : mostrar a hora universal. • Segue o seguinte formato: date MMDDhhmmYYYY.ss MM – Mês DD – Dia hh – Hora mm – Minuto YYYY – Ano ss – Segundo Exemplo: # date 111622042010.20  # Ter Nov 16 22:04:20 BRST 2010  hwclock – Consultar e definir o relógio de hardware. • -r / --show : ler o relógio de hardware e imprimir na saída padrão. • -s / --hctosys : configurar a hora do sistema para a hora do relógio de hardware. • -w / --systohc : configurar o relógio de hardware igual o relógio do sistema. locale – Obter informações específicas da localidade. Mostra informações sobre a localidade atual do sistema. • -a / --all-locales : Mostra o nome de todas as variáveis. • /usr/share/i18n/SUPPORTED – Lista de todos os valores suportados pelo nome da localidade. /usr/lib/locale/ - Base de dados para todas atuais definições de categoria de localização. tzselect – Ver fuso horários. É chamado sem nenhum parâmetro e mostra uma lista de cerca de uma dúzia de áreas geográficas que pode-se reconhecer como os continentes. Depois de escolher uma área geográfica pelo número, uma lista de países e cidades nesta área serão mostrados. • /usr/share/zoneinfo – Arquivos para fuso horários possíveis. • Escolher no diretório acima e depois configurar em /etc/timezone • Para alterar permanentemente as opções de localidade, também pode-se utilizar o comando: dpkg-reconfigure tzdata, anteriormente usava-se o comando tzconfig. iconv – Converter a codificação de um arquivo dado de uma codificação para outra. • -f / --from-code : Definir a codificação de origem dos caracteres. • -t / --to-code : Definir a condificação de destino dos caracteres. • -l / --list : Listar todos os conjuntos de caracteres conhecidos. • -o / --output : Especificar o arquivo de saída. UTF-8 - uma codificação Unicode multibyte compatível com ASCII. A codificação UTF-8 é a 17
  • 18. maneira de usar o conjunto de caracteres Unicode sob sistemas operacionais do estilo Unix. • A ordenação lexicográfica das strings UCS-4 é preservada. • Os bytes 0xfe e 0xff nunca são usados na codificação UTF-8 • O caractere Unicode 0xa9 = 1010 1001 (o sinal de copyright) é codificado em UTF-8 como 11000010 10101001 = 0xc2 0xa9 • Geralmente utilizado no Linux ISO 8859 - Conjunto de caracteres ISO (International Organization for Standardization), que é extensão ao código ASCII. Inclui caracteres acentuados. O padrão ISO 8859 inclui várias extensões de 8 bits para o conjunto de caracteres ASCII (também conhecido como ISO 646-IRV). Especialmente importante é o ISO 8859-1, o "Alfabeto Latino No. 1", que tem se tornado largamente implementado e já pode ser visto como um substituto de fato para o padrão ASCII. • Geralmente utilizado no Windows ASCII - significa American Standard Code for Information Interchange (Código Americano Padrão para Intercâmbio de Informação). É um código de 7 bits. Muitos códigos de 8 bits (tais como o ISO 8859-1) contém o ASCII como a sua metade inferior. A parte internacional correspondente do ASCII é conhecida como ISO 646. Manter a Hora do Sistema O NTP (Network Time Protocol) é largamente utilizado para sincronizar um computador a um servidor de tempo da Internet ou de outras fontes, como um receptor de rádio ou de satélite. • Utiliza o protocolo de transporte UDP na porta 123 • Arquivo de configuração em /etc/ntp.conf • Definido na RFC 5905. Site oficial: www.ntp.org Os servidores NTP formam uma topologia hierárquica, dividida em camadas ou estratos numerados de 0 a 16, onde 16 significa um estrato desativado. • O estrato 0 na verdade não faz parte da rede de servidores NTP, mas representa uma referência primária de tempo, que é geralmente um receptor do sistema de posicionamento global (GPS) ou um relógio atômico. ntpd - Processo daemon que define e mantém o sistema de tempo em sincronismo com servidores de tempo da Internet que pertençam ao padrão. • Lê o arquivo /etc/ntpd.conf no momento da inicialização para determinar as fontes de sincronismo e o modo de operação. • -a : requer autenticação criptográfica para associações de clientes broadcast, multicast e simétricos passivos. Este é o padrão. • -A : não requer autenticação criptográfica para associações de clientes broadcast, multicast e simétricos passivos. Pode não ser uma boa idéia. • -b : habilitar o cliente para sincronizar com servidores broadcast. • -c arquivo_configuracao : definir um outro local para o arquivo de configuração que não seja o /etc/ntpd.conf • -f drift_file : especificar o nome e caminho para o arquivo de freqüências, por padrão em /etc/ntp.drift. No Debian fica em /var/lib/ntp/ntp.drift • -k arquivo_chave : especificar o nome e o caminho do arquivo de chave simétrica. • -l arquivo_log : especificar o nome e o caminho do arquivo de log. O padrão é o arquivo de 18
  • 19. log do sistema. • -q : fechar o ntpd após o primeiro sincronismo. /etc/ntp.conf – Arquivo de configuração para o servidor de tempo NTP. Normalmente lido na inicialização do daemon ntpd para determinar as fontes de sincronismo e o modo de operação. Comandos de configuração consistem em uma palavra-chave inicial seguida por uma lista de argumentos. • server endereço : para definição de uma fonte de sincronismo. O ideal é usar fontes redundantes para garantir a confiabilidade. • peer endereço : informar o endereço do par de sincronismo. • broadcast endereço : para definir um endereço para replicação broadcast. • prefer : marca um servidor como preferido. Utilizado somente com a opção server ou peer. • key : todos os pacotes são enviados e recebidos utilizando-se a chave especificada para autenticação. • driftfile arquivo_drift : define o nome e caminho do arquivo de freqüências. ## /etc/ntp.conf  # Permite acesso ao servidor para sincronizar mas nao  # permite modificacoes no servico  restrict default nomodify notrap noquery    # Permite acesso completo para a interface local  restrict 127.0.0.1    # Libera acesso a minha rede local  restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap    # Servidor para sincronizar o relógio  # Será usado em ordem  # o pcdsh05.on.br e stratum 1 todos os outros são stratum 2  server pcdsh05.on.br  server ntp.pop­go.rnp.br  server ntp.pop­df.rnp.br  # Informa o local do arquivo drift  driftfile /var/lib/ntp/ntp.drift  # Local do arquivo de log  # Por padrao em: /var/log/daemon.log  logfile /var/log/ntp/ntp.log ntpdate - Utilitário que permite configurar o horário e data locais usando como referência um servidor NTP remoto. Deve ser executado como root na máquina local. Pode ser rodado manualmente quando necessário e pode ser definido em um script de inicialização. • -a key : habilitar a função de autenticação e especificar a chave de identificação a ser usada. • -d : habilitar o modo de depuração, informando todos os passos mas sem ajustar o relógio local. • -k arquivo_chave : especificar o nome e caminho para a chave de autenticação. • -q : perguntar as horas apenas, sem definir o relógio. • -t tempo : especificar o tempo máximo para esperar uma resposta do servidor, em segundos. 19
  • 20. #! /bin/sh  # Colocar em /etc/init.d, dar permissao de execucao  # chmod +x /etc/init.d/relogio depois configurar a  # inicializacao update­rc.d relogio defaults  ntpdate ntp.pop­go.rnp.br ntpq – Programa padrão para consultas. É usado para monitorar as operações do daemon NTP e determinar a performance. • -4 / -6 : força a resolução de DNS para o formato Ipv4 ou Ipv6. • -i : força o ntp a operar no modo interativo, utilizando as entradas e saída padrão do sistema. • -n : todos os endereços de host saem no formato "dotted-quad” em vez de converter aos nomes canônicos de host. • -p : imprimir uma lista de todos os pares conhecidos ao servidor bem como um sumário de seus estados. • -c : passar um comando como se estivesse no modo interativo, através da linha de comandos. ○ peers / pe : fornece informações sobre todos os pares com os quais você está associado, com informações sobre os seus servidores. ○ associations / as : informações sobre as associações com os servidores. ○ readvar / rv : informações detalhadas sobre sua associação. ○ clockvar / cv : solicita que uma lista de variáveis de relógio do servidor seja enviada. ○ readlist / rl : solicita que os valores das variáveis na lista de variáveis internas sejam devolvidos pelo servidor ntpdc – programa especial de consultas ntp. Usado para consultar o daemon ntpqd sobre o seu estado atual e sobre requisições de mudanças em seu estado. • -4 / -6 : força a resolução de DNS para o formato Ipv4 ou Ipv6. • -i : força o ntp a operar no modo interativo, utilizando as entradas e saída padrão do sistema. • -n : todos os endereços de host saem no formato "dotted-quad” em vez de converter aos nomes canônicos de host. • -l : obtém uma lista de todos os pares que são conhecidos pelo servidor. Equivalente a -c listpeers • -s : imprimir uma lista de pares conhecidos pelo servidor bem como um sumário de seu estado. • -p : imprimir uma lista de todos os pares conhecidos ao servidor bem como um sumário de seus estados. • -c : passar um comando como se estivesse no modo interativo, através da linha de comandos. ○ peers / pe : fornece informações sobre todos os pares com os quais você está associado, com informações sobre os seus servidores. ○ listpeers : lista resumida de todos os servidores aos quais está conectado. ○ showpeer endereco : mostrar informações detalhadas sobre uma associação. ○ sysinfo : imprime uma variedade de variáveis de estado do sistema. ○ sysstats : imprime contadores estatísticos mantidos pelo módulo do protocolo de tempo. ○ reslist : lista de restrições do servidor ntp local. ntptrace - Determina de onde um determinado servidor NTP obtém a referência de tempo e traça o 20
  • 21. caminho seguido até o servidor primário (comumente, servidor NTP stratum 1). • -r numero : numero de tentativas. • -t tempo : tempo das tentativas. Log de Sistema rsyslog – Utilitário de sistema que provê suporte para log de mensagens. • Arquivo de configuração em /etc/rsyslog.conf O comportamento do rsyslogd é controlado pelo seu arquivo de configuração, /etc/rsyslog.conf. Esse arquivo de texto contém linhas, indicando o que deve ser locado e onde. Cada linha contém diretivas nesta forma: # facilidade.nícel ação auth,authpriv.* /var/log/auth.log • Facilidade : Representa o criador da mensagem (ou seja, o kernel ou o processo) e é um dos seguintes: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, user, uucp ou local0 até local7. • Nível : Especifica um limite de severidade a partir do qual as mensagens começam a ser logadas, e é um dos seguintes: debug, info, notice, warning, err, crit, alert ou emerg. O asterisco (*) pode ser usado para descrever todas as facilidades ou todos os níveis. • Ação : Representa o destino das mensagens que correspondem a um dado selecionador (facilidade.nível). A ação pode ser um nome de arquivo ou um nome de host precedido pelo sinal @. logger - Criar entradas no log do sistema (/var/log/). • -f file : Registrar um arquivo específico. • -t tag : Criar registros com uma tag específica. • -p facilidade.nivel : Define a prioridade do registro. • Ex: logger -p local5.info -t YURI “Isso é um teste” / cat /var/log/messages logrotate – Permite rotação automática, compressão, remoção e envio de arquivos de log. Cada arquivo de log pode ser manipulado diariamente,semanalmente, mensalmente ou quando ele se tornar muito grande. • Normalmente executa no agendamento diário do cron. • /var/lib/logrotate/status – Arquivo de status do logrotate. • /etc/logrotate.conf – Configurações do logrotate. • -f / --force : força a rotação, mesmo que não seja necessário. # Exemplo de configuração do /etc/logrotate.conf  weekly  rotate 4  create  /var/log/dpkg.log {   monthly   rotate 12   compress   delaycompress  21
  • 22.  missingok   notifempty   create 640 root adm  }  savelog – Salva e opcionalmente comprime copias antigas de arquivos. Versões antigas de arquivos são chamadas: arquivo.<versão><sufixo> • -p : preserva definições de dono • -j : comprimir com bzip2 ao invés de gzip • -l : não comprimir arquivos de log • -t : criar um arquivo novo para o log. Agente de Transferência de E-mail (MTA) O programa responsável por administrar o envio e o recebimento de mensagens de correio eletrônico, local e remotamente, é chamado MTA – Mail Transport Agent. Há várias opções de MTAs, dentre as quais o sendmail, o postfix, o qmail e o exim. O MTA roda como um daemon do sistema, geralmente monitorando a porta 25 (SMTP). • O MTA mais utilizado é o sendmail, e os demais geralmente oferecem opções de interoperabilidade com ele, salvo as peculiaridades de cada um. • Sendmail – www.sendmail.org • Exim – www.exim.org • Qmail – qmail.org/top.html • Postfix – www.postfix.org O sendmail depende de arquivos e diretórios de suporte para funcionar. Os caminhos podem ser alterados no arquivos de configuração do sendmail, mas geralmente encontram-se nos locais padrão: • /etc/mail/access - Lista de hosts autorizados a enviar email por este servidor. • /etc/mail/aliases ou /etc/aliases - Vincula nomes diferentes para destinatários no sistema. Após alterar este arquivo, é necessário executar o comando newaliases para gerar o arquivo /etc/mail/aliases.db e só então os aliases serão utilizados pelo sendmail. • ~/.forward - Pode conter um ou mais endereços para os quais os emails recebidos pelo usuário em questão serão direcionados. • /var/spool/mail/ - Diretório onde são armazenados os emails após serem recebidos pelo sendmail. É criado um arquivo para cada usuário, que será lido pelo cliente de email do usuário. • /var/spool/mqueue/ - Diretório de fila para os emails enviados pelos usuários do sistema. mail – Aplicativo usado para ler os e-mails do usuário. • ~/mbox – Arquivo usado para catalogar todos os e-mails já lidos pelo usuário. • -s : Definir o assunto do e-mail. • Segue o formato: mail -s Assunto usuario@maquina <enter> Mensagem, pode conter mais de uma linha. Ao final, em uma linha nova, pressiona-se <ctrl+d> para finalizar e enviar a mensagem. mailq – Mostra a lista de e-mails a serem enviados. 22
  • 23. Gerenciar Impressoras e Impressão CUPS é o programa usado para imprimir de aplicativos como um browser de Internet. Ele converte a página produzida pela aplicação em algo que a impressora possa entender e então envia a informação para a impressora para imprimir. ✔ Para acessar o aplicativo de configuração via browser, acesse: http://localhost:631/ ✔ Configurações gerais do cups ficam em: /etc/cups/cupsd.conf ✔ Configurações de impressoras ficam em: /etc/cups/printers.conf ✔ Diretório de spool do CUPS: /var/spool/cups ✔ Impressoras do sistema também são identificadas em: /etc/printcap cupsd – cupsd é o agendador para o CUPS. Ele implementa um sistema de impressão baseado no Protocolo de Impressão da Internet (IPP v.2.1). O arquivo de configuração fica em /etc/cups/cupsd.conf • -c arquivo : usa o arquivo de configuração especificado. • -f : executa o cupsd em primeiro plano. • -h : mostra como usar o programa • -t : testa o arquivo de configuração por erros de sintaxe /etc/cups/cupsd.conf – arquivo de configuração do CUPS. Contém as diretivas que controlam as funções do servidor. /etc/cups/printers.conf – arquivo que contém as configurações das impressoras instaladas. lpr – envia arquivos para impressão. • -E : forçar a criptografia quando conectar ao servidor. • -C nome : definir o nome do trabalho. • -P destino : imprimir trabalhos para a impressora especificada • -U username : especificar um nome de usuário diferente • -# copias : definir o número de cópias a serem impressas. • -h : desabilitar a impressão de banners. • -l : afirmar que o trabalho já está formatado para impressão, enviando para impressora sem nenhum filtro. • -m : enviar um e-mail ao final do trabalho. • -p : especificar a adição de um cabeçalho com data, hora, nome e número da página. • -r : excluir os arquivos após a impressão. lpq – mostrar o estado de uma fila de impressão de uma determinada impressora. • -E : forçar a criptografia quando conectar ao servidor. • -P destino : imprimir trabalhos para a impressora especificada • -U username : especificar um nome de usuário diferente • -a : exibir trabalhos em todas as impressoras • -l : mostrar dados em um formato mais detalhado lprm – cancelar trabalhos de impressão que haviam sido enfileirados. • -E : forçar a criptografia quando conectar ao servidor. 23
  • 24. -P destino : imprimir trabalhos para a impressora especificada • -U username : especificar um nome de usuário diferente Fundamentos de Protocolos da Internet /etc/services – Lista os serviços da rede Internet. Arquivo ASCII provendo um mapeamento amigável entre nomes textuais para serviços da internet, e consignar suporte para números de portas e tipo de protocolos. • Números de portas são designadas pelo IANA (Internet Assigned Numbers Authority), e atualmente a política deles é designar ambos os protocolos TCP e UDP quando designando um número de porta. Alguns números de portas associados a serviços amplamente conhecidos: PORTA SERVIÇO 20 FTP (dados) 21 FTP 22 SSH 23 TELNET 25 SMTP 53 DNS 80 HTTP 110 POP3 119 NNTP (USENET news) 139 NETBIOS 143 IMAP 161 SNMP 443 HTTPS 465 SSMTP (smtp sobre SSL) 993 IMAPS (imap sobre SSL) 995 POP3S (pop3 sobre SSL) ftp - uma interface de usuário para o protocolo de transferência de arquivos da Internet. O programa permite ao usuário transferir arquivos para e de um site remoto da rede. • -p : usar o modo passivo para transferência de dados. Permite o uso de ftp em sistemas onde um firewall previne conexões de fora retornarem à máquina local. Requer que o servidor ftp suporte o comando PASV. • -i : desliga o prompt interativo durante a transferência de múltiplos arquivos. • -n : restringe ao ftp de tentar "login automático" na conexão inicial. Se o login automático é ativado, ftp irá verificar o arquivo .netrc no diretório home do usuário para uma entrada descrevendo uma conta na máquina remota. • -e : desativar a edição de comandos e o suporte a histórico. 24
  • 25. -v : modo verbose que exibe todas as respostas do servidor remoto bem como relatório estatístico da transferência de dados. • -d : habilitar o modo de depuração. Comandos de Conexão: • open host [port] : estabelecer uma conexão com um servidor ftp específico. Um número de porta pode ser opcionalmente fornecido. • user user-name [password] [account] : identifica você mesmo para o servidor ftp remoto. Se a senha não for especificada, o servidor irá requerê-la. • account [passwd] : fornece uma senha suplementar requerida para acesso a um sistema remoto para acesso aos recursos, uma vez que o login tenha sido completado com sucesso. • close / disconnect : terminar a sessão ftp com o servidor remoto e retornar ao interpretador de comandos. • bye / quit : terminar uma sessão ftp com o servidor remoto e fechar o ftp. Comandos de Manipulação de arquivos e diretórios: • append local-file [remote-file] : anexar um arquivo local para um arquivo na máquina remota. • delete remote-file : excluir o arquivo remoto na máquina remota. • mdelete [remote-files] : excluir os arquivos remotos na máquina remota. • mkdir directory-name : criar um diretório na máquina remota. • mls remote-files local-file : exibir uma lista do conteúdo de vários diretórios na máquina remota. • cd remote-directory : alterar o diretório de trabalho na máquina remota para remote directory. • lcd [directory] : alterar o diretório de trabalho na máquina local. • get remote-file [local-file] : recuperar o arquivo remoto e armazená-lo na máquina local. Se o nome local não for especificado, usa-se o mesmo nome no diretório atual. • mget remote-files : recuperar vários arquivos da máquina remota e armazená-los na máquina local. • newer file-name [local-file] : recuperar um arquivo somente se a data de modificação do mesmo na máquina remota for mais recente do que a data de modificação no sistema atual. • put local-file [remote-file] : armazenar um arquivo local no servidor remoto. • mput local-files : colocar vários arquivos da máquina local na máquina remota. • send local-file [remote-file] : armazenar um arquivo local no servidor remoto. • rename [from] [to] : renomear um arquivo da máquina remota. • rmdir directory-name : excluir um diretório da máquina remota • recv remote-file [local-file] : recuperar o arquivo remoto e armazená-lo na máquina local. Se o nome local não for especificado, usa-se o mesmo nome no diretório atual. • ls [remote-directory] [local-file] : exibir uma lista do conteúdo de um diretório na máquina remota. • dir [remote-directory] [local-file] : imprimir uma lista do conteúdo do diretório remoto e, opcionalmente, colocar a saída em um arquivo local. • mdir remote-files local-file : igual ao dir, exceto pelo fato de aceitar vários diretórios a serem exibidos da máquina remota. • nlist [remote-directory] [local-file] : exibir uma lista dos arquivos do diretório na máquina remota e, opcionalmente, gravar a lista em um arquivo local. 25
  • 26. Comandos para Informações: • verbose : alterar para o modo verbose. No modo verbose todas as respostas do servidor são exibidas. • pwd : imprimir o nome do diretório atual de trabalho na máquina remota. • remotestatus [file-name] : sem argumentos exibe o status atual da máquina remota. Se um arquivo for especificado, mostra o status do arquivo. • size file-name : exibir o tamanho de um arquivo na máquina remota. • status : mostrar o status atual do ftp. • system : exibir o tipo de sistema operacional rodando na máquina remota. • help [command] : imprimir uma mensagem informativa sobre o significado de um comando. Comandos para Configurações: • ascii : definir o tipo de transferência de arquivos para ASCII. Este é o tipo padrão. • bell : faz com que um alarme toque depois que cada comandos de transferência de arquivos for completado. • binary : definir o tipo de transferência de arquivos para suportar transferência de imangens binárias. • idle [seconds] : definir o tempo de inatividade no servidor remoto. Se os segundos forem omitidos, exibi-se o valor atual configurado. • mode [mode-name] : definir o modo de transferência de arquivos. O valor padrão é “stream” • modtime file-name : mostrar a data da última modificação do arquivo na máquina remota. • prompt : alterar para o modo de prompt interativo. Esse é o padrão. • type [type-name] : define o tipo de transferência de arquivos. Se nenhum tipo for informado, o tipo atual é exibido. O tipo padrão é ASCII. • umask [newmask] : definir o umask padrão do servidor remoto. Se um novo valor for omitido, o valor atual é exibido. • chmod mode file-name : alterar o modo de permissão do arquivo file-name no sistema remoto para mode. telnet – Usado para comunicação interativa com outro host usando o protocolo TELNET. • Usado seguindo o modelo: telnet [-l usuário] host porta • Funciona normalmente na porta 23. • /etc/telnetrc : valores globais de inicialização do telnet. • -l : especificar o usuário a ser usado na máquina remota. Alguns comandos do telnet: • close : fecha a conexão com o host remoto. • logout : desconecta a sessão do usuário, sem fechar a conexão com o host. • open host : abrir uma conexão com o host, quando não o for feito pela linha de comando. • exit : fechar qualquer conexão e encerra o telnet. • status : mostrar o estado atual do telnet. host – Utilitário de pesquisa DNS. Usado normalmente para converter nomes em endereços IP e vice versa. • Utiliza o arquivo /etc/resolv.conf para definir o servidor DNS a ser utilizado na pesquisa. 26
  • 27. host [opções] nome [servidor] Exemplo host www.google.com dig – Utilitário de pesquisa DNS – mostra o formado dos pacotes DNS de resposta. Funciona como uma ferramenta flexível para interrogar servidores DNS. Ele faz pesquisas de nomes e mostra as respostas que são enviadas do servidor de nomes que é questionado. dig [@ip.do.servidor] nome tipo • Os tipos que podem ser usados são: ANY, A, MX, SIG, etc. • Servidores de nomes são definidos na RFC 1035. ping – Enviar pacotes ECHO_REQUEST ICMP para hosts de rede. • -b : permitir pings para endereços broadcast. • -c : especificar o número de pacotes a ser enviado. • -f : flood ping. Zero de intervalo entre pacotes. • -i : definir o intervalo entre o envio de pacotes. • -q : não exibir a saída de cada pacote. Quiet. • -s : definir o tamanho dos pacotes. O padrão é 56 que se transformam em 64 com os 8 bytes do cabeçalho ICMP. traceroute – Imprime a rota dos pacotes da máquina local até uma rede de destino. • -I : usar pacotes ICMP ECHO para os testes • -T : usar pacotes TCP SYN para os testes • -i : especificar a interface pela qual os pacotes serão enviados • -s : escolher um IP de origem alternativo. tracepath – Traça o caminho para um host da rede, descobrindo o MTU ao longo deste caminho. Usa-se uma porta UDP aleatória ou definida pelo usuário. É similar ao traceroute mas não requer privilégios de root. • -b : imprimir o nome do host e o endereço IP. O padrão é apenas o nome. • -n : mostrar apenas o endereço IP para identificar os hosts. tcpdump – Capturar o tráfego de uma rede. Mostra uma descrição do conteúdo dos pacotes que passam por uma interface de rede. • -A : imprimir cada pacote em ASCII. • -B : definir o tamanho do buffer de captura. • -c : número de pacotes a serem capturados. • -i : especificar a interface a ser monitorada. • -n : não converter endereços em nomes. Algumas opções para filtro do tcpdump: • dst host endereço.do.host : captura apenas pacotes com o endereço de destino especificado. • src host endereço.do.host : captura apenas pacotes com o endereço de origem especificado. • host endereço.do.host : pacotes de ou para o host especificado. • dst net rede : definir a rede de destino 27
  • 28. src net rede : definir a rede de origem • net rede : definir uma rede relacionada, de origem ou destino • dst port porta : porta de destino • src port port : porta de origem • port port : porta relacionada, de origem ou destino • less tamanho : pacotes menores que um determinado tamanho • greater tamanho : pacotes maiores que um determinado tamanho • tcp, udp, icmp : definir o protoco dos pacotes a serem capturados. Configuração Básica de Rede /etc/hostname – Definir o nome de rede da máquina local. hostname – Mostra ou altera o nome do host. /etc/hosts – Tabela estática de pesquisa para nomes de host. Este é um arquivo de texto simples que associa endereços IP com hostnames. • Formato: endereço.IP hostname [aliases] /etc/networks – Semelhante ao hosts, atribui nomes à números de redes. /etc/resolv.conf – Arquivo de configuração do resolvedor de nomes do sistema. • nameserver : endereço de um servidor de nomes que será usado para resolver pesquisas. • domain : especifica o nome de domínio. • search : definir uma lista de busca /etc/nsswitch.conf - Sistema de bancos de dados e arquivo de configuração Name Service Switch. Define a forma de busca de vários bancos de dados de funcionalidades do sistema. • Aceita os seguintes bancos de dados: aliases, ethers, group, hosts, netgroup, networks, passwd, protocols, publickey, rpc, services, shadow • Os tipos de pesquisa suportados são: ◦ compat : utiliza arquivos do sistema ◦ dns : resolução por servidores de nomes ◦ nis : utiliza o serviço nis ifconfig – Configura uma interface de rede. É usado durante o boot para configurar a maioria delas para um estado usável. Se nenhum argumento for informado, ifconfig somente mostra o estado das interfaces correntemente definidas. ifconfig eth0 10.0.0.10 netmask 255.0.0.0 up • up : causa a ativação da interface. • down : causa a desativação da interface. • mtu : configura o tamanho da unidade máxima de transferência (MTU) para a interface. • netmask : configura a máscara de rede. • broadcast : especifica o endereço de broadcast. • hw : configura o endereço de hardware (mac). 28
  • 29. ifup – Ativar uma interface de rede. • -a : ativar todas as interfaces de rede. • /var/run/network/ifstate – estado atual das interfaces de rede. • Pode ser usada para criar aliases para as interfaces de rede. ifup eth0=home ifdown – Desativar uma interface de rede. • -a : desativar todas as interfaces de rede. route – Mostra e manipula tabelas de roteamento IP. • add e del são usados juntamente com -net ou -host (exemplo: route add -net 127.0.0.0) • -n : mostra endereços numéricos, sem tentar resolver nomes. • del : remove uma rota • add : adiciona uma rota • -net : o alvo é o endereço de uma rede • -host : o alvo é o endereço de um host • gw : quaisquer pacotes IP para a rede/máquina destino serão roteadas através do gateway/roteador especificado. netstat - Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões mascaradas. Você pode ver o estado das conexões de rede através da listagem dos sockets abertos. • -r / --route : obter as tabelas de roteamento do kernel. • -i / --interfaces : mostrar uma tabela de todas as interfaces. • -s / --statistics : Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que são lidas a partir de /proc/net/snmp. • -n : mostrar endereços numéricos, sem tentar resolver nomes. Executar Tarefas de Administração de Segurança find : Procura por arquivos em uma hierarquia de diretórios. • -perm : Especificar a permissão para os arquivos que se busca. • -L : Aceitar links simbólicos. • -mount : Não buscar em diretórios de outros sistemas de arquivos • -empty : Buscar arquivos vazios • -executable : Buscar arquivos executáveis • -group : Arquivos pertencentes a um determinado grupo • -name : Procurar arquivos pelo nome • -readable : Arquivos com permissão de leitura • -size : Definir o tamanho do arquivo. Pode ser antecedido por + ou – para indicar maior que ou menor que o tamanho especificado. find / -size +10M (k | M | G) • -type : Arquivos por tipo. D – diretórios, F – Regurar e L – link simbólico • -writable : Arquivos com permissão de escrita Para buscar todos arquivos com suid definido: find / ­perm ­u=rws 29
  • 30. (dar ênfase as opções de mudança de idade das senhas) passwd - mudar a senha de uma conta de usuário. Um usuário normal somente pode alterar a senha para sua própria conta, o super-usuário pode mudar a senha de qualquer conta. O usuário primeiro é questionado sobre sua senha atual, o super-usuário não precisa informar a senha atual. • -a : usado juntamente com -S, mostra informações sobre todos usuários. • -d / --delete : deletar uma senha de usuário. • -e / --expire : expira imediatamente a senha de uma conta. Isto força o usuário a mudar a sua senha no próximo login. • -i / --inactive dias : esta opção é usada para desabilitar uma conta depois que a senha houver expirado por um número de dias. • -l / --lock : trava a senha para uma conta. Não desabilita a conta, apenas o uso de senha. • -m / --mindays : definir o número de dias mínimo entre alterações de senhas. • -S / --status : mostra informações de estado da conta. Consiste em 7 campos. • Nome de login • Indica se a conta está travada (L), se tem senha definida (NP) ou se tem uma senha usável (P) • Data da última modificação • Idade mínima, idade máxima, período de alerta e período de inatividade, expressos em dias. • -u / --unlock : destravar a senha da conta de usuário. • -w / --warndays : definir o número de dias para o período de alerta. • -x / --maxdays : definir o número máximo de dias que uma senha continua válida. chage - mudar as informações de expiração da senha do usuário. Chage [opções] [login]. Muda o número de dias entre alterações de senhas, e a data da última alteração da senha. Usado pelo sistema para determinar quando um usuário deve alterar sua senha. • -d / --lastday dia : definir a data quando a senha foi alterada. A data pode ser expressa noformato YYYY-MM-DD. • -E / --expiredate : definir a data quando a senha da conta de usuário irá expirar. • -I / --inactive : definir o número de dias de inatividade desde que a senha tenha expirado até que a conta seja trancada. • -l / --list : mostrar informações sobre a idade das contas. • -m / --mindays : definir o número mínimo de dias para alterar a senha. • -M / --maxdays : definir o número máximo de dias durante os quais a senha é válida. • -W / --warndays : definir o número de dias do período de alerta até que uma alteração de senha seja exigida. lsof – Listar os arquivos abertos. Um arquivo aberto pode ser um arquivo regular, um diretório, um arquivo de bloco especial, entre outros. • Exemplo, saber um arquivo de texto aberto: lsof | grep .odt nmap – (Network Mapper) Ferramenta de exploração da rede e escaner de portas para segurança. Utilizado principalmente para auditorias de segurança. A saída do nmap é uma lista dos alvos escaneados, com informações suplementares que dependem de cada opção utilizada. • Especificação de alvo ◦ -iL <inputfilename> : Entrada de uma lista de hosts/redes ◦ -iR <num hosts> : Escolhe alvos aleatórios ◦ --exclude <host1[,host2][,host3],...> : Excluir hosts da redes ◦ --excludefile <exclude_file> : Lista de exclusão de arquivo 30
  • 31. Descoberta de host ◦ -SL : List Scan - metas simplesmente uma lista de verificação ◦ -sL : List Scan - lista de verificação ◦ -sP : Ping Scan - determinar se o host está online ◦ -P0 : Tratar todos os hosts como online - skip descoberta de hosts ◦ -PS[portlist] : TCP SYN descobre dados das portas ◦ -PA[portlist] : TCP ACK descobre dados das portos ◦ -PU[portlist] : UDP descobre dados das portas ◦ -PE : ICMP echo request descobre perdido (Descobre pacotes icmp perdidos) ◦ -PP : timestamp reques descobre perdido ◦ -PM : netmask request descobre perdido ◦ -n/-R : Never/Always às vezes resolver DNS padrão ◦ --dns-servers <serv1[,serv2],...> : Especificar servidores DNS personalizado ◦ --system-dns : Resolver dns do SO´s • Técnicas de escaneamento ◦ -sS : TCP SYN Scan ◦ -sT : Connect Scan ◦ -sA : ACK Scan ◦ -sW : Windows Scan ◦ -sM : Maimon scan ◦ -sN : TCP Null, scan ◦ -sF : FIN Scan ◦ -sX : Xmas Scan ◦ --scanflags <flags> : Customize TCP scan flags ◦ -sI <zombie host[robeport]> : Idlescan ◦ -sO : IP protocol scan ◦ -b <ftp relay host> : FTP bounce scan • Especificação de Portas e Ordem de Scan ◦ -p <port ranges (faixas)> : Escaneia apenas as portas especificadas ◦ -F : Fast - Escaneia apenas as portas listados no arquivo nmap-services ◦ -r : Escaneia portas consecutivamente - não aleatoriamente • Detecção de versão/serviço ◦ -sV : Probe abrir portas determinar serviço de informação / versão ◦ --version-intensity <level> : Set de 0 (claro) a 9 (tentar todas as sondas) ◦ --version-light : Limite para as sondas mais provável (intensidade 2 ◦ --version-all : Experimente todas as sondagens (intensidade 9) ◦ --version-trace : Mostrar versão detalhada verificação de atividade (para depuração) • Detecção de SO ◦ -O : Ativar a detecção de SO ◦ --osscan-limit : Limite de detecção de SO a alvos promissores ◦ --osscan-guess : Guess OS de forma mais agressiva • Calendário e desempenho ◦ Opções que tomar <hora> são em milissegundos, a menos que você adicione 's' (segundos), 'm' (minutos), ou 'h' (horas) para o valor (por exemplo, 30m). ◦ -T[0-5] : definir modelo de calendário (mais alto é mais rápido) ◦ --min-hostgroup/max-hostgroup <size> : Parallel host scan group sizes 31
  • 32. ◦ --min-parallelism/max-parallelism <time> : Probe parallelization ◦ --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time> : Especifica o tempo de ida e volta. ◦ --max-retries <tries> : Caps número de retransmissões de sondagens de scan de portas. ◦ --host-timeout <time> : Dê-se no alvo após este tempo ◦ --scan-delay/--max-scan-delay <time> : Ajuste o atraso entre sondagens • Firewall/IDS Evasion e Spoofing ◦ -f; --mtu <val> : fragmentar pacotes (opcionalmente w / dado MTU) ◦ -D <decoy1,decoy2[,ME],...> : Disfarça um scan com chamarizes ◦ -S <IP_Address> : Disfarça o endereço de origem ◦ -e <iface> : Usa a interface especificada ◦ -g/--source-port <portnum> : Use o número de determinada porta ◦ --data-length <num> : Acrescenta dados aleatórios nos pacotes enviados ◦ --ttl <val> : Defina o campo IP time-to-live ◦ --spoof-mac <mac add/prefix/vendor name> : Disfarça o endereço MAC ◦ --badsum : Enviar pacotes TCP/UDP com um falso checksum • Output ◦ -oN <file> : Saída de digitalização em formato normal ◦ -oX <file> : Saída de digitalização em formato XML ◦ -oS <file> : Saída digitalizar S|<rlpt kIddi3 formato ◦ -oG <file> : Saída de digitalização em formato grep ◦ -oA <basename> : Saída em três principais formatos de uma só vez ◦ -v : nível de verbosidade (uso duas vezes por mais efeito) ◦ -d[level] : Ajusta ou aumentar o nível de depuração (até 9) ◦ --packet-trace : Mostrar todos os pacotes enviados e recebidos ◦ --iflist : nterfaces de impressão do host e rotas (para depuração) ◦ --log-errors : Log de erros / avisos para a saída em formato de arquivo normal ◦ --append-output : Acrescentar ao invés de sobrepor especificado arquivos de saída ◦ --resume <filename> : Continuar um scan abortado ◦ --stylesheet <path/URL> : folha de estilo XSL para transformar a saída XML para HTML ◦ --webxml : Referência de estilo de Insecure.Org para XML mais portátil ◦ --no-stylesheet : Evitar associação de estilo XSL w / saída XML • Misc ◦ -6 : Ativar varredura IPv6 ◦ -A : Permite a detecção de SO e detecção de versão ◦ --datadir <dirname> : Especificar os dados personalizados Nmap localização do arquivo ◦ --send-eth/--send-ip : Enviar usando frames ethernet em estado bruto ou pacotes IP ◦ --privileged : Suponha que o usuário é altamente privilegiado ◦ -V : número de versão de impressão ◦ -h : Imprima esta página de resumo de ajuda. O programa sudo tem o propósito da segurança e serve essencialmente para executar um comando como outro usuário. Tipicamente usado para atribuir a usuários comuns poderes para tarefas administrativas sem precisarem da senha do root. • As permissões de acesso e definições são feitas no arquivo /etc/sudoers 32
  • 33. Se um usuário não listado no arquivo /etc/sudoers tentar executar um comando via sudo, um e-mail é enviado para o responsável definido no arquivo sudoers, por padrão o root. sudo – executar um comando como outro usuário. • -b : executar um comando em background • -E : preservar o sistema, incluindo variáveis • -e : ao invés de executar um comando, editar um arquivo. O mesmo que sudoedit. • -h : help, imprime uma mensagem de uso • -i : simula um login inicial. Essa opção roda o shell especificado em /etc/passwd. • -L : lista as opções padrão do sudo • -l : mostra quais comandos o usuário pode rodar • -s : usa um shell específico. • -u : faz o usuário rodar um comando como outro usuário que não o root sudoedit – editar um arquivo como outro usuário. /etc/sudoers – arquivo de configuração do sudo, lista os privilégios de cada usuário, definindo quem pode rodar o que e onde. Possui quatro seções explicadas na tabela a seguir. • Este arquivo deve pertencer ao usuário root e ter a permissão 440 Seção Objeto Descrição 1 Hosts Sintaxe: Host_Alias IDENTIFICADOR = endereco Utilizado para definir os grupos de hosts que serão utilizados nas restrições. Exemplo: Host_Alias LOCAL = localhost, 127.0.0.1 2 Usuários Sintaxe: User_Alias IDENTIFICADOR = usuarios Utilizado para definir os grupos de usuários que serão utilizados nas restrições. Exemplo: User_Alias ADMIN = yuri 3 Comandos Sintaxe: Cmnd_AliasIDENTIFICADOR = comandos Utilizado para definir grupos de comandos que serão utilizados nas restrições. Exemplo: Cmnd_Alias DESLIGAR = /sbin/shutdown -h now 4 Restrições Sintaxe: USUARIO COMPUTADOR = COMANDOS Define as restrições de acesso dos usuários. Mistura-se aqui os identificadores das seções anteriores à fim de montar regras que definam os acessos. Exemplo: ADMIN LOCAL = DESLIGAR su – Alterar o ID de usuário ou tornar-se super-usuário. Usado para se tornar outro usuário durante a sessão. Invocado sem argumentos, o su por padrão tentar tornar-se super-usuário. • -c : especificar um único comando a ser executado com a identidade de outro usuário. • -s : especificar o shell a ser utilizado com a nova identidade. • -p : preservar o sistema e suas variáveis. ulimit – Obter e definir os limites de usuários. Impôr limites aos utilizadores a nivel de numero de processos em execuçao, quotas de memoria, quotas de espaço em stack, numero de arquivos 33
  • 34. abertos, etc. • -c : Core file em blocos de 512 bytes • -d : Segmento de dados em Kbytes • -f : Tamanho maximo de cada ficheiro em blocos de 512 bytes • -n : Numero maximo de filedescriptor + 1 • -s : Stack em Kbytes • -t : Tempo de CPU em segundos • -v : Tamanho maximo de memoria virtual em Kbytes. ? • -m : Tamanho maximo de memoria • -u : Numero maximo de processos • -p : Tamanho para pipes em blocos de 512 • -S : Impoe o soft limit • -H : Impoe o hard limit • -a : Nostra os limits correntemente aplicados Configuração de Segurança do Host /etc/nologin – Previnir usuários sem privilégios de se logarem no sistema. Se o arquivo existir, o login será permitido apenas ao root, nenhum outro usuário poderá se logar no sistema. nologin – Recusar o login de forma educada. Mostra uma mensagem dizendo que a conta não está disponível atualmente. xinetd - O xinetd é responsável por vários serviços básicos de um sistema disponibilizados em uma rede. Muitos serviços de rede são implementados através de processos dedicados que esperam por requisições que chegam da rede. Mas dada a razoável quantidade de serviços, um esquema interessante foi implantado. Neste esquema, um único processo, chamado xinetd (Extend Internet Super Server), rodando na máquina que está oferecendo os serviços de rede, é responsável por escutar as requisições que chegam, e conforme a porta por onde chega à requisição, disparar e executar o processo correspondente àquele serviço. • O xinetd carrega seu arquivo de configuração e passa a “ouvir” por conexões em portas específicas. Quando uma conexão é solicitada, o xinetd executa o programa servidor correspondente para manipular o serviço solicitado. Então, desta forma, existirá apenas um servidor em memória esperando por uma solicitação. • O superservidor ou xinetd é configurado para iniciar a sua execução quando o sistema é inicializado, recebendo a lista de serviços a serem monitorados a partir de um arquivo denominado /etc/xinetd.conf Configuração do /etc/xinetd.conf: • As configurações inseridas dentro da sessão defaults serão aplicadas para todos os outros serviços configurados. defaults { instances = 25 //número de conexões simultâneas. per_source = 10 //máximo de conexões de uma mesma máquina. log_type = SYSLOG authpriv log_on_success = HOST PID USERID log_on_failure = HOST RECORD USERID 34
  • 35. } service telnet { flags = REUSE //Repassa as opções para o daemon log_type = FILE /var/log/telnet.log socket_type = stream //Tipo de soquete. Dgram, stream e raw protocol = tcp wait = no user = root server = /usr/sbin/in.telnetd //Daemon do serviço. bind = 200.1.1.20 //Definindo a origem para redirecionamentos. redirect = 192.168.1.111 23 //máquina que receberá a requisição. only_from = 192.168.1.0/24 //Limita o acesso ao serviço. } O inetd é chamado de Super-Servidor Internet porque ele gerencia conexões para diversos daemons. O inetd atua como um servidor gerenciador para outros daemons. Quando uma conexão é recebida pelo inetd, ele determina para qual daemon a conexão é destinada e executa o daemon correspondente e a ele delega o socket. Executar uma instância do inetd reduz a carga no sistema de forma geral, comparado a se executar cada daemon individualmente. • Ser arquivo de configuração é definido em /etc/inetd.conf • daytime, time, echo, discard, chargen, e auth são todos serviços fornecidos internamente pelo inetd. • -d : Ativa a depuração. • -l : Ativa o registro das conexões bem sucedidas. • -w : Ativa o encapsulamento TCP para serviços externos (ativado por padrão). • -W : Ativa o encapsulamento do TCP para serviços internos que são embutidos no inetd (ativado por padrão). • -c máximo : Especifica o número máximo padrão de invocações simultâneas de cada serviço; o padrão é ilimitado. Pode ser anulado em cada serviço com o parâmetro max-child. • -C taxa : Especifica o número máximo padrão de vezes que um serviço pode ser invocado a partir de um único endereço IP em um minuto; o padrão é ilimitado. • -R taxa : Especifica o número máximo de vezes que um serviço pode ser invocado em um minuto; o padrão é 256. Uma taxa de 0 permite um número ilimitado de invocações. • -p : Especifica um arquivo alternativo para armazenar o ID do processo. Configuração do /etc/inetd.conf: • Cada linha do arquivo de configuração especifica um daemon individual. Formato padrão nome­do­serviço tipo­de­socket protocolo {wait|nowait}[/max­de­filhos[/max­de­conexões­por­ip­por­minuto]] usuário[:grupo][/classe­de­login] programa­servidor argumentos­do­programa­servidor Exemplo: ftp stream tcp nowait root /usr/libexec/ftpd ftpd ­l telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd 35
  • 36. init - O init é sempre o primeiro processo do sistema (o seu número de processo é sempre igual a 1). • Seu principal papel é criar processos de um script guardado em /etc/inittab • Um runlevel é uma configuração de softwares do sistema que permite que apenas um grupo selecionado de processos exista. • Existem 8 runlevels, de 0 a 6 e S. • O programa telinit permite alterar o runlevel em execução. • Os runlevels S, 0, 1 e 6 são reservados. ◦ S : Inicializar o sistema. ◦ 0 : Desligar ◦ 1 : Mono-usuário ◦ 2 : Multiusuário, sem NFS ◦ 3 : Multiusuário completo ◦ 4 : Não usado ◦ 5 : X11 ◦ 6 : Reinicializar Depois que o init é invocado na última fase da sequência de boot do kernel, ele procura o arquivo /etc/inittab e busca uma entrada do tipo initdefault que determina o runlevel inicial do sistema. • Uma entrada no /etc/inittab tem o seguinte formato: ID : RUNLEVELS : ACTION : PROCESS Exemplo ­ iniciar o Tomcat tom:23:respawn:su ­­c "/usr/java/tomcat/bin/catalina.sh run ­security"  >/dev/null 2>&1 Em um sistema Debian temos a configuração do init no arquivo /etc/inittab. Nos diretórios /etc/init.d/rcN.d ficam localizados links simbólicos para os scripts que estão fisicamente gravados em /etc/init.d/, onde este "N" do "rcN.d" indica o número do runlevel em que o script ou daemon será executado. • No diretório /etc/init.d ficam guardados os scrips para os processos a serem executados na inicialização do sistema. TCPWrappers é um programa utilizado para filtrar e monitorar as requisições feitas para os daemons de serviços controlados pelo inetd (FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TALK e outros) e caso a conexão seja permitida, o controle da mesma é repassado para o daemon verdadeiro. • O TCPWrappers também mantém um log com todas as informações a respeito da conexão (horário, origem e daemon requisitado). • O controle de acesso é feito através dos arquivos: /etc/hosts.allow (Hosts com acesso permitido) e /etc/hosts.deny (Hosts com acesso negado). • Para que o TCPWrappers passe a controlar as conexões a estes daemons, deve-se editar o arquivo /etc/inetd.conf, substituindo-se a referência ao daemon original por uma referência ao daemon do TCPWrappers. /etc/inetd.conf sem TCPWrappers: telnet stream tcp nowait root /usr/sbin/telnetd telnetd 36
  • 37. /etc/inetd.conf com TCPWrappers: telnet stream tcp nowait root /usr/sbin/tcpd telnetd A sintaxe, tanto para o arquivo hosts.allow quanto hosts.deny possuem o seguinte formato: daemon : cliente [:opção1:opção2:...] Exemplo sshd : ALL ALL : ALL sshd : .example.com : severity local0.alert Você pode usar coringas na seção cliente da regra para classificar amplamente um conjunto de computadores. A seguir, os coringas válidos que podem ser usados: • ALL : Casa com tudo • LOCAL : Casa com qualquer computador que não contenha um ponto ("."), como por exemplo, localhost. • KNOWN : Casa com qualquer host em que seu nome e endereço sejam conhecidos ou em que o usuário é conhecido. • UNKNOWN : Casa com qualquer host em que o nome ou endereço são desconhecidos ou em que o usuário seja desconhecido. • PARANOID : Casa com qualquer computador em que o nome não bate com seu endereço. Protegendo os Dados com Criptografia SSH é um programa para conectar e executar comandos em uma máquina remota. Ele tem o propósito de prover comunicação criptografada segura entre dois hosts não seguros sobre uma rede insegura. Conexões X11 e portas Tcp arbitrárias podem ser repassadas dentro do canal seguro. • Se o comando for especificado, ele é executado no host remoto sem autenticar no shell • http://www.openssh.com/ ssh [-l login] [-o option] [-p porta] [usuario@] hostname [comando] • ~/.ssh/config : arquivo de configuração do cliente. • -C : requisita a compressão de todos os dados, utiliza o algoritmo do gzip. • -F arquivo : especificar um arquivo de configuração alternativo. • -g : permitir aos hosts remotos a conectarem às portas locais encaminhadas. • -i arquivo : selecionar um arquivo com a chave privada para autenticação RSA ou DSA. • -l login : especificar o usuário para logar na máquina remota. • -N : não executar comandos remotos. Útil somente para portas encaminhadas. • -p porta : porta para conectar ao host remoto. • -q : Modo silencioso. A maioria das mensagens de alerta e diagnóstico são suprimidas. • -v : Modo verbose. Faz o ssh imprimir mensagens de depuração. • -X : habilitar encaminhamento X11. • -x : desabilitar encaminhamento X11. A autenticação baseada em host trabalha como se segue: 1. Verificação se o usuário existe em /etc/hosts.equiv ou /etc/ssh/shosts.equiv da máquina remota e se o usuário é o mesmo dos dois lados. 37