Escolar Documentos
Profissional Documentos
Cultura Documentos
LPIC – 101
por Luciano Antonio Siqueira
À Quem se Destina
O presente material destina-se à todos que desejam obter a certificação Linux LPI nível 1. No entanto,
o guia também poderá ser útil a quem não pretende obter a certificação, mas interessa-se em
aprofundar seus conhecimentos em administração de sistemas GNU/Linux.
Contribuições
Todos leitores são convidados a contribuir para o guia. Sugestões para aprofundar os tópicos e
exercícios para cada objetivo serão muito bem vindos.
Caso identifique informações incorretas, erros de ortografia ou outros equívocos, informe o autor:
<lcnsqr em yahoo·com·br>
Informações de Copyright
Copyright (c) Luciano Antonio Siqueira.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
Leia The GNU Manifesto se você quiser saber porquê essa licença foi escolhida para esse material.
O guia foi escrito com todo esforço para garantir a confiabilidade das informações contidas. No
entanto, as informações aqui contidas são oferecidas sem qualquer garantia, expressa ou implícita. O
responsável pelo material aqui apresentado não se responsabiliza por possíveis danos causados ou
alegação do gênero em relação à este livro. Tampouco a leitura deste guia é garantia de sucesso na
obtenção da certificação LPI nível 1.
5
Introdução
Os logotipos, marcas registradas e símbolos usados neste livro são de propriedade de seus respectivos
proprietários.
Pré-requisitos
Para melhor utilização deste guia, presume-se que o leitor já esteja familiarizado com o sistema
GNU/Linux. Portanto, os assuntos são abordados de maneira direta, com objetivo de serem apenas
referência rápida para posterior estudo e exercício mais aprofundados. O material foi escrito e testado
num computador rodando Linux Slackware 10.2.
6
Tópico 101: Hardware e Arquitetura
Objetivo 1.101.1: Configuração de Atributos Fundamentais de
BIOS
Peso: 1
Recursos de Hardware
O hardware básico do sistema é configurado através do utilitário de configuração de BIOS, que pode
ser acessado no início do boot da máquina. Através deste utilitário, é possível liberar e bloquear
periféricos integrados, ativar proteção básica contra erros (proteção básica contra vírus e S.M.A.R.T.)
e configurar endereços I/O, IRQ e DMA.
✔ IRQ: Requisição de Interrupção do dispositivo para a CPU, que interrompe a atividade em
andamento e processa a instrução enviada pelo dispositivo.
✔ I/O: Endereço específico no mapa de memória do sistema. A CPU irá se comunicar com o
dispositivo lendo e escrevendo neste endereço.
✔ DMA: Canal que permite à certos dispositivos acesso direto à memória sem intermédio da
CPU.
Recursos padrão utilizados por dispositivos comuns:
Dispositivo Porta I/O IRQ
/dev/ttyS0 0x03f8 4
/dev/ttyS1 0x02f8 3
/dev/ttyS2 0x03e8 4
/dev/ttyS3 0x02e8 3
/dev/lp0 0x378 7
/dev/lp1 0x278 5
Placa de Som 0x220 -
É comum que algumas máquinas, como servidores dedicados, sejam acessados apenas remotamente e
não tenham um teclado conectado. Em caso de algum problema que faça a máquina desligar, como
interrupção no fornecimento de energia, é importante que a máquina reinicie e volte a operar
normalmente. Alguns BIOS procuram por um teclado e interrompem o boot caso não o encontrem.
Para esse tipo de máquina sem teclado, é imprescindível que o BIOS esteja configurado para não
checar por teclado durante o boot.
O kernel do Linux armazena informações sobre recursos de dispositivos no diretório /proc, nos
arquivos:
✔ /proc/dma
✔ /proc/interrupts
✔ /proc/ioports
✔ /proc/pci
7
Tópico 101: Hardware e Arquitetura
8
Tópico 101: Hardware e Arquitetura
# dmesg
(...)
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
parport0: PC-style at 0x378 (0x778) [PCSPP(,...)]
parport0: irq 7 detected
lp0: using parport0 (polling).
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
(...)
Modems
Para utilizar um modem externo, tudo que precisa ser considerado é a porta serial a qual ele está
conectado. Se o modem for PCI interno, precisar-se-á saber qual é a porta I/O e a interrupção
utilizadas pelo mesmo. Isso pode ser conseguido com o comando lspci -v.
Para configurar a porta serial do modem interno, usa-se o comando setserial. Para checar se uma
porta serial está em uso, usa-se setserial -g dispositivo.
Checando portas serias com setserial:
# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
No caso do exemplo, apenas a primeira porta serial (/dev/ttyS0) está em uso. Às demais podem
ser atribuídos os valores de recursos do modem conseguidos através do comando lspci -v.
Por exemplo, se os valores relativos ao modem forem I/O 0xdc80 e IRQ 9 pode-se atribuir esses
valores à porta /dev/ttyS3, que está livre:
# setserial /dev/ttyS3 port 0xdc80 irq 9 autoconfig
e cria-se um link simbólico /dev/modem para /dev/ttyS3:
# ln -s /dev/ttyS3 /dev/modem
O comando setserial também é usado para controlar a velocidade da porta serial.
Usar /dev/ttyS3 a 115kb:
# setserial /dev/ttyS3 spd_vhi
Argumentos setserial de velocidade:
spd_hi
56kb quando solicitado for 38.4
spd_vhi
9
Tópico 101: Hardware e Arquitetura
Placas de Som
Há dois tipos principais de suporte a placas de som no GNU/Linux, OSS (Open Sound System) e
ALSA (Advanced Linux Sound Architeture).
Para encontrar o dispositivo de som:
# lspci | grep -i audio
00:0f.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
Caso o dispositivo não pôde ser encontrado dessa forma, toda a saída de dmesg e lspci pode ser
consultada para procurar o dispositivo correspondente ao áudio.
Identificada a placa, é possível carregar o módulo correspondente, seja ele OSS ou ALSA. A entrada
em /etc/modules.conf referente ao primeiro dispositivo de áudio encontrado é sound-slot-
10
Tópico 101: Hardware e Arquitetura
11
Tópico 101: Hardware e Arquitetura
ISDN
Há várias maneiras de se usar ISDN no GNU/Linux. A mais simples é empregar um dispositivo ISDN
externo que disca, autentica e abre a sessão sozinho, disponibilizando a conexão pela interface
ethernet. Se o computador está ligado diretamente à conexão ISDN, é necessário um dispositivo
chamado Terminal Adapter (TA).
Em TAs conectados à porta serial e em alguns dispositivos USB, aparecerá uma interface de
comandos AT exatamente como se o TA fosse um modem. É simples porém pouco eficiente.
Outra maneira mais eficiente de usar uma linha ISDN é usar um adaptador (PCI, ISA, PCCARD)
conectado diretamente ao barramento da máquina. O utilitário isdn4linux incorpora muitos dos
percalços de uma conexão ISDN e a estabelece com se fosse uma interface de rede convencional.
12
Tópico 101: Hardware e Arquitetura
DSL
Como na conexão ISDN, o mais simples é que um dispositivo DSL externo estabeleça a conexão e aja
como um roteador para a máquina. Se você possui um modem DSL e seu provedor usa PPPoE (Point
to Point Protocol over Ethernet) você precisará de um cliente PPPoE. Neste caso, a ferramenta de
conexão para DSL é o pppoe.
13
Tópico 102: Instalação do GNU/Linux e
Administração de Pacotes
Objetivo 1.102.1: Criação de Esquemas de Partições de Disco
Peso: 5
Para acessar recursos em disco o sistema utiliza um mecanismo chamado montagem. Em sistemas
UNIX, significa anexar um disco a um diretório, chamado ponto de montagem. Para o usuário, os
recursos aparecem como uma árvore de diretórios e subdiretórios.
A raiz da árvore de diretórios é representada por uma barra “ / ”. É necessariamente o primeiro
diretório a ter um dispositivo anexado. Depois de montada a raiz, os diretórios contidos neste
dispositivo poderão ser pontos de montagem para outros dispositivos.
Processo de montagem:
1. O carregador de boot carrega o kernel e transmite as informações sobre a localização do
dispositivo raiz.
2. Os demais dispositivos são montados conforme as instruções encontradas em /etc/fstab.
Etapas da criação do layout de disco:
✔ Criar partições de tamanho específico
✔ Escolher o sistema de arquivos
✔ Determinar um ponto de montagem para cada partição
Duas partições é o mínimo exigido em sistemas GNU/Linux, uma que será a raiz “ / ” e outra que
será a partição de troca swap. Muitas vezes, pode haver um terceira partição pequena, no início do
disco, apenas para armazenar o kernel e o carregador de boot secundário. Fora essas, não há regras
inflexíveis quanto à criação de partições, devendo ser avaliado o melhor esquema para a função que o
sistema desempenhará.
A partição raiz deve ser do tipo Linux Native, cujo código é 83 (0x83). Tudo no sistema poderá
existir diretamente no dispositivo raiz. No entanto, certos tipos de arquivos são processados de formas
bem distintas de outros arquivos. Em certos casos, é interessante criar uma partição distinta para certo
diretório, principalmente em servidores que são muito exigidos. Essa estratégia também impede que
os dados no disco se fragmentem muito.
Outra questão é o backup. Enquanto certos arquivos não necessitam de backup, outros exigem-no.
Mesmo dentre os quais é realizado o backup, alguns são pouco alterados durante um determinado
período enquanto que outros são constantemente alterados ou criados. A criação de partições
diferentes para cada diretório que comporte um tipo distinto de arquivos facilita as operações de
criação e recuperação de backup.
Sugestões de diretórios que podem estar em outros dispositivos/partições:
/var
Este diretório contém os as filas de email e impressão, que são muito manipuladas. Há
também os arquivos de log, cujo conteúdo está em constante alteração e crescimento.
/usr
Programas, códigos fonte e documentação. O ciclo de alteração desses arquivos é longo.
15
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
/tmp
Espaço temporário utilizado por programas. Uma partição distinta para /tmp impedirá que
dados temporários ocupem todo o espaço no diretório raiz, causando travamento do sistema.
Não necessita de backup.
/home
Diretórios pessoais do usuário. Uma partição distinta ajuda a limitar o espaço disponível para
usuários comuns.
/boot
Ponto de montagem para a partição do kernel e do carregador de boot. Necessário apenas caso
o sistema exija que o kernel esteja antes do cilindro 1024 do disco.
A Partição Swap
Uma partição é swap é identificada pelo código 82 (0x82), atribuído quando da sua criação.
Geralmente, a partição swap é do mesmo tamanho que o montante de memória RAM no sistema. Para
servidores, esses número pode ser maior. Uma partição swap muito maior que isso provavelmente não
terá o espaço excedente utilizado. É possível haver mais de uma partição de swap.
É preferível criar partições de swap nos dispositivos mais rápidos, se possível em dispositivos
distintos daqueles que têm seus dados muito acessados pelo sistema.
Também é possível criar grandes arquivos como área de swap, o que é geralmente feito em situações
emergenciais, quando o sistema ameaça ficar sem memória disponível:
# dd if=/dev/zero of=emerg.swp bs=1024k count=32
32+0 registros de entrada
32+0 registros de saída
# mkswap emerg.swp
Setting up swapspace version 1, size = 33550 kB
no label, UUID=543baaad-d660-4a5d-881d-fb7f1485b992
# swapon emerg.swp
# cat /proc/swaps
Filename Type Size Used
Priority
/dev/hda2 partition 160640 39760 -1
/root/emerg.swp file 32760 0 -2
LILO
O LILO (Linux Loader) é dividido em três componentes:
✔ lilo – o carregador propriamente. É instalado na MBR e carrega o boot loader de segundo
estágio, geralmente localizado em /boot/boot.b
16
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
17
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
GRUB
O grub (Grand Unified Bootloader) é uma alternativa ao lilo. Também é instalado na MBR; pelo
comando /sbin/grub ou pelo /sbin/grub-install, que obtém as instruções de
/boot/grub/grub.conf.
Principais seções de /boot/grub/grub.conf:
✔ global
➢ default – imagem de boot padrão (começa por 0)
➢ timeout – tempo de espera para iniciar o boot, em segundos
✔ imagem
➢ title – nome para a imagem
➢ root – localização do carregador de segundo estágio e do kernel (hd0,0 = /dev/hda)
➢ kernel – caminho para o kernel à partir de root
➢ ro – read-only
➢ initrd – caminho para a imagem initrd
Diferente do lilo, o comando grub-install não precisa ser executado toda vez que forem
feitas alterações ao arquivo /boot/grup/grub.conf. Uma vez instalado, o carregador de boot
do grub lê o arquivo /boot/grub/grub.conf diretamente.
18
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
# umount /mnt/floppy
O disquete de boot está pronto. É importante lembrar que disquetes de boot criados dessa forma só
funcionaram na própria máquina onde foram feitos. Caso sejam feitas alterações no kernel ou
localização da partição raiz, as configurações deverão ser adequadas e o lilo reinstalado no disquete.
A maioria das distribuições GNU/Linux fornece Cds de boot para instalação do sistema. Esses
mesmos Cds podem ser usados para acessar e dar boot num sistema já instalado e que possa estar
inacessível por uma falha do carregador de boot. Para iniciar um sistema já instalado, os seguintes
parâmetros são passados no prompt de boot:
boot: linux root=/dev/hda3 noinitrd ro
Onde “linux” é o nome do kernel e “/dev/hda3” é a partição raiz. Já dentro do sistema, é
possível reinstalar o carregador de boot.
Geralmente será necessário alterar a seqüência dos dispositivos de boot no BIOS da máquina sempre
que um dispositivo de boot alternativo for utilizado.
Para fazer o backup da MBR, basta copiar os primeiros 512kb do disco, o que pode ser feito usando o
comando dd:
# dd if=/dev/hda of=mbr.backup bs=1k count=512
Este backup pode ser guardado num disquete e depois restaurado para a MBR:
# dd if=mbr.backup of=/dev/hda
19
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
✔ z → gzip
✔ j → bzip2
Criar um arquivo tar “programa.tar.bz2” contendo o diretório ./programa/ e seu conteúdo,
compactando com bzip2:
$ tar cjf programa.tar.bz2 ./programa/
20
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
21
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
O primeiro argumento passado ao comando rpm é chamada argumento modo maior. As demais são
as opções de modo menor.
Opções de modo maior para o rpm:
-i → Ou --install. Instala o pacote
-U → Ou --update. Atualiza ou instala o pacote
-F → Ou --freshen. Atualiza o pacote apenas se o mesmo estiver instalado
-V → Ou --verify. Verifica o tamanho, MDB, permissões, tipo,integridade, etc.
-q → Ou --query. Investiga pacotes e arquivos
-e → Ou --erase. Desinstala o pacote
Opções de modo menor para o rpm
a → Aplica em todos pacotes instalados
c → Com “q” lista arquivos de configuração
d → Com “q” lista arquivos de documentação
f → Com “q” verifica qual pacote instalou o arquivo referido
h → Mostra progresso visual da instalação
i → Com “q” lista informações sobre o pacote
l → Com “q” lista todos arquivos e diretórios do pacote
p → Com “q” indica que a investigação é realizada no arquivo .rpm
v → Modo descritivo
Outras opções
--nodeps
Instala o pacote sem checar as dependências
--force
Força a instalação/atualização
--test
Mostra como seria a instalação mas não instala
--requires
Com “q”, mostra as exigências para o pacote especificado
--whatrequires
Com “q”, mostra quais dependem do pacote especificado
Assinaturas de Pacotes
É possível checar a assinatura de todo pacote distribuído como parte de um projeto. Se a distribuição
for Fedora, por exemplo, as chaves são incorporadas ao banco de dados do rpm com o comando
# rpm --import /usr/share/rhn/RPM-GPG-KEY-FEDORA
22
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
Integridade do Pacote
A integridade do pacote é checada usando a opção -V. A opção -Va checa todos os pacotes. A
análise é feita tendo como referência os arquivos originais do pacote.
Significado dos caracteres retornados pela verificação:
. → Teste bem sucedido
? → O teste não pôde ser realizado
S → O tamanho do arquivo mudou
M → A permissão ou o tipo do arquivo mudou
5 → A soma MD5 do arquivo é diferente
D → O dispositivo foi modificado
L → O link simbólico foi modificado
U → O dono do arquivo mudou
G → O grupo do arquivo mudou
T → A data do arquivo mudou
Atualizar um pacote:
# rpm -Uvh xyz.rpm
23
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
24
Tópico 103: Comandos GNU e Unix
Objetivo 1.103.3: Trabalhando na Linha de Comando
Peso: 5
A maneira mais direta de interagir com o computador é usando a linha de comando. O prompt do
shell (terminando em $ ou # para o usuário root) indica que está pronto para receber instruções.
O shell é o ambiente que faz o intermédio entre o usuário e os recursos do computador, como um
ambiente de programação em tempo real para executar tarefas. O shell padrão no GNU/Linux é o
bash (Born Again Shell). Os procedimentos aqui mostrados se referem ao bash.
As instruções do shell geralmente seguem o formato: comando [opções] {argumentos}
Alguns comandos embutidos do shell:
alias
Cria um codinome para um comando, no formato
$ alias codinome='nome_do_programa --opções'
É útil para facilitar a entrada de comandos recorrentes que levam muitos argumentos. Usar alias
sem argumentos mostra quais aliases existem e seus conteúdos.
exec
O comando iniciado através de exec não se torna um processo filho do shell, mas toma seu lugar.
Dessa forma, o shell é finalizado quando o comando terminar.
O shell interpreta a primeira palavra na linha de comando como um comando. O caminho completo
ou relativo para o comando precisa ser fornecido, a menos que o comando esteja localizado em um
dos diretórios contidos na variável de ambiente PATH. Se o programa encontra-se no diretório de
trabalho atual e fora dos diretório contidos em PATH, ele precisará ser invocado começando por ./ :
$ ./programa_local
Variáveis
As variáveis usadas no shell são semelhantes às usadas em linguagens de programação. Nomes de
variáveis são limitadas a caracteres alfanuméricos.
Criar/Modificar uma variável (espaços não devem ser usados):
$ nome_da_variável=valor_da_variável
25
Tópico 103: Comandos GNU e Unix
Todas as variáveis são listadas usando o comando set. Para ver apenas as variáveis exportadas, usa-
se env.
Exemplo de set:
# set
(...)
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi
n
PIPESTATUS=([0]="0")
PPID=16226
PS1='\u@\h:\w\$
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt
SHELL=/bin/bash
(..)
Exemplo de env:
# env
(...)
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi
n
LC_COLLATE=C
PWD=/root
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/lib/java
LANG=pt_BR
(...)
Se uma variável pode ser acessada por qualquer processo ou shell, é chamada de variável global.
Variáveis pré-definidas
DISPLAY
Usado pelo X para saber onde executar os aplicativos clientes
HISTFILE
Caminho para o histórico de comandos do usuário (geralmente $HOME/.bash_history)
HOME
Caminho para o diretório pessoal do usuário
LOGNAME
O nome que o usuário usou para entrar no sistema
PATH
Lista de diretórios nos quais programas serão procurados caso tenham sido solicitados sem o
caminho completo ou relativo
PWD
O diretório atual
26
Tópico 103: Comandos GNU e Unix
SHELL
O shell utilizado (neste caso, /bin/bash)
TERM
O tipo de emulador de terminal utilizado
Variáveis especiais
$! → PID do último processo filho
$$ → PID do shell atual
$? → Retorna 0 se o último comando foi bem sucedido, caso contrário retorna 1
~ → Corresponde ao diretório pessoal do usuário atual
~alaor → Corresponde ao diretório pessoal do usuário chamado “alaor”
Histórico de comandos
Para mostrar o histórico de comandos digitados pelo usuário atual, usa-se o comando history.
History é um comando embutido do bash.
É possível usar atalhos no estilo do emacs para listar o histórico:
Ctrl+p → Linha anterior
Ctrl+n → Próxima linha
Ctrl+b → Volta um caracter
Ctrl+f → Avança um caracter
Ctrl+a → Começo da linha
Ctrl+e → Fim da linha
Outros atalhos:
!! → roda o último comando
!a → roda o último comando que começa pela letra “a”
!2 → roda o comando na 2ª posição do histórico
!-2 → roda o penúltimo comando
^termo1^termo2 → roda o último comando substituindo “termo1” por “termo2”
O arquivo ~/.profile contém personalizações do bash para o usuário, como aliases e variáveis
particulares.
Exemplo de entrada em ~/.profile :
alias ls='ls --color'
Dessa forma, o alias para ls será permanente.
27
Tópico 103: Comandos GNU e Unix
Comandos Seqüenciais
Executar três comandos em seqüência, independente do resultado de cada um:
$ Comando1 ; comando2 ; comando3
Executar o comando seguinte apenas se o anterior foi bem sucedido (se retornou 0):
$ comando1 && comando2 && comando3
Executar o comando seguinte apenas se o anterior não foi bem sucedido (se retornou diferente de 0):
$ comando1 || comando2 || comando3
28
Tópico 103: Comandos GNU e Unix
head
Mostra o começo de arquivos. Por padrão, as 10 primeiras linhas são mostradas. A quantidade de
linhas a serem mostradas é indicada pela opção -n :
$ head -n 5 /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/log:
lp:x:4:7:lp:/var/spool/lpd:
A opção -c especifica o número de caracteres (bytes) a serem mostrados no lugar de linhas:
$ head -c 5 /etc/passwd
root:
tail
Mostra o final de arquivos. Por padrão, as 10 últimas linhas são mostradas. A quantidade de linhas a
serem mostradas é indicada pela opção -n :
$ tail -n 1 texto_simples
criado com cat
A opção -c especifica o número de caracteres (bytes) a serem mostrados no lugar de linhas. A para
que o fim do arquivo seja mostrado continuamente, a medida que mais texto é adicionado au final do
mesmo, usa-se a opção -f (de follow). O sinal “+” indica que a leitura deve ser feita a partir da linha
de número especificado após o “+”:
$ tail +35 /etc/group
console::101:
messagebus:x:102:
haldaemon:x:103:haldaemon
wc
Conta linhas, palavras ou caracteres, com as opções -l, -w e -c respectivamente. Quando usado sem
argumentos, mostra esses três valores na sequência.
$ wc texto_simples
2 5 29 texto_simples
$ wc -l texto_simples
2 texto_simples
$ wc -w texto_simples
5 texto_simples
$ wc -c texto_simples
29 texto_simples
nl
Numera linhas, como cat -b. O argumento -ba faz numerar todas as linhas. O argumento -bt
apenas as que não estejam em branco
$ nl texto_simples
1 texto simples
2 criado com cat
expand
Substitui espaços de tabulação (TABs) por espaços simples, mantendo a mesma distância aparente.
Contar os caracteres de /etc/fstab e comparar ao mesmo arquivo filtrado por expand:
29
Tópico 103: Comandos GNU e Unix
$ wc -c /etc/fstab
773 /etc/fstab
$ expand /etc/fstab | wc -c
820
unexpand
Substitui dois ou mais espaços simples por espaços de tabulação (TABs).
hexdump
Mostra arquivos binários. A opção -C torna a saída mais legível, mostrando a coluna de endereço
hexadecimal, seguida pela coluna dos dados do arquivo (valores hexadecimais sequenciais separados
a cada dois bytes) e por último a coluna que mostra esses mesmos bytes no formato ASCII.
Examinando o começo do arquivo /bin/cat:
$ hexdump -C /bin/cat | head
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 70 8b 04 08 34 00 00 00 |........p...4...|
00000020 90 39 00 00 00 00 00 00 34 00 20 00 07 00 28 00 |.9......4. ...(.|
00000030 19 00 18 00 06 00 00 00 34 00 00 00 34 80 04 08 |........4...4...|
00000040 34 80 04 08 e0 00 00 00 e0 00 00 00 05 00 00 00 |4...à...à.......|
00000050 04 00 00 00 03 00 00 00 14 01 00 00 14 81 04 08 |................|
00000060 14 81 04 08 13 00 00 00 13 00 00 00 04 00 00 00 |................|
00000070 01 00 00 00 01 00 00 00 00 00 00 00 00 80 04 08 |................|
00000080 00 80 04 08 cd 35 00 00 cd 35 00 00 05 00 00 00 |....Í5..Í5......|
00000090 00 10 00 00 01 00 00 00 d0 35 00 00 d0 c5 04 08 |........Ð5..ÐÅ..|
A palavra “ELF” no início da coluna ASCII indica que este é um arquivo executável no formato elf –
Executable and Linkable Format.
split
Divide um arquivo em arquivos menores seguindo critérios como tamanho ou número de linhas. A
opção -l indica o número de linhas de cada parte do arquivo dividido. A opção -b indica qual o
tamanho de cada parte. Um prefixo para as partes pode ser indicado após o nome do arquivo a ser
divido:
Dividir um arquivo em partes de 1024Kb usando o prefixo “parte_”:
$ split -b 1024k “arquivo original” parte_
Esse comando criará arquivos chamados parte_aa, parte_ab, parte_ac, etc. Para concatenar novamente
o arquivo, usa-se cat:
$ cat parte_* > “nome do arquivo”
Será criado um arquivo de conteúdo idêntico ao do arquivo original.
uniq
Mostra o conteúdo de arquivos suprimindo linhas seqüenciais repetidas.
cut
Delimita um arquivo em colunas, em determinado número de caracteres ou por posição de campo.
Mostrar caracteres da posição 1 à 5 de cada linha:
30
Tópico 103: Comandos GNU e Unix
31
Tópico 103: Comandos GNU e Unix
arq1:
1 a1 x1
2 b1 y1
3 c1 z1
arq2:
1 a2 x2
2 b2 y2
3 c2 z2
32
Tópico 103: Comandos GNU e Unix
Diretórios e Arquivos
Arquivos podem ser acessados tanto por seu caminho absoluto quanto seu caminho relativo.
Caminhos absolutos são aqueles iniciados pela barra da raiz ( / ), e caminhos relativos são aqueles
que tomam por referência o diretório atual. O ponto “.” refere-se ao diretório atual, e “..” refere-se
ao diretório contendo o diretório atual.
O comando ls é usado para listar arquivos e conteúdo de um diretório. A opção -l exibe detalhes
sobre o(s) arquivo(s), -s mostra o tamanho em kilobytes e -d mostra o diretório, e não seu conteúdo.
Exemplo de saída de ls -l:
$ ls -l /etc/X11/xinit/
total 20
-rw-r--r-- 1 root root 321 2006-01-14 17:33 README.Xmodmap
lrwxrwxrwx 1 root root 15 2006-03-20 22:31 xinitrc -> xinitrc.fluxbox
-rwxr-xr-x 1 root root 556 2003-03-16 19:59 xinitrc.blackbox
-rwxr-xr-x 1 root root 560 2006-03-07 03:32 xinitrc.fluxbox
-rwxr-xr-x 1 root root 799 2006-01-14 17:30 xinitrc.twm
-rwxr-xr-x 1 root root 788 2005-07-21 15:27 xinitrc.wmaker
A primeira coluna mostra o tipo e as permissões do arquivo, a segunda coluna mostra o número de
links físicos (hard links) para o arquivo, a terceira e a quarta mostram o dono e o grupo aos quais o
arquivo pertence, a quinta mostra o tamanho em bytes, a sexta e a sétima mostram a data e a hora da
última modificação do arquivo e a oitava coluna mostra o nome do arquivo. Se o arquivo for um link
simbólico, uma seta mostra o arquivo para o qual ele aponta.
O comando cp é utilizado para copiar arquivos. Suas opções principais são:
-i → Modo interativo. Pergunta antes de sobrescrever um arquivo.
-p → Copia também os atributos do arquivo original.
-r → Copiar recursivamente o conteúdo do diretório de origem.
É importante saber que quando copiando um diretório recursivamente, o uso da barra “/” no final do
diretório de origem fará com que apenas o conteúdo do diretório seja copiado/movido para o destino e
o não uso da barra fará com que o diretório de origem e seu conteúdo sejam copiados no destino.
Exemplo de cp:
$ cp tux.xcf icons/
Copia o arquivo “tux.xcf” para o diretório “icons” no diretório atual.
O comando mv move e renomeia arquivos. Usado com a opção -i pede por confirmação antes de
sobrescrever um arquivo de destino.
Exemplo de mv:
33
Tópico 103: Comandos GNU e Unix
$ mv imagem.jpg ../fotos/
Move o arquivo “imagem.jpg” para o diretório “fotos” que está no mesmo diretório onde está
contido o diretório atual (um nível acima).
Para alterar a data de um arquivo, utiliza-se o comando touch. Usado sem argumentos, touch
altera a data e a hora de criação e modificação de um arquivo para os valores atuais do sistema. Para
alterar apenas a data de modificação, usa-se a opção -m, e para alterar apenas a data de acesso, usa-se
a opção -a. O argumento passado com -t usa outro valor de tempo:
Mudar a data e hora para janeiro, 01 – 00:01
$ touch -t '01010001' texto_simples
$ ls -l texto_simples
-rw-r--r-- 1 luciano users 29 2006-01-01 00:01 texto_simples
No bash, o comando para retornar o diretório atual é o pwd. O comando cd muda para o diretório
especificado ou vai para o diretório pessoal quando nenhum diretório for especificado.
O comando mkdir cria diretórios. Para criar uma árvore de diretórios recursivamente, usa-se a opção
-p:
$ mkdir -p caminho/completo/para/dir
Para alterar as permissões do diretório no ato da criação, as mesmas são transmitidas ao mkdir com
a opção -m.
Criar diretório sem qualquer tipo de acesso para o grupo ou outros:
$ mkdir -m 700 exclusivo
$ ls -ld exclusivo/
drwx------ 2 luciano users 48 2006-03-20 21:42 exclusivo/
Diretórios vazios podem ser apagados pelo comando rmdir. Para apagar uma árvore de diretórios
vazios, usa-se a opção -p.
Para apagar diretórios com conteúdo, usa-se rm -r, e para forçar a remoção, a opção -f é utilizada.
34
Tópico 103: Comandos GNU e Unix
-atime -/+n
Data de último acesso ao arquivo, menor ou maior que n. n corresponde a n*24 horas.
-ctime -/+n
Data de criação do arquivo, menor ou maior que n. n corresponde a n*24 horas.
-mtime -/+n
Data de modificação do arquivo, menor ou maior que n. n corresponde a n*24 horas.
-amin -/+n
Data de último acesso ao arquivo, menor ou maior que n. n corresponde a minutos.
-cmin -/+n
Data de criação do arquivo, menor ou maior que n. n corresponde a minutos.
-mmin -/+n
Data de modificação do arquivo, menor ou maior que n. n corresponde a minutos.
-newer arquivo
O arquivo procurado foi criado/modificado mais recentemente que arquivo.
-perm modo
O arquivo procurado tem permissão mode
-perm -modo
O arquivo procurado tem todos as permissões listadas em mode
-perm +modo
O arquivo procurado tem qualquer das permissões listadas em mode
Exemplo: Encontrar todos os arquivos do tipo link em /usr/lib criados há menos de 24 horas:
$ find /usr/lib -type l -ctime -1
/usr/lib/libssl.so
/usr/lib/libcrypto.so
/usr/lib/libssl.so.0
/usr/lib/libcrypto.so.0
35
Tópico 103: Comandos GNU e Unix
$ ls /dev/fd?
/dev/fd0 /dev/fd1 /dev/fd2 /dev/fd3
O uso de colchetes “[]” indica uma lista de caracteres:
$ ls /dev/hd[abc]
/dev/hda /dev/hdb /dev/hdc
Chaves “{}” indicam uma lista de termos separados por vírgula:
$ ls /dev/{hda,fd0}
/dev/fd0 /dev/hda
O uso de exclamação antes de um coringa o exclui da operação:
$ ls /dev/fd[!01]
/dev/fd2 /dev/fd3
Coringas precedidos de barra invertida “ \ ” não desempenham função substitutiva:
$ ls /dev/fd\[\!01\]
ls: /dev/fd[!01]: Arquivo ou diretório não encontrado
Entre aspas duplas, apenas os caracteres especiais “|”, “/” e “$” têm efeito. Entre aspas simples
apenas o caracter especial “\” tem efeito.
Redirecionamento
Para redirecionar a saída padrão de um comando para um arquivo, utiliza-se o símbolo “>” após o
mesmo, que deve indicar o arquivo a ser criado com os dados referidos:
$ cat texto_simples > clone_texto_simples
Se o arquivo existir previamente, será sobrescrito. Para adicionar os valores sem apagar o conteúdo
existente, usa-se “>>”.
Para redirecionar o conteúdo de um arquivo para a entrada padrão de um comando, usa-se “<”. Neste
caso, o fluxo dos dados segue da direita para a esquerda. É especialmente útil para utilizar com
comandos como o tr que não lê arquivos diretamente:
$ tr ' ' '-' < clone_texto_simples
texto-simples
criado-com-cat
O conteúdo redirecionado por padrão é o de stdout. Para especifar stderr usa-se 2>. Para redirecionar
36
Tópico 103: Comandos GNU e Unix
Canalização
É possível enviar a saída de um comando para a entrada de outro comando simultaneamente,
utilizando o caracter de canalização “|”. É preciso que o programa de origem dos dados os direcione
para a saída padrão. Isso varia para cada programa, e geralmente se dá passando o argumento de
destino como um traço “-” ou simplesmente ocultando o argumento de saída. Da mesma forma,
alguns programas precisam que seja especificada a origem dos dados através de stdin. Todas essas
informações podem ser obtidas consultando o manual do programa.
Exemplo: Extrair a terceira música de um CD com o programa cdparanoia canalizando o áudio
através do programa oggenc para armazenar a música no formato Ogg Vorbis.
$ cdparanoia -d /dev/cdrom 3 - | oggenc - -o 03.ogg
Por fim, é possível redirecionar simultaneamente a saída tanto para um arquivo quanto para stdout,
através do comando tee. Para tal, canaliza-se a saída do comando para o comando tee e a este um
nome de arquivo para armazenar a saída:
$ cat /etc/passwd | tee cópia_passwd
O conteúdo de /etc/passwd será mostrado na tela e copiado no arquivo cópia_passwd.
É possível também usar a saída de um comando como argumento para outro, usando aspas invertidas:
$ ls -dl `cat /etc/ld.so.conf`
drwxr-xr-x 5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib
drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib
drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib
drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib
Resultado idêntico é conseguido usando $():
$ ls -dl $(cat /etc/ld.so.conf)
drwxr-xr-x 5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib
drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib
drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib
drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib
O comando xargs desempenha função parecida, passando os dados que recebe via stdin como
argumento para um segundo comando.
Exemplo do xargs acompanhando a execução do find:
$ find /usr/X11R6/bin/ -name 'xt*' | xargs ls -l
-rwxr-xr-x 1 root bin 268928 2006-01-14 17:35 /usr/X11R6/bin/xterm
-rwxr-xr-x 1 root bin 13076 2006-01-14 17:35 /usr/X11R6/bin/xtrapchar
-rwxr-xr-x 1 root bin 6536 2006-01-14 17:35 /usr/X11R6/bin/xtrapin
-rwxr-xr-x 1 root bin 4320 2006-01-14 17:35 /usr/X11R6/bin/xtrapinfo
-rwxr-xr-x 1 root bin 7704 2006-01-14 17:35 /usr/X11R6/bin/xtrapout
-rwxr-xr-x 1 root bin 5880 2006-01-14 17:35 /usr/X11R6/bin/xtrapproto
-rwxr-xr-x 1 root bin 4196 2006-01-14 17:35 /usr/X11R6/bin/xtrapreset
-rwxr-xr-x 1 root bin 5856 2006-01-14 17:35 /usr/X11R6/bin/xtrapstats
Neste exemplo, xargs tomou cada caminho passado por find e repassou como argumento para o
comando ls -l.
37
Tópico 103: Comandos GNU e Unix
38
Tópico 103: Comandos GNU e Unix
Sinais comuns:
SIGHUP
Termina ou reinicia o processo. Valor numérico 1.
SIGINT
Interrompe o processo, igual a Ctrl+c. Valor numérico: 2.
SIGQUIT
Fecha o processo. Valor numérico: 3.
SIGKILL
Força a finalização o processo. Valor numérico: 9.
SIGTERM
Pede ao processo para finalizar. Valor numérico: 15.
killall
Tem função igual a de kill, porém usa o nome do processo no lugar do PID. Com a opção -l
lista os sinais possíveis.
# killall -SIGHUP cupsd
Neste exemplo, o daemon cupsd irá reler seus arquivos de configuração.
39
Tópico 103: Comandos GNU e Unix
O número de uma tarefa pode ser usado como argumento do comando kill desde que precedido do
símbolo “%”:
$ kill %2
Quando um usuário sai do sistema, um sinal SIGHUP é enviado a todos os processos à ele
pertencentes. Para que esse sinal não interrompa o processo do usuário após este sair do sistema, o
comando deve ser invocado através do nohup:
$ nohup wget ftp://transferência/muito/demorada.tar.bz2 &
nohup: appending output to `nohup.out'
As saídas stdout e stderr serão redirecionadas para o arquivo nohup.out, criado no mesmo
diretório em que o comando foi executado.
40
Tópico 103: Comandos GNU e Unix
o uso de expressões regulares. O comando grep é o mais comum para realizar buscas por expressões
regulares em textos.
Caracteres especiais em expressões regulares:
^ → Começo de linha
$ → Fim de linha
. → Qualquer caracter
* → Qualquer seqüência de zero ou mais caracteres
[] → Qualquer caracter que esteja presente nos colchetes
Exemplos - Mostra apenas as linhas que começam com o caracter “ #” do arquivo
/etc/lilo.conf.
$ grep '^#' /etc/lilo.conf
sed
O comando sed é mais utilizado para procurar e substituir padrões em textos, mostrando o resultado
em stdout. Sintaxe do sed:
sed [opções] ‘comando e expressão regular’ [arquivo original]
No sed, a expressão regular fica circunscrita entre barras “/”.
Exemplo:
$ sed -e '/^#/d' /etc/lilo.conf
Mostra o arquivo /etc/lilo.conf sem linhas começadas por “#” (linhas de comentário). A letra
“d” ao lado da expressão regular é um comando sed que indica a exclusão de linhas contendo o
respectivo padrão.
Exemplo: substituir o termo “hda” por “sdb”:
$ sed -e 's/hda/sdb/g' /etc/lilo.conf
41
Tópico 103: Comandos GNU e Unix
42
Tópico 103: Comandos GNU e Unix
43
Tópico 104: Dispositivos, Sistemas de Arquivos
GNU/Linux e Padrão FHS
Objetivo 1.104.1:Criação de Partições e Sistemas de Arquivos
Peso: 3
Discos IDE podem conter até 4 partições físicas, das quais uma pode ser estendida. A partição
estendida pode ser dividida em partições lógicas. Pode haver um máximo de 46 partições num disco
IDE e 16 num disco SCSI.
fdisk
O fdisk é o programa padrão para manipular partições no GNU/Linux. Com a opção -l lista os
dispositivos e as partições existentes:
# fdisk -l
45
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
Partição Swap
Após a partição swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap:
Formata como swap a partição /dev/hda2:
# mkswap /dev/hda2
Após criada e formatada, uma partição swap precisa ser ativada para ser usada como memória swap.
O comando swapon -a ativa todas partições swap que constarem em /etc/fstab. As entradas
referentes à partições swap em /etc/fstab não têm ponto de montagem.
Exemplo de entrada de partição swap em /etc/fstab:
/dev/hda2 swap swap defaults 0 0
Normalmente, todas as partições swap contidas em /ect/fstab são ativadas pelos scripts de
inicialização do sistema. Para ativar ou desativar essa partição manual manualmente, usa-se swapon
/dev/hda2 ou swapoff /dev/hda2, respectivamente.
Informações sobre partições swap ativas são armazenadas em /proc/swaps.
46
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
Exemplo de /proc/swaps:
Filename Type Size Used Priority
/dev/hda2 partition 160640 32632 -1
Uso do Disco
df
Mostra o espaço disponível em cada dispositivo. A análise é feita diretamente no dispositivo.
Por padrão, mostra o espaço em unidades de 1kb. A opção -h usa medidas apropriadas para
tornar a saída mais inteligível.
du
Mostra o espaço ocupado. Sem argumentos, mostra o uso de cada diretório no sistema. Um
diretório específico pode ser indicado através da opção -s. A opção -h usa medidas
apropriadas para tornar a saída mais inteligível.
47
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
/etc/fstab
Durante os procedimentos de carregamento do sistema, é o arquivo /etc/fstab que determina os
pontos de montagem dos dispositivos. Cada linha corresponde a um dispositivo, contendo os
seguintes termos separados por tabulações ou espaços:
1. Dispositvo
2. Ponto de montagem (“swap” se for uma partição de swap)
3. Tipo de sistema de arquivos
4. Opções
5. Dump (0 ou 1). Determina se dispositivo deverá ser considerado pelo comando dump. Se
ausente, 0 é considerado.
6. fsck (1 ou 2). Determina a ordem da checagem feita pelo fsck durante o boot. Para a
partição raiz (/), deve ser 1. Se ausente, 0 é presumido e a checagem não será feita no boot.
Para permitir que usuários comuns montem e desmontem dispositivos – geralmente, o caso de
dispositivos removíveis – deve-se incluir a opção “users” para o respectivo dispositivo.
Exemplo:
/dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0
A palavra “auto” na posição referente ao sistema de arquivos indica que o sistema de arquivos deve
ser identificado automaticamente.
mount
O comando mount usado sem argumentos mostra os dispositivos montados e outros detalhes, como
ponto de montagem e tipo do sistema de arquivos. Também é usado para montar dispositivos
manualmente:
# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
O comando do exemplo monta o dispositivo /dev/cdrom contendo mídia com sistema de arquivos
iso9660 no diretório /mnt/cdrom, com permissão somente-leitura (ro).
Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o
comando mount a localização do dispositivo ou do diretório alvo. Para desmontar um dispositivo, o
comando umount é utilizado tendo como argumento o dispositivo ou o diretório alvo a ser
desmontado. Usado com a opção -a, mount monta todos os dispositivos em /etc/fstab (exceto
os marcados com a opção noauto).
Opções de montagem
As opções de montagem são as mesmas para /etc/fstab e para mount diretamente. Se mais de
uma opção for fornecida, deverão ser separadas por vírgula.
48
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
rw ou ro
Gravável ou somente leitura
noauto
Não é montado automaticamente
users
O dispositivo poderá ser montado e desmontado por usuários comuns
user
Apenas quem montou terá permissão de desmontar
owner
As permissões do dispositivo montado se adequarão ao usuário que o montou
usrquota
Habilita o uso de quotas de disco para usuário
grpquota
Habilita o uso de quotas de disco para grupo
remount
Remonta um dispositivo montado com outras opções. Útil para remontar um dispositivo como
somente leitura, por exemplo.
49
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
argumentos. O super-usuário pode gerar relatórios de cota dos sistemas de arquivos com o comando
repquota -a.
50
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
Permissões Octais
Permissões podem ser manejadas mais eficientemente através de um formato numérico, chamado
octal. O número octal consiste numa seqüência dígitos, cada um representando as permissões para o
usuário, grupo e outros, nessa ordem.
Permissões octais (numéricas) e suas permissões correspondentes:
Dígito Leitura Escrita Execução
0 - - -
1 - - sim
2 - sim -
3 - sim sim
4 sim - -
5 sim - sim
6 sim sim -
7 sim sim sim
Assim, o comando:
$ chmod 0664 texto_simples
Mudará as permissões do arquivo texto_simples para -rw-rw-r--, ou seja, leitura e escrita
para o usuário, leitura e escrita para o grupo e somente leitura para outros.
Para mudar recursivamente todo os arquivos dentro de um diretório especificado, utiliza-se o chmod
com a opção -R.
umask
umask é o filtro de permissões para criação de arquivos. As permissões para novos arquivos criados
são aplicadas calculando as permissões padrão do sistema (0666 para arquivos e 0777 para
diretórios) menos as permissões umask.
umask sem argumentos mostra a máscara atual de criação de arquivos. Para mudar, basta fornecer a
nova máscara como argumento.
Em sistemas onde os grupos iniciais dos usuários são particulares, a máscara poderá ser 002, o que
subtrairá das permissões padrão do sistema a permissão 2 (w – escrita), na categoria outros (o). Dessa
forma, os arquivos serão criados com as permissões 0664.
Em sistemas onde o grupo inicial de todos os usuários é o grupo users, a máscara poderá ser 0022,
o que subtrairá das permissões padrão do sistema a permissão 2 (w – escrita), nas categoria grupo (g)
e outros (o). Dessa forma, os arquivos serão criados com as permissões 0644, limitando a permissão
de escrita apenas ao usuário dono do arquivo.
51
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
suid e sgid
Todos processos são vinculados ao usuário que os iniciou. Dessa forma, um programa pode trabalhar
com um arquivo apenas até onde as permissões deste arquivo permitem ao usuário. Algumas tarefas,
no entanto, exigem que um usuário altere ou acesse arquivos aos quais não tem a permissão
necessária. Por exemplo, alterar a própria senha exige que o arquivo /etc/passwd seja alterado e
as permissões de /etc/passwd só permitem escrita ao usuário dono (root):
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 814 2006-03-15 14:04 /etc/passwd
Para contornar essa condição, existe um bit de permissão especial chamado suid. Arquivos
executáveis que possuam a permissão suid serão executados em nome do dono do arquivo, e não em
nome de quem os executou. A permissão suid é representada pela letra “s”, no campo referente ao
dono do arquivo (u):
$ ls -l /usr/bin/passwd
-rws--x--x 1 root bin 37880 2004-06-21 16:20 /usr/bin/passwd
A Permissão sticky
O inconveniente em usar diretórios compartilhados é que um usuário poderia apagar algum ou todo o
conteúdo inadvertidamente. Para evitar que isso aconteça, existe o modo de permissão stick, que
inibe usuários de apagarem arquivos que não tenham sido criados por eles mesmos. É o caso do
diretório /tmp:
$ ls -ld /tmp
drwxrwxrwt 21 root root 1312 2006-03-23 22:51 /tmp
A letra “t” nas permissões para demais usuários demonstra o uso da permissão sticky. Se apenas a
permissão sticky existir, aparecerá a letra “T” maiúscula.
Exemplo: Usar a permissão sticky no diretório “comunitario”
$ chmod o+t comunitario/
52
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
Atributos chattr
É possível estabelecer algumas regras para o tratamento de arquivos em sistemas do tipo ext2, os
chamados atributos do arquivo. Para listar esses atributos, usa-se o comando lsattr. Para alterar
esses atributos, usa-se o comando chattr. Cada atributo é especificado por uma letra precedida do
sinal +, - ou =, que adiciona, retira ou torna exclusivo o atributo no arquivo/diretório especificado.
Atributo Descrição
A Não modifica a data de acesso
a O arquivo não poderá ter seu conteúdo sobregravado. Apenas o
superusuário ou um programa capacitado por
CAP_LINUX_IMMUTABLE poderão alterar essa opção.
c O kernel automaticamente comprime os dados para gravar e
descomprime para ler
D Um diretório com essa função grava imediatamente os dados ao disco,
como se a opção de montagem dirsync fosse aplicada a um subconjunto
de arquivos
d Essa opção exclui o arquivo de um backup via dump
i Não poderá ser alterado, apagado ou renomeado. Nenhum link poderá tê-
lo como alvo. Apenas o superusuário ou um programa capacitado por
CAP_LINUX_IMMUTABLE poderão alterar essa opção.
j Todos os dados serão gravados ao jornal ext3 antes de serem
propriamente gravados
s Se o arquivo for apagado, todos seus blocos são zerados no disco
S Alterações no arquivo são gravadas imediatamente no disco
u Após a remoção do arquivo, o conteúdo do arquivo é preservado,
possibilitando recuperação.
Os atributos “c”, “s” e “u” não são de fato suportados.
53
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
54
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
55
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
56
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
Encontrando Arquivos
find
find diretório critério [-exec comando {} \;]
O argumento diretório indica onde o find deve iniciar a busca e critério pode ser o nome do arquivo
/diretório a ser procurado e/ou uma regra para a busca.
Critérios comuns para o find:
-type
Tipo do arquivo (d para diretório, f para arquivo comum e l para link)
-name nome
Nome do arquivo
-user usuário
Dono do arquivo
-atime -/+n
Data de último acesso ao arquivo, menor ou maior que n. n corresponde a n*24 horas.
-ctime -/+n
Data de criação do arquivo, menor ou maior que n. n corresponde a n*24 horas.
-mtime -/+n
57
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS
58
Tópico 110: O Sistema de Janelas X
Objetivo 1.110.1: Instalar e Configurar o X11R6
Peso: 5
Existem basicamente duas opções para o X11R6: Xfree86 e X.Org. Em termos práticos, não há
diferença entre eles, apenas em alguns detalhes de arquitetura e configuração. O X11R6 é o ambiente
gráfico de janelas no GNU/Linux.
Compatibilidade de Hardware
O primeiro passo antes de usar o X11R6 é verificar a compatibilidade de hardware. Em
http://www.xfree86.org/4.1.0/Status.html pode ser encontrada a lista de dispositivos compatíveis.
Ainda que o dispositivo não seja totalmente compatível, é possível utilizá-lo no modo VESA
Framebuffer, se o mesmos suportar (a grande maioria dos dispositivos aceita esse modo).
Instalando o X11R6
O mais comum é que o X11R6 já venha instalado junto com a distribuição. Para instalar
manualmente, os pacotes binários podem ser encontrados em
ftp://ftp.xfree86.org/pub/XFree86/4.1.0/binaries/, em subdiretórios correspondentes a arquitetura
desejada (axp=alpha, ix86=Intel 80x86) e versão da biblioteca Gnu C. Para auxiliar no processo de
instalação, há o script Xinstall.sh, disponível no diretório common do servidor servidor FTP.
Verificar quais binários adequados:
$ sh Xinstall.sh -check
Os arquivos de instalação fundamentais são Xbin.tgz, Xlib.tgz, Xman.tgz, Xdoc.tgz,
Xfnts.tgz, Xfenc.tgz, Xetc.tgz, Xvar.tgz, Xserv.tgz e Xmod.tgz.
Os arquivos devem ser descompactados em /usr/X11R6. O diretório /usr/X11R6/bin deve
constar na variável PATH e o diretório /usr/X11R6/lib deve constar no cache de bibliotecas do
ls.so.
Configurando o X11R6
Configurar o X11R6 significa criar um arquivo /etc/X11/XF86Config ou
/etc/X11/xorg.conf, que deve conter informações sobre caminhos para arquivos de sistema,
mouse, teclado, monitor e dispositivo de vídeo.
Ferramentas de configuração para o XFree86
XFree86 -autoconfig
Configura o servidor X automaticamente. Se bem sucedido, será possível mover o cursor do
mouse na tela. Ctrl+Alt+backspace fecha a sessão do X. O arquivo de configuração ainda não
foi escrito por essa ferramenta.
XFree86 -configure
Alternativa ao anterior
xf86cfg
59
Tópico 110: O Sistema de Janelas X
Se não ocorrerem problemas, uma sessão X será iniciada com uma janela de configuração
mostrando o diagrama de configuração do servidor X.
xf86config
Interface interativa de texto para entrar as informações de configuração manualmente.
Ferramentas de Configuração para o X.Org
X -configure
O servidor X carrega cada módulo de dispositivo, testa o driver e salva o resultado para o
arquivo xorg.conf.new no diretório do usuário (provavelmente /root)
xorgcfg
Se não ocorrerem problemas, uma sessão X será iniciada com uma janela de configuração
mostrando o diagrama de configuração do servidor X.
xorgconfig
Interface interativa de texto para entrar as informações de configuração manualmente.
Ajustes da Configuração
Após configurar o servidor X, pode ser necessário corrigir o posicionamento da tela. Para isso, existe
o aplicativo xvidtune. Através de uma interface interativa, é possível reposicionar a tela.
Encontrada a posição adequada, os valores retornados no terminal virtual devem ser incluídos como
opção Modeline, na seção Monitor do arquivo /etc/X11/XF86Config ou
/etc/X11/xorg.conf.
Outro item que pode precisar ser incluído manualmente é o funcionamento da roda do mouse. Na
seção referente ao mouse em /etc/X11/XF86Config ou /etc/X11/xorg.conf. incluir a
opção ZaxisMapping, como no exemplo:
Section "InputDevice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5"
EndSection
60
Tópico 110: O Sistema de Janelas X
ServerFlags
Opções globais para o servidor X, no formato Option “Nome” “Valor”.
Module
Carregamento dinâmico de módulos. Load “nome do módulo”.
InputDevice
Dispositivos de entrada. Deve haver uma seção InputDevice para cada dispositivo. Os
itens obrigatórios nessa seção são Identifier e Driver. Identifier é um nome
único para identificação do dispositivo. Os valores mais comuns para Driver são
“Keyboard” e “Mouse”. Outros itens são opcionais e são descritos com Option. Option
“CorePointer” indica que o dispositivo é o apontador (mouse) primário. Option
“CoreKeyboard” indica que o dispositivo é o teclado primário. O caminho para o dispositivo
é indicado com Option “Device” “/dev/xxx”.
Device
Dispositivo de vídeo. Várias seções Device podem indicar vários dispositivos de vídeo, e
deve haver ao menos um. Os itens obrigatórios nessa seção são Identifier e Driver.
Identifier é um nome único para identificação do dispositivo. Driver especifica o
drive do dispositivo de vídeo, disponíveis em /usr/X11R6/lib/modules/drivers/.
Outros itens comuns são BusID (ex.: Option “BusID” “PCI:1:0:0”) e VideoRam
(Ex.: Option “VideoRam” “8192”).
Monitor
O arquivo de configuração pode ter várias seções Monitor. Deveria haver pelo menos uma,
mas se não houver uma padrão será criada. A única opção obrigatória é Identifier.
Outras opções são UseModes, HorizSync, VertRefresh e ModeLine.
Modes
Modos de tela disponíveis para monitor. Não é obrigatória.
Screen
Agrega dispositivo e monitor. Pode haver mais de uma seção Screen. Apenas as opções
Identifier e Device (indicando um dispositivo de vídeo de uma seção Device
existente) são obrigatórias.
Display (Subseção de screen)
A subseção Display define, entre outras coisas, que resolução usar para cada profundidade
de cor.
ServerLayout
Agrega as seções Screen e InputDevice para formar uma configuração completa do
servidor X.
DRI
Seção opcional que fornece informação sobre a Infraestrutura de Renderização Direta (DRI).
Para que usuários comuns possam utilizar o DRI, incluir o item Mode 0666 nesta seção.
Vendor
61
Tópico 110: O Sistema de Janelas X
Fontes
Há dois sistemas de fontes, Core e Xft. No sistema Core as fontes são manipuladas no servidor e no
sistema Xft no cliente. O sistema Xft é mais avançado e permite usar fontes Type1, OpenType,
TrueType, Speedo e CID, com suporte a anti-aliasing (cantos arredondados). O X.Org inclui suporte
nativo ao sistema Xft.
62
Tópico 110: O Sistema de Janelas X
Os diretórios de fonte atualmente em uso podem ser listados com xset -q.
Para que os novos diretórios se tornem diretórios de fontes permanentes, devem ser incluídos na seção
Files do arquivo de configuração /etc/X11/XF86Config ou /etc/X11/xorg.conf,
como itens FontPath.
63
Tópico 110: O Sistema de Janelas X
xdm
O xdm faz parte dos programas do sistema de janelas X. O arquivo de configuração principal é o
xdm-config. O caminho do programa é /usr/bin/xdm. Além de permitir o login local, também
permite que o login seja realizado através da rede. Para tanto, é usado o protocolo XDMCP (é
desativado por padrão). O xdm precisa estar rodando (o que já acontece caso o runlevel do sistema
seja 5) e configurado adequadamente para responder à pedidos de login. O host remoto, através do
comando X -query nome_do_servidor, solicitará o pedido de conexão.
Arquivos de configuração
/etc/X11/xdm/Xresources
A aparência do xdm pode ser modificada através deste arquivo. Fontes, cores e mensagens pode ser
incluídas ou alteradas. Exemplo de conteúdo:
xlogin*borderwidth:3
xlogin*greeting:”Bem vindo ao login gráfico”
xlogin*namePrompt:login:\040
xlogin*greetColor:blue
xlogin*foreground:black
xlogin*background:white
/etc/X11/xdm/Xsetup_0
Script executado antes do login, com permissão de super-usuário (root). Usado para definir
cores/imagens de fundo e disparar aplicativos.
/etc/X11/xdm/Xservers
Mapeia um display para um host. Geralmente contém apenas a indicação para o display local:
:0 local /usr/X11R6/bin/X
Pode também ser usado para automaticamente enviar requerimento de login para hosts remotos
rodando o X. O servidor X ocupará primeiro /dev/tty livre.
/etc/X11/xdm/Xaccess
Controla o acesso remoto via XDMCP. É possível estabelecer regras para pedidos de conexão
remotos.
Trecho exemplo de Xaccess:
64
Tópico 110: O Sistema de Janelas X
*
* CHOOSER BROADCAST
A primeira linha indica que qualquer host poderá requisitar login na máquina. A segunda linha indica
que qualquer host (*) pode solicitar à máquina local uma lista de possíveis servidores (que estejam
rodando o xdm) para conexão, que será obtida através de chamadas BROADCAST na rede.
/etc/X11/xdm/xdm-config
Arquivos que agrega os demais arquivos de configuração do xdm. Libera ou bloqueia o login remoto
via XDMCP. Para bloquear, basta que exista a linha:
DisplayManager.requestPort: 0
Assim, o xdm não esperará por pedidos de conexão diretos ou indiretos.
As condições e maneiras de usar o gdm e kdm são praticamentes iguais às do xdm, salvo alguns
detalhes.
gdm
O executável do gdm encontra-se em /usr/bin/gdm. O arquivos de configuração são Sessions
, gdm.conf e Init/Default, que corresponde ao Xresources. O arquivo gdm.conf
controla a maioria das funções do xdm.
kdm
Os arquivos do kdm muitas vezes estão em /usr/share/config/kdm. O executável é
/usr/bin/kdm. Sua configuração é em muito parecida com a do xdm, sendo o arquivo kdmrc o
principal.
Menus
Uma das funções de um gerenciador de janelas é fornecer menus de acesso à programas (menu root)
e controle de janelas (menu window). O menu root é acessado clicando na área de trabalho, o menu
window clicando na barra ou no botão do título da janela.
A configuração dos menus varia para cada gerenciador de janelas. De uma forma geral, arquivos de
configuração de menus têm seu conteúdo disposto de forma hierárquica, discriminando o tipo do
item, o nome do item e o valor.
Exemplo do arquivo de menu do gerenciador de janelas Windowmaker,
65
Tópico 110: O Sistema de Janelas X
/etc/X11/WindowMaker/WMRootMenu:
("Applications",
("Info",
("Info Panel", INFO_PANEL),
("Legal", LEGAL_PANEL),
("System Console", EXEC, "xconsole"),
("System Load", SHEXEC, "xosview || xload"),
("Process List", EXEC, "xterm -e top"),
("Manual Browser", EXEC, "xman")
),
("Run...", SHEXEC, "%a(Run,Type command to run:)"),
("XTerm", EXEC, "xterm -sb"),
("Mozilla Firefox", EXEC, "firefox"),
...
Emulador de Terminal
O emulador de terminal é um programa que permite interagir com o shell como num terminal de texto
convencional. O emulador de terminal mais comum é o xterm. Há alternativas interessantes como o
rxvt – que é mais leve que o xterm – e o aterm – que possui mais opções de configuração.
Os padrões de aparência e comportamento do xterm são determinados no arquivo
/etc/X11/app-defaults/XTerm. Essas características podem ser alteradas através de
argumentos para o xterm ou através dos arquivos ~/.Xresources ou ~/.Xdefaults.
Exemplo de ~/.Xresources:
XTerm*font: -misc-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-1
XTerm*foreground: grey70
XTerm*background: black
XTerm*visualBell: true
Nesse exemplo é alterada a fonte, as cores de fundo e de letra e o bipe de sistema é inibido para dar
lugar a uma sinalização visual. Para que essas alterações tenham efeito, é necessário aglutinar as
configurações ao banco de dados de recursos do servidor X. Essa tarefa é realizada automaticamente
(se houver alterações no arquivo) toda vez que o X inicia ou manualmente, com o comando:
$ xrdb -merge ~/.Xresources
Há ferramentas que auxiliam a criação de arquivos de recursos, não só para o emulador de terminal,
mas para uma variedade de outros programas:
xwininfo
Retorna informações sobre uma janela, inclusive informações de posição e tamanho.
editres
Permite testar as configurações e posteriormente salvá-las num arquivo.
66
Tópico 110: O Sistema de Janelas X
DISPLAY Remoto
Em ambientes de rede, é possível redirecionar a janela de um programa para ser mostrada e
controlada em um outro host da rede. A variável de ambiente DISPLAY determina onde as janelas de
programas serão mostradas e controladas.
A variável DISPLAY possui o seguinte formato:
hostname:displaynumber.screennumber
Em estações de trabalho convencionais onde o usuário está logado ao próprio host local e só há um
conjunto de monitor e teclado/mouse, a variável DISPLAY é “:0.0”, o que significa que os
programas serão mostrados e controlados no único display (entendido como o conjunto
monitor/teclado/mouse) no host local. Displaynumber e screennumber são úteis, por exemplo, para
operar com monitores adicionais instalados no host.
Se o usuário está logado no servidor por uma estação remota chamada “debian”, através de uma
conexão XDMCP (login remoto via xdm), a variável DISPLAY para este usuário deverá ser
“debian:0.0”, de forma que os programas executados por ele (programas oriundos do servidor)
sejam mostrados e controlados na estação remota.
Por segurança, apenas o usuário e no mesmo host que iniciou a sessão X poderá abrir programas no
respectivo display, a menos que outros usuários/hosts sejam autorizados a fazê-lo. Essa exclusividade
é garantida através do MIT-MAGIC-COOKIE-1, um cookie que é gerado toda vez que uma sessão
X inicia e armazenado em ~/.Xauthority.
A maneira mais convencional de se autorizar outros a acessar um mesmo display é usando o comando
xhost, que libera/bloqueia o acesso para outros usuários/hosts ao display local:
Permitir a outros usuário no host local acessarem o display:
# xhost +local:
67
Tópico 110: O Sistema de Janelas X
68
Apêndice 1
Objetivos detalhados para o exame 101
Estes são os objetivos oficiais para o exame 101, disponíveis através do site http://www.lpi.org/. A
opção por deixar os objetivos em inglês é para ater-se ao formato original, visto que os objetivos
oficiais são publicados apenas nesse idioma.
The following is a partial list of the used files, terms and utilities:
/proc/ioports
/proc/interrupts
/proc/dma
/proc/pci
• 1.101.3 Configure Modem and Sound cards
Comment this objective!
Weight: 1
Description: Candidates should be able to configure modem and soundcard settings.
Key knowledge area(s):
Ensure devices meet compatibility requirements (particularly that the modem is not an
69
Apêndice 1
unsupported win-modem).
Verify that correct resources are used by the cards.
Configure modem for outbound dial-up.
Set serial port speeds.
The following is a partial list of the used files, terms and utilities:
/proc/dma
/proc/interrupts
/proc/ioports
/proc/pci
lspci
lsusb
• 1.101.4 Setup non-IDE Devices
Comment this objective!
Weight: 1
Description: Candidates should be able to configure non-IDE devices as SCSI, SATA, USB
drives using the special BIOS as well as the necessary Linux tools.
Key knowledge area(s):
Differentiate between the various types of non-IDE devices.
Manipulate BIOS to detect used and available SCSI IDs.
Set the correct hardware ID for different devices, especially the boot device.
Configure BIOS settings to control the boot sequence when both non-IDE and IDE devices are
present .
The following is a partial list of the used files, terms and utilities:
SCSI ID
/proc/scsi/
scsi_info
• 1.101.5 Setup different PC expansion cards
Comment this objective!
Weight: 3
Description: Candidates should be able to configure various cards for the various expansion
slots.
Key knowledge area(s):
Know the differences between coldplug and hotplug devices.
Determine hardware recources for devices.
The following is a partial list of the used files, terms and utilities:
The appropriate subdirectories of /proc
hotplug configuration files, terms and utilities
lspci
lsusb
• 1.101.6 Configure Communication Devices
Comment this objective!
Weight: 1
Description: Candidates should be able to install and configure different internal and external
70
Apêndice 1
The following is a partial list of the used files, terms and utilities:
/proc/dma
/proc/interrupts
/proc/ioports
setserial
• 1.101.7 Configure USB devices
Comment this objective!
Weight: 1
Description: Candidates should be able to activate USB support, use and configure different
USB devices.
Key knowledge area(s):
Identify and load the correct USB driver module.
Demonstrate knowledge of the USB layer architecture and the modules used in the different
layers.
The following is a partial list of the used files, terms and utilities:
lspci
xHCI modules
lsusb
/etc/usbmgr/
usbmodules
/etc/hotplug
udev configuration files, utilities and documentation
The following is a partial list of the used files, terms and utilities:
/ (root) filesystem
/var filesystem
71
Apêndice 1
/home filesystem
swap space
mount points
partitions
• 1.102.2 Install a boot manager
Comment this objective!
Weight: 1
Description: Candidates should be able to select, install and configure a boot manager.
Key knowledge area(s):
Providing alternative boot locations and backup boot options (for example, using a boot
floppy or a bootable CDROM).
Install and configure a boot loader such as GRUB or LILO.
Interact with the boot loader.
The following is a partial list of the used files, terms and utilities:
/boot/grub/grub.conf
/boot/grub/menu.lst
grub-install
MBR
superblock
first stage boot loader
/etc/lilo.conf
lilo
• 1.102.3 Make and install programs from source
Comment this objective!
Weight: 5
Description: Candidates should be able to build and install an executable program from
source. This objective includes being able to unpack a file of sources. Candidates should be
able to make simple customizations to the Makefile, for example changing paths or adding
extra include directories, either in the raw Makefile or using the configure tools.
Key knowledge area(s):
Unpack a file of sources using typical compression utilities.
Make simple customizations to Makefile such as changing paths or adding extra include
directories.
Apply parameters to a configure script.
Know where sourses are stored by default.
Compile a RPM oder DPKG software package using sources.
The following is a partial list of the used files, terms and utilities:
RPM and DPKG commands
/usr/src/
gunzip
gzip
bzip2
tar
configure
make
72
Apêndice 1
The following is a partial list of the used files, terms and utilities:
ldd
ldconfig
/etc/ld.so.conf
LD_LIBRARY_PATH
• 1.102.5 Use Debian package management
Comment this objective!
Weight: 8
Description: Candidates should be able to perform package management using the Debian
package tools.
Key knowledge area(s):
Install, upgrade and uninstall Debian binary packages.
Find packages containing specific files or libraries which may or may not be installed.
Obtain package information like version, content, dependencies, package integrity and
installation status (whether or not the package is installed).
The following is a partial list of the used files, terms and utilities:
unpack
configure
/etc/dpkg/dpkg.cfg
/var/lib/dpkg/*
/etc/apt/apt.conf
/etc/apt/sources.list
dpkg
dselect
dpkg-reconfigure
apt-get
alien
• 1.102.6 Use Red Hat Package Manager (RPM)
Comment this objective!
Weight: 8
Description: Candidates should be able to perform package management using RPM based
tools.
Key knowledge area(s):
Install, re-install, upgrade and remove RPM packages.
Obtain information on RPM packages such as version, status, dependencies, integrity and
73
Apêndice 1
signatures.
Determine what files a package provides, as well as find which package a specific file comes
from.
The following is a partial list of the used files, terms and utilities:
/etc/rpmrc
/usr/lib/rpm/*
rpm
grep
The following is a partial list of the used files, terms and utilities:
.
bash
echo
env
exec
export
pwd
set
unset
~/.bash_history
~/.profile
• 1.103.2 Process text streams using filters
Comment this objective!
Weight: 6
Description: Candidates should should be able to apply filters to text streams.
Key knowledge area(s):
Send text files and output streams through text utility filters to modify the output using
standard UNIX commands found in the GNU textutils package.
The following is a partial list of the used files, terms and utilities:
74
Apêndice 1
cat
cut
expand
fmt
head
hexdump
join
nl
paste
pr
sed
sort
split
tac
tail
tr
unexpand
uniq
wc
• 1.103.3 Perform basic file management
Comment this objective!
Weight: 3
Description: Candidates should be able to use the basic Linux commands to manage files and
directories.
Key knowledge area(s):
Copy, move and remove files and directories individually.
Copy multiple files and directories recursively.
Remove files and directories recursively.
Use simple and advanced wildcard specifications in commands.
Using find to locate and act on files based on type, size, or time.
The following is a partial list of the used files, terms and utilities:
cp
find
mkdir
mv
ls
rm
rmdir
touch
file globbing
• 1.103.4 Use streams, pipes and redirects
Comment this objective!
Weight: 5
Description: Candidates should be able to redirect streams and connect them in order to
efficiently process textual data. Tasks include redirecting standard input, standard output and
standard error, piping the output of one command to the input of another command, using the
75
Apêndice 1
output of one command as arguments to another command and sending output to both
stdout and a file.
Key knowledge area(s):
Redirecting standard input, standard output and standard error.
Pipe the output of one command to the input of another command.
Use the output of one command as arguments to another command.
Send output to both stdout and a file.
The following is a partial list of the used files, terms and utilities:
tee
xargs
<
<<
>
>>
|
` ` (back ticks)
• 1.103.5 Create, monitor and kill processes
Comment this objective!
Weight: 5
Description: Candidates should be able to perform basic process management.
Key knowledge area(s):
Run jobs in the foreground and background.
Start a process that will run without being associated to a terminal.
Signal a program to continue running after logout.
Monitor active processes.
Select and sort processes for display.
Send signals to processes.
Kill processes including processes that did not terminate correctly after an X session has
closed
The following is a partial list of the used files, terms and utilities:
&
bg
fg
jobs
kill
nohup
ps
top
killall
• 1.103.6 Modify process execution priorities
Comment this objective!
Weight: 3
Description: Candidates should should be able to manage process execution priorities.
Key knowledge area(s):
76
Apêndice 1
The following is a partial list of the used files, terms and utilities:
nice
ps
renice
top
• 1.103.7 Search text files using regular expressions
Comment this objective!
Weight: 3
Description: Candidates should be able to manipulate files and text data using regular
expressions. This objective includes creating simple regular expressions containing several
notational elements. It also includes using regular expression tools to perform searches
through a filesystem or file content.
Key knowledge area(s):
Create simple regular expressions containing several notational elements.
Use regular expression tools to perform searches through a filesystem or file content.
The following is a partial list of the used files, terms and utilities:
grep
sed
• 1.103.8 Perform basic file editing operations using vi
Comment this objective!
Weight: 1
Description: Candidates should be able to edit text files using vi. This objective includes vi
navigation, basic vi modes, inserting, editing, deleting, copying and finding text.
Key knowledge area(s):
Navigate a document using vi.
Use basic vi modes (Command, Insert, Replace).
Insert, edit, delete, copy and find text.
The following is a partial list of the used files, terms and utilities:
vi
/, ?
h,j,k,l
G, H, L
i, c, d, dd, p, o, a
ZZ, :w!, :q!, :e!
:!
77
Apêndice 1
Description: Candidates should be able to configure disk partitions and then create
filesystems on media such as hard disks. This includes the handling of swap partitions.
Key knowledge area(s):
Use various mkfs commands to set up partitions and create various filesystems, including
ext2, ext3, reiserfs, vfat and xfs.
The following is a partial list of the used files, terms and utilities:
fdisk
mkfs
mkswap
• 1.104.2 Maintain the integrity of filesystems
Comment this objective!
Weight: 3
Description: Candidates should be able to maintain a standard filesystem, as well as the extra
data associated with a journaling filesystem.
Key knowledge area(s):
Verify the integrity of filesystems.
Monitor free space and inodes.
Repair simple filesystem problems.
The following is a partial list of the used files, terms and utilities:
du
df
fsck
e2fsck
mke2fs
debugfs
dumpe2fs
tune2fs
• 1.104.3 Control mounting and unmounting filesystems
Comment this objective!
Weight: 3
Description: Candidates should be able to configure the mounting of a filesystem.
Key knowledge area(s):
Manually mount and unmount filesystems.
Configure filesystem mounting on bootup.
Configure user mountable removeable filesystems such as tape drives, floppies and CDROMs.
The following is a partial list of the used files, terms and utilities:
/etc/fstab
mount
umount
• 1.104.4 Managing disk quota
Comment this objective!
Weight: 3
Description: Candidates should be able to manage disk quotas for users.
78
Apêndice 1
The following is a partial list of the used files, terms and utilities:
quota
edquota
repquota
quotaon
• 1.104.5 Use file permissions to control access to files
Comment this objective!
Weight: 5
Description: Candidates should be able to control file access through the proper use of
permissions.
Key knowledge area(s):
Manage access permissions on regular and special files as well as directories.
Use access modes such as suid, sgid and the sticky bit to maintain security.
Use the group field to grant file access to workgroups.
Basic knowledge of ACL.
Know how to change the default file creation mode of the shell.
The following is a partial list of the used files, terms and utilities:
chmod
umask
chattr (where applicable)
• 1.104.6 Manage file ownership
Comment this objective!
Weight: 1
Description: Candidates should be able to control user and group ownership of files. This
objective includes the ability to change the user and group owner of a file as well as the
default group owner for new files.
Key knowledge area(s):
Manage access permissions on regular and special files as well as directories.
Use the group field to grant file access to workgroups.
The following is a partial list of the used files, terms and utilities:
chmod
chown
chgrp
• 1.104.7 Create and change hard and symbolic links
Comment this objective!
Weight: 1
Description: Candidates should be able to create and manage hard and symbolic links to a
file.
Key knowledge area(s):
Create links.
79
Apêndice 1
The following is a partial list of the used files, terms and utilities:
ln
• 1.104.8 Find system files and place files in the correct location
Comment this objective!
Weight: 5
Description: Candidates should be thouroughly familiar with the Filesystem Hierarchy
Standard (FHS), including typical file locations and directory classifications.
Key knowledge area(s):
Understand the correct locations of files under the FHS.
Find files and commands on a Linux system.
Know the location and propose of impotant file and directories as defind in the FHS.
The following is a partial list of the used files, terms and utilities:
find
locate
slocate
updatedb
whereis
which
/etc/updatedb.conf
The following is a partial list of the used files, terms and utilities:
xorgcfg
xorgconfig
/etc/X11/xorg.conf XF86Setup
xf86config
xvidtune
/etc/X11/XF86Config
.Xresources
• 1.110.2 Setup a display manager
80
Apêndice 1
The following is a partial list of the used files, terms and utilities:
/etc/inittab
/etc/X11/xdm/*
/etc/X11/kdm/*
/etc/X11/gdm/*
• 1.110.4 Install & Customize a Window Manager Environment
Comment this objective!
Weight: 5
Description: Candidates should be able to customize a system-wide desktop environment
and/or window manager.
Key knowledge area(s):
Demonstrate an understanding of customization procedures for window manager menus
and/or desktop panel menus.
Select and configuring the desired x-terminal (xterm, rxvt, aterm etc.).
Verify and resolve library dependency issues for X applications.
Export the X-display to a client workstation.
The following is a partial list of the used files, terms and utilities:
.xinitrc
.Xdefaults
xhost
DISPLAY environment variable
81
Apêndice 2
GNU Free Documentation License
GNU Free Documentation License
Version 1.2, November 2002
0. PREAMBLE
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
83
Apêndice 2
(or to related matters) and contains nothing that could fall directly
within that overall subject. (Thus, if the Document is in part a
textbook of mathematics, a Secondary Section may not explain any
mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
84
Apêndice 2
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
It is requested, but not required, that you contact the authors of the
85
Apêndice 2
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
86
Apêndice 2
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
87
Apêndice 2
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
8. TRANSLATION
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such
88
Apêndice 2
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
89