Linux Professional exam 102 covers topics like customizing the shell environment, writing simple scripts, SQL data management, installing and configuring the X11 windowing system, accessibility, system administration tasks, scheduling jobs, localization, system time keeping, logging, email servers, printing, networking fundamentals, and security configuration and administration.
Este documento apresenta comandos básicos de shell script como cat, date, find, grep e test para manipular arquivos e strings. Também explica estruturas de controle como if/then e case para tomar decisões no fluxo do programa com base em condições e variáveis.
Este documento descreve shell scripts, uma linguagem de programação interpretada usada em sistemas operacionais como Linux. Shell scripts podem conter estruturas de programação como if/else, loops e funções, e são executados diretamente sem necessidade de compilação. O documento fornece exemplos simples de shell scripts usando variáveis e comandos.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
O documento apresenta um curso gratuito de Shell Script do básico ao intermediário ministrado por Wanderlei Silva do Carmo. A agenda inclui tópicos como histórico do Shell, variáveis, estruturas condicionais e de repetição, operadores aritméticos e redirecionamento de entrada e saída. O curso visa compartilhar conhecimento sobre a linguagem Shell Script e seu amplo uso em ambientes Unix.
O documento discute shell scripts no Linux, introduzindo conceitos como variáveis, controle de fluxo com if/case e laços como for/while. Ele fornece exemplos de scripts simples e lista comandos úteis como echo, read, if e case.
O documento fornece instruções para criar um shell script em 5 passos: 1) escolher um nome, 2) definir o diretório, 3) criar o arquivo e adicionar comandos, 4) definir o shell na primeira linha, 5) tornar o script executável. Ele também discute melhorar a saída, interagir com o usuário, usar variáveis e expressões aritméticas.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
Este documento apresenta comandos básicos de shell script como cat, date, find, grep e test para manipular arquivos e strings. Também explica estruturas de controle como if/then e case para tomar decisões no fluxo do programa com base em condições e variáveis.
Este documento descreve shell scripts, uma linguagem de programação interpretada usada em sistemas operacionais como Linux. Shell scripts podem conter estruturas de programação como if/else, loops e funções, e são executados diretamente sem necessidade de compilação. O documento fornece exemplos simples de shell scripts usando variáveis e comandos.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
O documento apresenta um curso gratuito de Shell Script do básico ao intermediário ministrado por Wanderlei Silva do Carmo. A agenda inclui tópicos como histórico do Shell, variáveis, estruturas condicionais e de repetição, operadores aritméticos e redirecionamento de entrada e saída. O curso visa compartilhar conhecimento sobre a linguagem Shell Script e seu amplo uso em ambientes Unix.
O documento discute shell scripts no Linux, introduzindo conceitos como variáveis, controle de fluxo com if/case e laços como for/while. Ele fornece exemplos de scripts simples e lista comandos úteis como echo, read, if e case.
O documento fornece instruções para criar um shell script em 5 passos: 1) escolher um nome, 2) definir o diretório, 3) criar o arquivo e adicionar comandos, 4) definir o shell na primeira linha, 5) tornar o script executável. Ele também discute melhorar a saída, interagir com o usuário, usar variáveis e expressões aritméticas.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
O documento fornece uma introdução sobre Shell Script, descrevendo os principais tipos de shell, a anatomia de uma linha de comando, atribuição de variáveis, comandos, redirecionamentos e controle de fluxo com if/else e loops.
Este documento apresenta uma introdução sobre shell scripts, incluindo o que são shells, variáveis de ambiente e o formato de arquivos de shell scripts. É explicado que shells executam comandos digitados pelo usuário e existem diferentes tipos de shells como bash e csh. Variáveis podem armazenar valores e são importantes para shells scripts. A primeira linha deve indicar qual shell executará o script.
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
O documento apresenta uma introdução aos shells e shell scripts, abordando tópicos como: o que são shells, os principais tipos de shells existentes, o que são shell scripts e suas principais características, sintaxe básica de shell scripts incluindo variáveis, comandos, estruturas de controle e funções. Também apresenta exemplos de uso de recursos como redirecionamento, caracteres curinga e manipulação de parâmetros.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento descreve um curso de Shell Script e discute blocos de código, laços (loops) e o comando for do Shell. O texto explica como funcionam blocos de código, laços e for através de exemplos de scripts, discutindo também variáveis e operadores importantes como IFS.
1) O documento resume uma aula sobre PHP, apresentando vários tópicos como estruturas de controle, repetição, funções e arrays.
2) Inclui exemplos de como utilizar estruturas como IF, ELSE, FOR e funções para manipular arquivos.
3) Discutiu formas de organizar o código PHP em camadas através da função INCLUDE.
Nesta aula, o documento ensina sobre comandos condicionais em shell script, incluindo:
1) O comando "if" executa um bloco de código se uma condição for verdadeira e outro bloco se for falsa, avaliando o código de retorno de um comando.
2) O comando "test" também avalia condições, podendo comparar strings, verificar propriedades de arquivos e expressões aritméticas.
3) É importante usar aspas duplas ao referenciar variáveis dentro de condições para que o bash possa substitu
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
O documento discute o uso do comando tput para formatar texto na tela e ler dados do usuário. Três principais funções do tput são apresentadas: posicionar o cursor, alterar atributos de texto (negrito, sublinhado etc) e obter informações sobre a tela (número de linhas e colunas). Um exemplo mostra como centralizar texto na tela usando tput. Leitura de dados pode ser feita com read e opcionais como -p (prompt), -n (número máximo de caracteres) e -t (tempo limite) são explicados.
O PHP é uma linguagem de script interpretada e executada em tempo de execução, normalmente utilizada para criar aplicações web. Ela é portável, de tipagem dinâmica e suporta programação procedural e orientada a objetos. O PHP é amplamente usado por sites como Wikipedia, Facebook e WordPress.
O documento descreve funções para manipulação de arquivos em C, incluindo fopen para abrir arquivos, fread e fwrite para ler e gravar dados binários, e funções como fgets e fputs para ler e gravar strings. Streams representam arquivos de forma independente do dispositivo, permitindo acesso uniforme a diferentes tipos de arquivos e dispositivos.
O documento discute shells, shell scripts e conceitos básicos de programação em shells no Linux. Ele explica o que são shells e shell scripts, apresenta exemplos de comandos shell comuns e conceitos como variáveis, redirecionamento de entrada e saída e lógica condicional.
O documento apresenta uma introdução sobre shells, shell scripts e variáveis de ambiente. Resume que shells são programas que interpretam comandos do usuário e executam ações correspondentes. Shell scripts são arquivos de texto que contêm comandos a serem executados sequencialmente pelo shell. Variáveis podem armazenar valores para uso posterior nos scripts.
O documento apresenta uma introdução sobre shells e shell scripts, abordando: 1) O que são shells e shell scripts; 2) As variáveis de ambiente usadas nos shells; 3) O formato dos arquivos de shell scripts.
O documento apresenta 7 exercícios de shell script para automatizar tarefas comuns. O primeiro exercício cria um script para ler e realizar operações matemáticas com números. O segundo lê um número e determina se é par ou ímpar. O terceiro imprime números de 1 a 5 usando um loop for.
O documento introduz os conceitos básicos de shell script, incluindo como escrever scripts, variáveis, aritmética, comandos, caracteres especiais, arquivos, conectando comandos, filtros, tomada de decisão e laços. Ele também explica o que é o shell do Linux, o que é shell script e por que usá-lo, e fornece um exemplo simples de construção de uma aplicação shell script.
O documento discute estruturas de controle em shell scripts, incluindo if/then, if/then/else, elif e comparações numéricas e de strings. Ele fornece exemplos de como usar essas estruturas para desviar o fluxo de acordo com condições e repetir blocos de comandos.
1. O documento apresenta exemplos de scripts shell com variáveis de ambiente, variáveis locais, entrada de dados, execução de comandos, operações matemáticas e variáveis especiais.
2. São mostrados comandos para manipular arquivos e diretórios, como renomear arquivos, listar arquivos e fazer backups.
3. Há também exemplos de laços, condicionais if/else, tratamento de parâmetros e chamadas de funções para automatizar tarefas.
O documento discute os principais aspectos do shell do Linux, incluindo sua função como interface entre o usuário e o kernel, os principais tipos de shell como bash e csh, e arquivos importantes de configuração do shell.
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
Palestra sobre Bash no Tchelinux.org, evento de Bagé em 26/08/2017. Com conhecimento de SysyAdmin o palestrante introduziu a platéia no na primeira hora. Depois deste slides houve demostração prática de 1h, dando tempo apenas para o mínimo até chegar na cron (agendamento/automação) de um script).
O documento discute como trabalhar na linha de comando em sistemas Linux, incluindo:
1) Usar comandos de shell, histórico de comandos e variáveis;
2) Personalizar o ambiente shell através de arquivos de configuração como .bashrc.
O documento fornece uma introdução sobre Shell Script, descrevendo os principais tipos de shell, a anatomia de uma linha de comando, atribuição de variáveis, comandos, redirecionamentos e controle de fluxo com if/else e loops.
Este documento apresenta uma introdução sobre shell scripts, incluindo o que são shells, variáveis de ambiente e o formato de arquivos de shell scripts. É explicado que shells executam comandos digitados pelo usuário e existem diferentes tipos de shells como bash e csh. Variáveis podem armazenar valores e são importantes para shells scripts. A primeira linha deve indicar qual shell executará o script.
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
O documento apresenta uma introdução aos shells e shell scripts, abordando tópicos como: o que são shells, os principais tipos de shells existentes, o que são shell scripts e suas principais características, sintaxe básica de shell scripts incluindo variáveis, comandos, estruturas de controle e funções. Também apresenta exemplos de uso de recursos como redirecionamento, caracteres curinga e manipulação de parâmetros.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento descreve um curso de Shell Script e discute blocos de código, laços (loops) e o comando for do Shell. O texto explica como funcionam blocos de código, laços e for através de exemplos de scripts, discutindo também variáveis e operadores importantes como IFS.
1) O documento resume uma aula sobre PHP, apresentando vários tópicos como estruturas de controle, repetição, funções e arrays.
2) Inclui exemplos de como utilizar estruturas como IF, ELSE, FOR e funções para manipular arquivos.
3) Discutiu formas de organizar o código PHP em camadas através da função INCLUDE.
Nesta aula, o documento ensina sobre comandos condicionais em shell script, incluindo:
1) O comando "if" executa um bloco de código se uma condição for verdadeira e outro bloco se for falsa, avaliando o código de retorno de um comando.
2) O comando "test" também avalia condições, podendo comparar strings, verificar propriedades de arquivos e expressões aritméticas.
3) É importante usar aspas duplas ao referenciar variáveis dentro de condições para que o bash possa substitu
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
O documento discute o uso do comando tput para formatar texto na tela e ler dados do usuário. Três principais funções do tput são apresentadas: posicionar o cursor, alterar atributos de texto (negrito, sublinhado etc) e obter informações sobre a tela (número de linhas e colunas). Um exemplo mostra como centralizar texto na tela usando tput. Leitura de dados pode ser feita com read e opcionais como -p (prompt), -n (número máximo de caracteres) e -t (tempo limite) são explicados.
O PHP é uma linguagem de script interpretada e executada em tempo de execução, normalmente utilizada para criar aplicações web. Ela é portável, de tipagem dinâmica e suporta programação procedural e orientada a objetos. O PHP é amplamente usado por sites como Wikipedia, Facebook e WordPress.
O documento descreve funções para manipulação de arquivos em C, incluindo fopen para abrir arquivos, fread e fwrite para ler e gravar dados binários, e funções como fgets e fputs para ler e gravar strings. Streams representam arquivos de forma independente do dispositivo, permitindo acesso uniforme a diferentes tipos de arquivos e dispositivos.
O documento discute shells, shell scripts e conceitos básicos de programação em shells no Linux. Ele explica o que são shells e shell scripts, apresenta exemplos de comandos shell comuns e conceitos como variáveis, redirecionamento de entrada e saída e lógica condicional.
O documento apresenta uma introdução sobre shells, shell scripts e variáveis de ambiente. Resume que shells são programas que interpretam comandos do usuário e executam ações correspondentes. Shell scripts são arquivos de texto que contêm comandos a serem executados sequencialmente pelo shell. Variáveis podem armazenar valores para uso posterior nos scripts.
O documento apresenta uma introdução sobre shells e shell scripts, abordando: 1) O que são shells e shell scripts; 2) As variáveis de ambiente usadas nos shells; 3) O formato dos arquivos de shell scripts.
O documento apresenta 7 exercícios de shell script para automatizar tarefas comuns. O primeiro exercício cria um script para ler e realizar operações matemáticas com números. O segundo lê um número e determina se é par ou ímpar. O terceiro imprime números de 1 a 5 usando um loop for.
O documento introduz os conceitos básicos de shell script, incluindo como escrever scripts, variáveis, aritmética, comandos, caracteres especiais, arquivos, conectando comandos, filtros, tomada de decisão e laços. Ele também explica o que é o shell do Linux, o que é shell script e por que usá-lo, e fornece um exemplo simples de construção de uma aplicação shell script.
O documento discute estruturas de controle em shell scripts, incluindo if/then, if/then/else, elif e comparações numéricas e de strings. Ele fornece exemplos de como usar essas estruturas para desviar o fluxo de acordo com condições e repetir blocos de comandos.
1. O documento apresenta exemplos de scripts shell com variáveis de ambiente, variáveis locais, entrada de dados, execução de comandos, operações matemáticas e variáveis especiais.
2. São mostrados comandos para manipular arquivos e diretórios, como renomear arquivos, listar arquivos e fazer backups.
3. Há também exemplos de laços, condicionais if/else, tratamento de parâmetros e chamadas de funções para automatizar tarefas.
O documento discute os principais aspectos do shell do Linux, incluindo sua função como interface entre o usuário e o kernel, os principais tipos de shell como bash e csh, e arquivos importantes de configuração do shell.
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
Palestra sobre Bash no Tchelinux.org, evento de Bagé em 26/08/2017. Com conhecimento de SysyAdmin o palestrante introduziu a platéia no na primeira hora. Depois deste slides houve demostração prática de 1h, dando tempo apenas para o mínimo até chegar na cron (agendamento/automação) de um script).
O documento discute como trabalhar na linha de comando em sistemas Linux, incluindo:
1) Usar comandos de shell, histórico de comandos e variáveis;
2) Personalizar o ambiente shell através de arquivos de configuração como .bashrc.
Shell script do zero aula 1 - basico do basico e primeiros comandosIvan Ribeiro
Este documento apresenta os principais comandos de shell script para automatizar tarefas no Linux, incluindo comandos básicos como echo, sleep e read, além de comandos para diretórios, usuários, rede, sistema e compactação de arquivos. O objetivo é ensinar os conceitos básicos de shell script para quem não tem experiência com programação ou shells.
O documento descreve comandos básicos do Linux como cd, ls, cp, mv, touch, mkdir, rm, cat, more, less, head, tail, wc, sort, cut, find, locate e grep para navegar no sistema de arquivos, manipular arquivos e diretórios, visualizar conteúdo de arquivos e localizar arquivos. Ele também fornece exemplos de uso para cada comando.
O documento apresenta uma oficina sobre programação em Shell Script, introduzindo os principais tipos de shells, como criar e executar scripts simples, utilizar variáveis, comandos test, redirecionamentos e ordenar números lidos.
O documento resume os principais pontos sobre wildcards, variáveis de ambiente e comandos em shell script. Em 3 frases:
Wildcards como * e ? permitem especificar múltiplos arquivos de uma vez para listar, copiar ou apagar. Variáveis de ambiente como $USER e $HOME são definidas pelo sistema operacional e podem ser acessadas em scripts. Comandos como if, for e case permitem estruturar o fluxo de execução em scripts shell.
O documento descreve diversas ferramentas de linha de comando do Linux ("power tools") que permitem maior eficiência e automatismo em tarefas. Apresenta comandos como shell, man, alias, awk, sed, tr, grep, find, xargs, screen e strace, explicando suas funções e sintaxes básicas.
Introdução à Shell Script - Vinícius Alves HaxTchelinux
"Tópicos abordados:
Filosofia dos sistemas Unix e como os utilitários se interligam
O que é shell? O que é bash?
Entrada e saída em bash
Estruturas de controle no bash (for, if, while)
Alguns utilitários interessantes: awk, head, tail, sort, etc"
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosLuiz Arthur
O documento discute os sistemas de arquivos em sistemas operacionais. Explica que os sistemas de arquivos organizam hierarquicamente arquivos e diretórios e fornecem detalhes sobre como arquivos e diretórios são identificados e localizados no Linux através de inodes. Também apresenta alguns comandos básicos para manipulação e gerenciamento de arquivos e diretórios como ls, cd, pwd, mkdir e rmdir.
O documento fornece uma introdução aos scripts em shell, ensinando como criar um script simples com três comandos e resolvendo problemas comuns de execução. É explicado como adicionar comandos a um arquivo, torná-lo executável e melhorar a saída. Conceitos avançados como variáveis, expressões e estruturas de controle são apresentados.
O documento fornece uma introdução aos scripts em shell, explicando:
1) O que são scripts em shell e como criar um primeiro script simples;
2) Como melhorar um script adicionando saída formatada, interação com o usuário e comentários;
3) Conceitos importantes como variáveis, comandos e operadores.
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 identificadordatarefa comando
@nome_do_período delay identificadordatarefa 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.popgo.rnp.br
server ntp.popdf.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 updaterc.d relogio defaults
ntpdate ntp.popgo.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
nomedoserviço
tipodesocket
protocolo
{wait|nowait}[/maxdefilhos[/maxdeconexõesporipporminuto]]
usuário[:grupo][/classedelogin]
programaservidor
argumentosdoprogramaservidor
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