Índice
Aqui, eu descrevo dicas básicas para configurar e gerir sistemas, a maioria a partir da consola.
O screen(1) é uma ferramenta muito útil para se aceder a sites remotos via ligações não confiáveis e intermitentes porque suporta interrupções nas ligações de rede.
Tabela 9.1. Lista de programas para suportar ligações à rede interrompidas
pacote | popcon | tamanho | descrição |
---|---|---|---|
screen *
|
V:10, I:32 | 952 | terminal multiplexador com emulação de terminal VT100/ANSI |
O screen(1) não apenas permite que uma janela terminal funcione com múltiplos processos, mas também permite que os processos de shell remota sobrevivam a ligações interrompidas. Aqui está um cenário típico de utilização do screen(1).
Você faz login numa máquina remota.
Você arranca o screen
numa consola única.
Você executa múltiplos programas na janela criada do
screen
com ^A c
("Ctrl-A" seguido de
"c").
Você muda entre as múltiplas janelas do screen
com
^A n
("Ctrl-A" seguido de "n").
Subitamente você precisa de abandonar o seu terminal, mas não quer perder o seu trabalho activo mantendo a ligação.
Você pode separar a sessão do
screen
por quaisquer métodos.
Desligar a sua ligação de rede à bruta
Escrever ^A d
("Ctrl-A" seguido de "d") e manualmente
terminar a sessão da ligação remota
Escrever ^A DD
("Ctrl-A" seguido de "DD") para separar o
screen
e terminar a sua sessão dele.
Você faz login de novo para a mesma máquina remota (mesmo a partir de um terminal diferente).
Você inicia o screen
como "screen -r
".
O screen
magicamente reagrupa todas as janelas screen
anteriores com todos os programas a funcionar activamente.
![]() |
Dica |
---|---|
Você pode poupar despesas de ligação com o |
Numa sessão do screen
, todas as entradas do teclado são
enviadas para a sua janela actual excepto as teclas de comandos. Todas as
teclas de comando do screen
são inseridas ao escrever
^A
("Control-A") mais uma única tecla [mais quaisquer
parâmetros]. Aqui estão alguns importantes para lembrar.
Tabela 9.2. Lista de ligações de teclas para o screen
tecla de atalho | significado |
---|---|
^A ?
|
mostra um écran de ajuda (mostra as teclas de atalho) |
^A c
|
cria uma nova janela e muda para ela |
^A n
|
vai para a janela seguinte |
^A p
|
vai para a janela anterior |
^A 0
|
vai para a janela número 0 |
^A 1
|
vai para a janela número 1 |
^A w
|
mostra uma lista de janelas |
^A a
|
envia Ctrl-A para a janela actual como entrada do teclado |
^A h
|
escreve uma cópia física da janela actual para um ficheiro |
^A H
|
inicia/termina o registo da janela actual para um ficheiro |
^A ^X
|
bloqueia o terminal (protegido por palavra-passe) |
^A d
|
separa a sessão do ecrã do terminal |
^A DD
|
separa a sessão do ecrã e termina a sessão |
Veja screen(1) para detalhes.
Muitos programas registam as suas actividades sob o directório
"/var/log/
".
O daemon de log do kernel: klogd(8)
The system log daemon: rsyslogd(8)
Veja Secção 3.5.9, “A mensagem do sistema” e Secção 3.5.10, “A mensagem do kernel”.
Aqui estão analisadores de logs notáveis
("~Gsecurity::log-analyzer
" no
aptitude(8)).
Tabela 9.3. Lista de analisadores de log do sistema
pacote | popcon | tamanho | descrição |
---|---|---|---|
logwatch *
|
V:2, I:2 | 1795 | analisador de log com saída bonita escrito em Perl |
fail2ban *
|
V:5, I:6 | 672 | banir IPs que causam erros de autenticação múltipla |
analog *
|
V:1.0, I:15 | 4524 | analisador de log do servidor web |
awstats *
|
V:1.9, I:3 | 3101 | analisador de logs de servidor web poderoso e cheio de funcionalidades |
sarg
*
|
V:1.5, I:1.6 | 944 | gerador de relatórios de análises do squid |
pflogsumm *
|
V:0.2, I:0.6 | 160 | resumidor de entradas do relatório do Postfix |
syslog-summary *
|
V:0.19, I:1.2 | 84 | resume o conteúdo do um ficheiro de log do syslog |
lire
*
|
V:0.10, I:0.12 | 5304 | analisador de registos cheiro de funcionalidades e gerador de relatórios |
fwlogwatch *
|
V:0.07, I:0.17 | 440 | analisador de log da firewall |
squidview *
|
V:0.08, I:0.5 | 193 | monitoriza e analisa ficheiros access.log do squid |
visitors *
|
V:0.07, I:0.2 | 228 | analisador de log do servidor web rápido |
swatch *
|
V:0.05, I:0.2 | 112 | visualizador de ficheiros de registo com correspondência de expressões regulares, destaque, e hooks. |
crm114 *
|
V:0.04, I:0.14 | 1336 | Mutilador de Expressões Regulares Controlável e Filtro de Spam (CRM114) |
icmpinfo *
|
V:0.04, I:0.2 | 84 | interpretar mensagens ICMP |
![]() |
Nota |
---|---|
CRM114 disponibiliza uma infraestrutura de linguagem para escrever filtros fuzzy com a biblioteca de expressões regulares TRE. O seu uso popular é o filtro de spam de mail, mas pode ser usado como um analisador de registos. |
O uso simples de script(1) (veja Secção 1.4.9, “Gravar as actividades da shell”) para gravar a actividade da shell produz um ficheiro com caracteres de controle. Isto pode ser evitado ao usar o col(1) como o seguinte.
$ script Script iniciado, ficheiro é typescript
Faça o que tem a fazer ... e carregue em Ctrl-D
para
terminar o script
.
$ col -bx <typescript >ficheiro_limpo $ vim ficheiro_limpo
Se você não tem o script
(por exemplo, durante o processo
de arranque no initramfs), então use antes o seguinte.
$ sh -i 2>&1 | tee typescript
![]() |
Dica |
---|---|
Alguns |
![]() |
Dica |
---|---|
Você pode usar o
screen(1)
com " |
![]() |
Dica |
---|---|
Você pode usar o
emacs(1)
com " |
Apesar de ferramentas paginadoras com o more(1) e less(1) (veja Secção 1.4.5, “O pager”) e ferramentas personalizadas para destaque e formatação (veja Secção 11.1.8, “Destacar e formatar dados de texto simples”) poderem mostrar dados de texto muito bem, os editores de objectivos gerais (veja Secção 1.4.6, “O editor de texto”) são mais versáteis e personalizáveis.
![]() |
Dica |
---|---|
Para o
vim(1)
e o seu alias de modo paginador
view(1),
" |
O formato de amostragem predefinido da hora e data pelo comando "ls
-l
" depende do locale (veja
Secção 1.2.6, “Marcas temporais (Timestamps)” para o valor). A variável
"$LANG
" é referida primeiro e pode ser sobreposta pela
variável "$LC_TIME
".
O formato mostrado predefinido actual para cada locale depende da versão da
biblioteca C standard (o pacote libc6
) usada. Isto é,
lançamentos diferentes de Debian tiveram diferentes predefinições.
Se você deseja realmente personalizar este formato de amostragem da hora e
data para além do locale, você deve
definir o valor de estilo de hora com o
argumento "--time-style
" ou com o valor
"$TIME_STYLE
" (veja
ls(1),
date(1),
"info coreutils 'ls invocation'
").
Tabela 9.4. Mostra exemplos de hora e data para o comando "ls -l
"
para lenny
valor do estilo de hora | localização | mostra a hora e data |
---|---|---|
iso
|
qualquer |
01-19 00:15
|
long-iso
|
qualquer |
2009-01-19 00:15
|
full-iso
|
qualquer |
2009-01-19 00:15:16.000000000 +0900
|
locale
|
C
|
Jan 19 00:15
|
locale
|
en_US.UTF-8
|
2009-01-19 00:15
|
locale
|
es_ES.UTF-8
|
ene 19 00:15
|
+%d.%m.%y %H:%M
|
qualquer |
19.01.09 00:15
|
+%d.%b.%y %H:%M
|
C ou en_US.UTF-8
|
19.Jan.09 00:15
|
+%d.%b.%y %H:%M
|
es_ES.UTF-8
|
19.ene.09 00:15
|
![]() |
Dica |
---|---|
Você pode eliminar a escrita de opções longas na linha de comandos usando
nomes alternativos de comandos, ex. " |
![]() |
Dica |
---|---|
ISO 8601 é seguido por estes formatos iso. |
A escrita da shell nos terminais mais modernos pode ser colorida usando
código de escape de ANSI (veja
"/usr/share/doc/xterm/ctlseqs.txt.gz
").
Por exemplo, tente o seguinte
$ RED=$(printf "\x1b[31m") $ NORMAL=$(printf "\x1b[0m") $ REVERSE=$(printf "\x1b[7m") $ echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"
Comandos coloridos são úteis para inspeccionar os seus resultados no
ambiente interactivo. Eu incluí o seguinte no meu
"~/.bashrc
".
if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l' alias la='ls -A' fi
O uso de alias limita os efeitos coloridos da utilização interactiva do
comando. Tem vantagem sobre exportar a variável de ambiente "export
GREP_OPTIONS='--color=auto'
" porque a cor pode ser vista sob
programas paginadores como o
less(1).
Se você deseja suprimir a cor quando canaliza (pipe) para outros programas,
use antes "--color=auto
" no exemplo em cima para
"~/.bashrc
".
![]() |
Dica |
---|---|
Você pode desligar estes nomes alternativos coloridos no ambiente
interactivo ao invocar a shell com " |
Você pode recordar as actividades do editor para repetições complexas.
Para o Vim, como se segue.
"qa
": inicia a gravação de caracteres teclados no registo
nomeado "a
".
... actividades do editor
"q
": termina a gravação de caracteres escritos
"@a
": executa o conteúdo do registo
"a
".
Para Emacs, como se segue
"C-x (
": começa a definir uma macro de teclado.
... actividades do editor
"C-x )
": termina de definir uma macro de teclado.
"C-x e
": executa uma macro de teclado.
Existem algumas maneiras de gravar a imagem gráfica de uma aplicação X,
incluindo um mostrador xterm
.
Tabela 9.5. Lista de ferramentas gráficas de manipulação de imagens
pacote | popcon | tamanho | comando |
---|---|---|---|
xbase-clients *
|
I:43 | 59 | xwd(1) |
gimp
*
|
V:13, I:46 | 13042 | Menu GUI |
imagemagick *
|
V:23, I:46 | 207 | import(1) |
scrot
*
|
V:0.3, I:1.4 | 80 | scrot(1) |
Existem ferramentas especializadas para gravar alterações em ficheiros de configuração com a ajuda do sistema DVCS.
Tabela 9.6. Lista de pacotes para gravar histórico de configuração em VCS
pacote | popcon | tamanho | descrição |
---|---|---|---|
etckeeper *
|
V:1.4, I:1.9 | 240 | armazenar ficheiros de configuração e os seus meta-dados com Git (predefinido), Mercurial, ou Bazaar (novo) |
changetrack *
|
V:0.07, I:0.09 | 148 | armazenar ficheiros de configuração com RCS (antigo) |
Eu recomendo usar o pacote etckeeper
com o
git(1)
o qual põe o "/etc
" inteiro sob controle de VCS. O seu
guia de instalação e tutorial podem ser encontrados em
"/usr/share/doc/etckeeper/README.gz
".
Essencialmente , executar "sudo etckeeper init
"
inicializa o repositório git para "/etc
" tal como o
processo explicado em Secção 10.9.5, “Git para gravar o histórico de configuração” mas com scripts hook
especiais para configurações mais cuidadosas.
Conforme você muda a sua configuração, pode usar o git(1) normalmente para gravá-la. Ele também grava as alterações automaticamente de todas as vezes que você executa comandos de gestão de pacote.
![]() |
Dica |
---|---|
Você pode explorar o histórico de alterações de " |
Arrancar o seu sistema com live CDs de Linux ou CDs de instalação de debian em modo de recuperação torna fácil para si reconfigurar o armazenamento de dados no seu dispositivo de arranque. Veja também Secção 10.3, “Os dados binários”.
The disk space usage can be evaluated by programs provided by the
coreutils
package:
mount(8) reports all mounted filesystems (disks).
df(8) reports the disk space usage for the file system.
du(8) reports the disk space usage for the directory tree.
![]() |
Dica |
---|---|
You can feed the output of
du(8)
to
xdu(1x)
to produce its graphical and interactive presentation with " |
Para configuração de partições de disco, apesar do fdisk(8) ser considerado o standard, o parted(8) merece alguma atenção. "Dados de particionamento do disco", "Tabela de partições", "Mapa de partições", e "Etiqueta do disco" são todos sinónimos.
A maioria dos PCs usa o esquema clássico do Master Boot Record (MBR) para manter os dados de partições do disco no primeiro sector, isto é, LBA sector 0 (512 bytes).
![]() |
Nota |
---|---|
Alguns PCs novos com Extensible Firmware Interface (EFI), incluindo os Macs baseados em Intel, usam o esquema GUID Partition Table (GPT) para manter os dados de partições do disco não no primeiro sector. |
Apesar do fdisk(8) ter sido o standard como ferramenta de particionamento de disco, o parted(8) está a substituí-lo.
Tabela 9.7. Lista de pacotes de gestão de partições do disco
pacote | popcon | tamanho | GPT | descrição |
---|---|---|---|---|
util-linux *
|
V:90, I:99 | 1700 | Não suportado | vários utilitários de sistema incluindo fdisk(8) e cfdisk(8) |
parted *
|
V:1.2, I:10 | 240 | Suportado | GNU Parted programa de redimensionamento de partições do disco |
gparted *
|
V:2, I:20 | 4945 | Suportado |
Editor de partições do GNOME baseado na libparted
|
qtparted *
|
V:0.03, I:0.4 | NOT_FOUND | Suportado |
Editor de partições do KDE baseado na libparted
|
gptsync *
|
V:0.01, I:0.2 | 72 | Suportado | sincroniza a tabela de partições MBR clássica com a GPT |
kpartx *
|
V:1.0, I:1.9 | 132 | Suportado | programa para criar mapeamentos de dispositivo para partições |
![]() |
Cuidado |
---|---|
Apesar do parted(8) afirmar também criar e redimensionar sistemas de ficheiros, é mais seguro fazer tais coisas usando ferramentas especializadas e com melhor manutenção como o mkfs(8) (mkfs.msdos(8), mkfs.ext2(8), mkfs.ext3(8), …) e resize2fs(8). |
![]() |
Nota |
---|---|
De modo a mudar entre GPT e MBR, você precisa de apagar os primeiros blocos de
conteúdo do disco directamente (veja Secção 10.3.6, “Limpar conteúdo de ficheiro”) e usar " |
Apesar da reconfiguração da sua partição ou ordem de activação de medias de armazenamento amovíveis poder apresentar nomes diferentes para as partições, você pode aceder-lhes de modo consistente. Isto é também útil se você tem múltiplos discos e a sua BIOS não lhes fornecer nomes de dispositivo consistentes.
mount(8)
com a opção "-U
" pode montar um dispositivo de bloco
usando o UUID, em vez de usar o seu nome de
ficheiro tal como "/dev/sda3
".
"/etc/fstab
" (veja
fstab(5))
pode usar UUID.
Os gestores de arranque (Secção 3.3, “Estágio 2: o gestor de arranque (boot loader)”) também podem usar UUID.
![]() |
Dica |
---|---|
Você pode testar o UUID de um dispositivo especial de bloco com blkid(8). |
![]() |
Dica |
---|---|
Nós de dispositivos de dispositivos como medias de armazenamento amovíveis podem ser tornados estáticos ao usar regras do udev, caso necessário. Veja Secção 3.5.11, “O sistema udev”. |
Para o sistema de ficheiro ext3, o pacote
e2fsprogs
disponibiliza o seguinte.
Os comandos
mkfs(8)
e
fsck(8)
são disponibilizados pelo pacote e2fsprogs
como frontends
para vários programas dependentes do sistema de ficheiros
(mkfs.fstype
e fsck.fstype
). Para o
sistema de ficheiros ext3 existem o
mkfs.ext3(8)
e o
fsck.ext3(8)
(estão ligados por hardlink aos
mke2fs(8)
and
e2fsck(8)).
Estão disponíveis comandos semelhantes para cada sistema de ficheiros suportado pelo Linux.
Tabela 9.8. Lista de pacotes de gestão de sistemas de ficheiros
pacote | popcon | tamanho | descrição |
---|---|---|---|
e2fsprogs *
|
V:60, I:99 | 2372 | utilitários para os sistemas de ficheiros ext2/ext3/ext4 |
reiserfsprogs *
|
V:1.4, I:5 | 1200 | utilitários para o sistema de ficheiros Reiserfs |
dosfstools *
|
V:4, I:46 | 162 | utilitários para o sistema de ficheiros FAT. (Microsoft: MS-DOS, Windows) |
xfsprogs *
|
V:2, I:9 | 3135 | utilitários para o sistema de ficheiros XFS. (SGI: IRIX) |
ntfsprogs *
|
V:3, I:28 | 676 | utilitários para o sistema de ficheiros NTFS. (Microsoft: Windows NT, …) |
jfsutils *
|
V:0.4, I:2 | 1888 | utilitários para o sistema de ficheiros JFS. (IBM: AIX, OS/2) |
reiser4progs *
|
V:0.08, I:0.6 | 1296 | utilitários para o sistema de ficheiros Reiser4 |
hfsprogs *
|
V:0.10, I:0.9 | 280 | utilitários para os sistemas de ficheiros HFS e HFS Plus. (Apple: Mac OS) |
btrfs-tools *
|
V:0.6, I:1.4 | 2128 | utilitários para o sistema de ficheiros btrfs |
zerofree *
|
V:0.12, I:1.0 | 56 | programa para zerar blocos livres de sistemas de ficheiros ext2/3 |
![]() |
Dica |
---|---|
O sistema de ficheiros Ext3 é o sistema de
ficheiros predefinido para o sistema Linux e fortemente recomendado a usar a
menos que tenha razões específicas para não o fazer. Após o kernel Linux
2.6.30 (Debian |
![]() |
Atenção |
---|---|
Você pode encarar algumas limitações com o ext4 porque é novo. Por exemplo, você tem de ter kernel Linux 2.6.30 ou posterior se deseja redimensionar uma partição ext4. |
![]() |
Dica |
---|---|
Algumas ferramentas permitem acesso a sistemas de ficheiros sem suporte do kernel do Linux (veja Secção 10.3.2, “Manipular ficheiros sem montar o disco”). |
O comando mkfs(8) cria o sistema de ficheiros num sistema Linux. O comando fsck(8) disponibiliza a verificação de integridade e reparação do sistema de ficheiros num sistema Linux.
![]() |
Cuidado |
---|---|
Geralmente não é seguro correr o |
![]() |
Dica |
---|---|
Verifique os ficheiros em " |
![]() |
Dica |
---|---|
Use " |
A performance e características de um sistema de ficheiros pode ser optimizada pelas opções de montagem usadas (veja fstab(5) e mount(8)). As mais notáveis são as seguintes.
A opção "defaults
" implica opções predefinidas:
"rw,suid,dev,exec,auto,nouser,async
". (geral)
A opção "noatime
" ou "relatime
" é
muito eficaz para acelerar o acesso de leitura. (geral)
A opção "user
" permite que um utilizador normal monte o
sistema de ficheiros. Esta opção implica a combinação com a opção
"noexec,nosuid,nodev
". (geral, usada para CDs e
disquetes)
A combinação de opções "noexec,nodev,nosuid
" é usada para
melhorar a segurança. (geral)
A opção "noauto
" limita a montagem apenas por operação
explícita. (geral)
A opção "data=journal
" para ext3fs pode melhorar a
integridade dos dados contra falhas de energia com alguma perda na
velocidade de gravação.
![]() |
Dica |
---|---|
Você precisa de disponibilizar o parâmetro de boot do kernel (veja Secção 3.3, “Estágio 2: o gestor de arranque (boot loader)”),
ex. " |
As características de um sistema de ficheiros podem ser optimizadas via o seu super-bloco usando o comando tune2fs(8).
A execução de "sudo tune2fs -l /dev/hda1
" mostra o
conteúdo do super-bloco do sistema de ficheiros em
"/dev/hda1
".
A execução de "sudo tune2fs -c 50 /dev/hda1
" muda a
frequência das verificações do sistema de ficheiros (execução do
fsck
durante o arranque) para cada 50 arranques em
"/dev/hda1
".
A execução de "sudo tune2fs -j /dev/hda1
" adiciona
capacidade de journal ao sistema de ficheiros, isto é, conversão de ext2 para ext3 em
"/dev/hda1
". (Faça isto no sistema de ficheiros
desmontado.)
A execução de "sudo tune2fs -O extents,uninit_bg,dir_index
/dev/hda1 && fsck -pf /dev/hda1
" converte-o de ext3 para ext4 em
"/dev/hda1
". (Faça isto no sistema de ficheiros
desmontado.)
![]() |
Atenção |
---|---|
A conversão do sistema de ficheiros do dispositivo de arranque para ext4 deve ser evitada até que o GRUB boot loader suporte bem o sistema de ficheiros ext4 e o kernel Linux instalado seja mais recente que 2.6.30. |
![]() |
Atenção |
---|---|
Por favor verifique o seu hardware e leia o manual do hdparam(8) antes de brincar com a configuração do disco rijo porque isto pode ser bastante perigoso para a integridade dos dados. |
Você pode testar a velocidade de acesso ao disco de um disco rijo,
ex. "/dev/hda
", por "hdparm -tT
/dev/hda
". Para algum disco rijo ligado com (E)IDE, você pode
acelerá-lo com "hdparm -q -c3 -d1 -u1 -m16 /dev/hda
" ao
activar o suporte a "(E)IDE 32-bit I/O", activando a bandeira "using_dma",
definindo a bandeira "interrupt-unmask", e definindo o "multiple 16 sector
I/O" (perigoso!).
Você pode testar a funcionalidade de cache de escrita de um disco rijo, por
exemplo "/dev/sda
", com "hdparm -W
/dev/sda
". Você pode desactivar a sua funcionalidade de cache de
escrita com "hdparm -W 0 /dev/sda
".
Você pode ser capaz de ler CDROMs muito pressionados em drives de CDROM
modernas de alta velocidade ao abrandá-la com "setcd -x
2
".
Você pode monitorizar e registar em log o seu disco rijo que é compatível com SMART com o daemon smartd(8).
instalar o pacote smartmontools
Identificar os seus discos rijos al listá-los com df(1).
Vamos assumir uma drive de disco rijo a ser monitorizada como
"/dev/hda
".
Verifique o resultado de "smartctl -a /dev/hda
" para ver
se a funcionalidade SMART está ligada
actualmente.
Se não, active-o com "smartctl -s on -a /dev/hda
".
Active o daemon smartd(8) a correr com o seguinte.
retire a marca de comentário na linha "start_smartd=yes
"
no ficheiro "/etc/default/smartmontools
"
reinicie o daemon
smartd(8)
com "sudo /etc/init.d/smartmontools restart
".
![]() |
Dica |
---|---|
O daemon
smartd(8)
pode ser personalizado com o ficheiro |
Para partições criadas em Logical Volume Manager (LVM) (funcionalidade do Linux) durante a instalação, elas podem ser redimensionadas facilmente ao concatenar extensões nelas ou ao truncar extensões delas sobre múltiplos dispositivos de armazenamento sem grandes reconfigurações do sistema.
![]() |
Cuidado |
---|---|
A implantação do sistema LVM actual pode degradar a garantia contra corrupção do sistema de ficheiros oferecida pelos sistemas de ficheiros com journal como o ext3fs a menos que a performance do sistema seja sacrificada ao desactivar a cache de escrita no disco rijo. |
Se você tem uma partição vazia (ex. "/dev/sdx
"), você
pode formatá-la com
mkfs.ext3(1)
e
mount(8)
para um directório onde precise de mais espaço. (Você precisa de copiar os
conteúdos originais.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext3 /dev/sdx $ sudo mount -t ext3 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Dica |
---|---|
Você pode alternativamente montar um ficheiro de imagem de disco vazio (veja Secção 10.2.5, “Criar um ficheiro de imagem de disco vazio”) como um dispositivo de loop (veja Secção 10.2.3, “Montar o ficheiro de imagem de disco”). A utilização do disco real cresce com os dados reais armazenados. |
If you have an empty directory (e.g., "/path/to/emp-dir
")
on another partition with usable space, you can mount(8) it with
"--bind
" option to a directory (e.g.,
"work-dir
") where you need more space.
$ sudo mount --bind /path/to/emp-dir work-dir
![]() |
Dica |
---|---|
This is a deprecated method. Use Secção 9.3.12, “Expansion of usable storage space by bind-mounting another directory” instead, if possible. |
Se você tem um directório vazio
(ex. "/caminho/para/directório-vazio
") noutra partição
com espaço utilizável, você pode criar um link simbólico para o directório
com o
ln(8).
$ sudo mv work-dir old-dir $ sudo mkdir -p /path/to/emp-dir $ sudo ln -sf /path/to/emp-dir work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Atenção |
---|---|
Do not use "symlink to a directory" for directories managed by the system
such as " |
![]() |
Cuidado |
---|---|
Alguns softwares podem não funcionar bem com "links simbólicos para directórios". |
Se você tem espaço utilizável noutra partição
(ex. "/caminho/para/
"), você pode criar um directório
nela e empilhá-lo no directório onde precisa de espaço com o aufs.
$ sudo mv work-dir old-dir $ sudo mkdir work-dir $ sudo mkdir -p /path/to/emp-dir $ sudo mount -t aufs -o br:/path/to/emp-dir:old-dir none work-dir
![]() |
Cuidado |
---|---|
O uso do aufs para armazenamento de dados a longo termo não é boa ideia porque está sob desenvolvimento e as alterações ao seu desenho podem introduzir problemas. |
Com acesso físico ao seu PC, qualquer um pode facilmente ganhar privilégios de root e aceder a todos os ficheiros no seu PC (veja Secção 4.7.4, “Tornar a palavra-passe do root segura”). Isto significa que o sistema de palavra passe no login não pode proteger os seus dados privados e sensíveis contra um possível roubo do seu PC. Você tem que implementar uma tecnologia de encriptação de dados para o fazer. Apesar do GNU privacy guard (veja Secção 10.4, “Infraestrutura da segurança de dados”) poder encriptar ficheiro,consome alguns esforços do utilizador.
dm-crypt e eCryptfs facilitam a encriptação de dados automática nativamente via módulos do kernel Linux com o mínimo de esforço do utilizador.
Tabela 9.9. Lista de utilitários de encriptação de dados
pacote | popcon | tamanho | descrição |
---|---|---|---|
cryptsetup *
|
V:4, I:6 | 740 | utilitários para dispositivos de bloco encriptados (dm-crypt / LUKS) |
cryptmount *
|
V:0.3, I:0.5 | 323 | utilitários para dispositivos de bloco encriptados (dm-crypt / LUKS) com focagem na montagem/desmontagem por utilizadores normais. |
ecryptfs-utils *
|
V:0.3, I:0.4 | 372 | utilitários para sistemas de ficheiros em pilha encriptados (eCryptfs) |
Dm-crypt é um sistema de ficheiros criptográfico que usa mapeador-de-dispositivo. O mapeador-de-dispositivo mapeia um dispositivo de bloco para outro.
eCryptfs é outro sistema de ficheiros criptográfico que usa sistema de ficheiros empilha. Os sistemas de ficheiros em pilha empilham-se a si próprios no topo de um directório existente de um sistema de ficheiros montado.
![]() |
Cuidado |
---|---|
A encriptação de dados custa tempo da CPU e etc. Por favor pese os seus benefícios e custos. |
![]() |
Nota |
---|---|
O sistema Debian inteiro pode ser instalado num disco encriptado pelo instalador debian (lenny ou mais recente) usando dm-crypt/LUKS e initramfs. |
![]() |
Dica |
---|---|
Veja Secção 10.4, “Infraestrutura da segurança de dados” para utilitário de encriptação do espaço de utilizador: GNU Privacy Guard. |
Você pode encriptar o conteúdo de dispositivos de massa amovíveis, por
exemplo, uma caneta de memória USB em "/dev/sdx
", usando
dm-crypt/LUKS. Você simplesmente format-a como se segue.
# badblocks -c 10240 -s -w -t random -v /dev/sdx # shred -v -n 1 /dev/sdx # fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup luksOpen /dev/sdx1 sdx1 ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2008-10-04 18:44 control brw-rw---- 1 root disk 254, 0 2008-10-04 23:55 sdx1 # mkfs.vfat /dev/mapper/sdx1 ... # cryptsetup luksClose sdx1
Depois, pode ser montada tal como uma normal em
"/media/<etiqueta_do_disco>
", à excepção de pedir a
palavra-passe (veja Secção 10.1.10, “Dispositivo de armazenamento amovível”) sob
ambientes de trabalho modernos como o GNOME usando
gnome-mount(1).
A diferença é que todos os dados escritos nela são encriptados. Você pode
alternativamente formatar o meio num formato diferente, por exemplo, ext3
com "mkfs.ext3 /dev/sdx1
".
![]() |
Nota |
---|---|
Se você é realmente paranóico pela segurança dos dados, pode precisar de sobrescrever várias vezes no exemplo em cima. No entanto esta operação irá consumir muito tempo. |
Vamos assumir que o seu "/etc/fstab
" original contém o
seguinte.
/dev/sda7 swap sw 0 0
Você pode activar a encriptação da partição swap usando o dm-crypt com o seguinte.
# aptitude install cryptsetup # swapoff -a # echo "cswap /dev/sda7 /dev/urandom swap" >> /etc/crypttab # perl -i -p -e "s/\/dev\/sda7/\/dev\/mapper\/cswap/" /etc/fstab # /etc/init.d/cryptdisks restart ... # swapon -a
Você pode encriptar ficheiros escritos sob "~/Private/
"
automaticamente usando eCryptfs e o pacote
ecryptfs-utils
.
Execute
ecryptfs-setup-private(1)
e configure "~/Private/
" pelos seguintes avisos.
Active "~/Private/
" ao executar
ecryptfs-mount-private(1).
Move ficheiros de dados sensitivos para "~/Private/
" e
cria os links simbólicos necessários.
Candidatos: "~/.fetchmailrc
",
"~/.ssh/identity
", "~/.ssh/id_rsa
",
"~/.ssh/id_dsa
" e outros ficheiros com
"go-rwx
"
Move directórios de dados sensitivos para um sub-directório em
"~/Private/
" e cria os links simbólicos necessários.
Candidatos: "~/.gnupg
" e outros directórios com
"go-rwx
"
Crie um link simbólico de "~/Desktop/Private/
" para
"~/Private/
" para facilitar as operações do ambiente de
trabalho.
Desactive "~/Private/
" ao executar
ecryptfs-umount-private(1).
Active "~/Private/
" ao emitir
"ecryptfs-mount-private
" quando necessitar de dados
encriptados.
![]() |
Dica |
---|---|
Como o eCryptfs apenas encripta de modo
selectivo os ficheiros sensitivos, o seu custo para o sistema é muito menor
do que usar o dm-crypt no dispositivo de raiz
inteiro ou " |
Se você usar a sua palavra-passe do login para embrulhar as chaves de encriptação, você pode automatizar a montagem do eCryptfs via PAM (Pluggable Authentication Modules).
Insira a seguinte linha mesmo antes de "pam_permit.so
" em
"/etc/pam.d/common-auth
".
auth required pam_ecryptfs.so unwrap
Insira a seguinte linha mesmo na última linha em
"/etc/pam.d/common-session
".
session optional pam_ecryptfs.so unwrap
Insira a seguinte linha na primeira linha activa em
"/etc/pam.d/common-password
".
password required pam_ecryptfs.so
Isto é bastante conveniente.
![]() |
Atenção |
---|---|
Erros de configuração do PAM podem bloqueá-lo fora do seu próprio sistema. Veja Capítulo 4, Autenticação. |
![]() |
Cuidado |
---|---|
Se você usar a sua palavra-passe de login para embrulhar chaves de encriptação, os seus dados encriptados são tão seguros como a sua palavra-passe de login de utilizador (veja Secção 4.3, “Boa palavra-passe”). A menos que seja cuidadoso a configurar uma palavra-passe forte, os seus dados estão em risco quando alguém corre software de crackar palavras-passe após roubar o seu portátil (veja Secção 4.7.4, “Tornar a palavra-passe do root segura”). |
As actividades de programas podem ser monitorizadas e controladas usando ferramentas especiais
Tabela 9.10. Lista de ferramentas para monitorizar e controlar as actividades de programas
pacote | popcon | tamanho | descrição |
---|---|---|---|
coreutils *
|
V:90, I:99 | 13477 | nice(1): correr um programa com prioridade de agendamento modificada |
bsdutils *
|
V:80, I:99 | 200 | renice(1): modifica a prioridade de agendamento de um processo em execução |
procps *
|
V:85, I:99 | 575 |
"/proc " utilitários de sistema de ficheiros:
ps(1),
top(1),
kill(1)
,
watch(1),
…
|
psmisc *
|
V:50, I:92 | 688 |
"/proc " utilitários de sistema de ficheiros:
killall(1),
fuser(1),
peekfd(1),
pstree(1)
|
time
*
|
V:7, I:86 | 152 | time(1): corre um programa para reportar as utilizações de recursos do sistema no que respeita a tempo |
sysstat *
|
V:6, I:9 | 1225 | sar(1), iostat(1), mpstat(1), …: ferramentas de performance do sistema para Linux |
isag
*
|
V:0.05, I:0.8 | 126 | Interactive System Activity Grapher para sysstat |
lsof
*
|
V:16, I:91 | 444 |
lsof(8):
lista os ficheiro abertos por um processo em execução usando a opção
"-p "
|
strace *
|
V:4, I:29 | 404 | strace(1): rastreia chamadas e sinais do sistema |
ltrace *
|
V:0.3, I:2 | 188 | ltrace(1): rastreia chamadas de bibliotecas |
xtrace *
|
V:0.02, I:0.14 | 400 | xtrace(1): rastreia a comunicação entre cliente X11 e servidor |
powertop *
|
V:0.8, I:16 | 380 | powertop(1): informação sobre sistema de energia usado em portáteis baseados em Intel |
cron
*
|
V:90, I:99 | 284 | corre processos de acordo com uma agenda nos bastidores a partir do daemon cron(8) |
anacron *
|
V:43, I:48 | 120 | agenda de comandos tipo cron para sistemas que não funcionam 24 horas por dia |
at
*
|
V:51, I:86 | 140 | at(1) ou batch(1): executam um trabalho a uma hora especificada ou abaixo de um certo nível de carga. |
![]() |
Dica |
---|---|
Os pacotes |
Mostrar o tempo usado pelo processo invocado pelo comando.
# time qualquer_comando >/dev/null real 0m0.035s # tempo no relógio (tempo real) user 0m0.000s # tempo em modo de utilizador sys 0m0.020s # tempo em modo de kernel
Um valor nice é usado para controlar a prioridade de agendamento para o processo.
Tabela 9.11. Lista de valores nice para a prioridade de agendamento
o valor nice | prioridade de agendamento |
---|---|
19 | processo de prioridade menor (nice) |
0 | processo de prioridade muito alta para o utilizador |
-20 | processo de prioridade muito alta para o root (não-nice) |
# nice -19 top # muito bom # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # muito rápido
Por vezes um valor nice extremo faz mais danos que benefícios ao sistema. Use este comando com cuidado.
O comando ps(1) em Debian suporta ambas funcionalidades do BSD e SystemV e ajuda-o a identificar a actividade do processo estaticamente.
Tabela 9.12. Lista dos estilos do comando ps
estilo | comando típico | funcionalidade |
---|---|---|
BSD |
ps aux
|
mostra %CPU %MEM |
Sistema V |
ps -efH
|
mostra PPID |
Para o processo filho zombie (defunto), você pode matá-lo pelo ID do
processo pai identificado no campo "PPID
".
O comando pstree(1) mostra uma árvore de processos.
O top(1) em Debian tem funcionalidades ricas e ajuda-o a identificar qual processo está a actuar de modo esquisito dinamicamente.
Tabela 9.13. Lista de comandos para o top
tecla comando | descrição da resposta |
---|---|
h ou ?
|
mostrar ajuda |
f
|
define/redefine o campo do mostrador |
o
|
reorganiza o campo do mostrador |
F
|
define a ordem de campo de chave |
k
|
mata um processo |
r
|
faz renice a um processo |
q
|
sair do comando top
|
Você pode listar todos os ficheiros abertos por um processo com o ID do processo (PID), ex. 1, com o seguinte.
$ sudo lsof -p 1
PID=1 é geralmente um programa de init
.
Você pode rastrear a actividade do programa com o strace(1), ltrace(1), ou xtrace(1) para chamadas de sistema e sinais, chamadas de bibliotecas, ou comunicação entre cliente e servidor do X11.
Você pode rastrear as chamadas do sistema do comando ls
como se segue.
$ sudo strace ls
Você também pode identificar processos que usam ficheiros pelo
fuser(1),
ex. para "/var/log/mail.log
" com o seguinte.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd
You see that file "/var/log/mail.log
" is open for writing
by the
rsyslogd(8)
command.
Você também pode identificar processos que usam sockets pelo
fuser(1),
ex. para "smtp/tcp
" com o seguinte.
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Agora você sabe que o seu sistema correr o exim4(8) para lidar com as ligações TCP para o porto SMTP (25).
O watch(1) executa um programa repetidamente num intervalo constante enquanto mostra os seus resultados em ecrã completo.
$ watch w
Isto mostra quem tem sessão iniciada (logged) no sistema e é actualizado a cada 2 segundos.
Existem várias maneiras de repetir um ciclo de comandos sobre ficheiros que
correspondem a alguma condição, ex. que correspondem ao padrão glob
"*.ext
".
Método for-loop da shell (veja Secção 12.1.4, “Ciclos da shell”):
for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done
combinação do find(1) e do xargs(1):
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command
find(1)
com a opção "-exec
" com um comando:
find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;
find(1)
com a opção "-exec
" com um script de shell curto:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
Os exemplos em cima foram escritos para assegurar o lidar apropriado dos nomes de ficheiros esquisitos como os que contêm espaços. Veja Secção 10.1.5, “Idiomas para a selecção de ficheiros” para utilizações mais avançadas do find(1).
Você pode configurar para arrancar um processo a partir da interface gráfica de utilizador (GUI).
Sob o ambiente de trabalho GNOME, um programa pode ser arrancado com o argumento apropriado ao fazer duplo-clique no ícone do lançador, ao arrastar-e-largar um ícone de ficheiro no ícone do lançador, ou pelo menu "Abrir com …" via clique direito num ícone de ficheiro. O KDE também faz o equivalente.
Aqui está um exemplo sob GNOME para criar um ícone de lançamento para o mc(1) arrancado em gnome-terminal(1).
Crie um programa executável "mc-term
" com o seguinte.
# cat >/usr/local/bin/mc-term <<EOF #!/bin/sh gnome-terminal -e "mc \$1" EOF # chmod 755 /usr/local/bin/mc-term
Crie um lançador de ambiente de trabalho com o seguinte.
Clique com o botão direito no espaço de trabalho para seleccionar
"Criar Lançador …
".
Defina "Tipo" para "Aplicação
".
Defina "Nome" para "mc
".
Defina "Comando" para "mc-term %f
"
Clique "OK".
Crie uma associação de 'abrir com' como o seguinte.
Clique com o botão direito na pasta para seleccionar "Abrir com
Outra Aplicação …
".
Clique para abrir o diálogo "Use um comando personalizado" e insira
"mc-term %f
".
Clique "Abrir"
![]() |
Dica |
---|---|
o lançador é um ficheiro em " |
Alguns programas iniciam outros programas automaticamente. Aqui estão alguns pontos de controle para personalizar este processo.
Menu de configuração da aplicação:
Ambiente GNOME: "Sistema" → "Preferências" → "Aplicação Preferida"
Ambiente KDE: "K" → "Centro de Controle" → "Componentes do KDE" → "Seleccionar Componente"
Navegador Iceweasel: "Editar" → "Preferências" → "Aplicações"
mc(1):
"/etc/mc/mc.ext
"
Variáveis de ambiente como a "$BROWSER
",
"$EDITOR
", "$VISUAL
", e
"$PAGER
" (veja
eviron(7))
O sistema
update-alternatives(8)
para programas como o "editor
",
"view
", "x-www-browser
",
"gnome-www-browser
", e "www-browser
"
(veja Secção 1.4.7, “Definir um editor de texto predefinido”)
os conteúdos dos ficheiros "~/.mailcap
" e
"/etc/mailcap
" com a associação do tipo MIME com o programa (veja
mailcap(5))
Os conteúdos dos ficheiros "~/.mime.types
" e
"/etc/mime.types
" que associam a extensão do nome do
ficheiro com o tipo MIME (veja
run-mailcap(1))
![]() |
Dica |
---|---|
update-mime(8)
actualiza o ficheiro " |
![]() |
Dica |
---|---|
O pacote |
![]() |
Dica |
---|---|
De modo a correr uma aplicação de consola como o |
# cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF chmod 755 /usr/local/bin/mutt-term
Use kill(1) para matar (ou enviar um sinal para) um processo pelo ID do processo.
Use killall(1) ou pkill(1) para fazer o mesmo pelo nome do comando do processo ou outro atributo.
Tabela 9.14. Lista dos sinais frequentemente usados para matar comandos
valor do sinal | nome do sinal | função |
---|---|---|
1 | HUP | reiniciar daemon |
15 | TERM | morte normal |
9 | KILL | morte forçada |
Corra o comando at(1) para agendar uma tarefa de uma-vez com o seguinte.
$ echo 'command -args'| at 3:40 monday
Use cron(8) para agendar tarefas regularmente. Veja crontab(1) e crontab(5).
Você pode agendar a execução de processos como um utilizador normal,
ex. foo
ao criar um ficheiro
crontab(5)
como "/var/spool/cron/crontabs/foo
" com o comando
"crontab -e
".
Aqui está um exemplo de um ficheiro crontab(5).
# use /bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every Sunday" # run at 03:40 on the first Monday of each month 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
![]() |
Dica |
---|---|
Para o sistema que não corre continuamente, instale o pacote
|
![]() |
Dica |
---|---|
Para scripts agendados de manutenção do sistema, você pode corrê-los
periodicamente a partir da conta root ao colocar tais scripts em
" |
A segurança contra falha do sistema é disponibiliza pela opção de compilação do kernel "Magic SysRq key" (chave SAK) a qual é agora a predefinição para o kernel Debian. Pressionar Alt-SysRq seguido de uma das seguintes teclas faz a magia de recuperar o controle do sistema.
Tabela 9.15. Lista de teclas de comando SAK
tecla que segue a Alt-SysRq | descrição da acção |
---|---|
r
|
restaura o teclado a partir de modo raw (cru) após crash do X |
0
|
mude o nível de log (loglevel) da consola para 0 para reduzir as mensagens de erro |
k
|
kill (mata) todos os processos da consola virtual actual |
e
|
envia um SIGTERM a todos os processos, excepto para init(8) |
i
|
envia um SIGKILL a todos os processos, excepto para init(8) |
s
|
sincroniza todos os sistemas de ficheiros montados |
u
|
remonta todos os sistemas de ficheiros montados em modo de apenas-leitura (umount) |
b
|
reboot (reinicia) o sistema sem sincronização ou desmontagem |
A combinação de "Alt-SysRq s", "Alt-SysRq u", e "Alt-SysRq r" é boa para sair de situações realmente más.
Veja
"/usr/share/doc/linux-doc-2.6.*/Documentation/sysrq.txt.gz
".
![]() |
Cuidado |
---|---|
A funcionalidade Alt-SysRq pode ser considerada um risco de segurança ao
permitir que os utilizadores tenham acesso a funções com privilégios de
root. Colocar " |
![]() |
Dica |
---|---|
A partir de terminal SSH etc., você pode usar a funcionalidade Alt-SysRq ao
escrever para o " |
Você pode verificar quem está no sistema com o seguinte.
who(1) mostra quem tem sessão iniciada.
w(1) mostra quem tem sessão iniciada e o que estão a fazer.
last(1) mostra listagem do último utilizador a iniciar sessão.
lastb(1 )mostra listagem dos últimos utilizadores a falharem o inicio de sessão.
![]() |
Dica |
---|---|
" |
Você pode mandar uma mensagem para todos os que têm sessão iniciada no sistema com wall(1) com o seguinte.
$ echo "Vamos desligar dentro de 1 hora" | wall
Para os dispositivos tipo PCI (AGP, PCI-Express,
CardBus, ExpressCard, etc.), o
lspci(8)
(provavelmente com a opção "-nn
") é um bom inicio para a
identificação do hardware.
Alternativamente, você pode identificar o hardware ao ler os conteúdos de
"/proc/bus/pci/devices
" ou explorar a árvore de
directórios sob "/sys/bus/pci
" (veja Secção 1.2.12, “procfs e sysfs”).
Tabela 9.16. Lista de ferramenta de identificação de hardware
pacote | popcon | tamanho | descrição |
---|---|---|---|
pciutils *
|
V:18, I:95 | 936 | Utilitários PCI do Linux: lspci(8) |
usbutils *
|
V:29, I:94 | 628 | Utilitários USB do Linux: lsusb(8) |
pcmciautils *
|
V:4, I:16 | 92 | Utilitários PCMCIA par Linux 2.6: pccardctl(8) |
scsitools *
|
V:0.16, I:0.9 | 424 | colecção de ferramentas para gestão de hardware SCSI: lsscsi(8) |
pnputils *
|
V:0.02, I:0.14 | 108 | Utilitários Plug and Play da BIOS: lspnp(8) |
procinfo *
|
V:0.3, I:2 | 164 |
informação do sistema obtida de "/proc ":
lsdev(8)
|
lshw
*
|
V:1.2, I:8 | 656 | informação acerca da configuração do hardware: lshw(1) |
discover *
|
V:5, I:52 | 120 | sistema de identificação de hardware: discover(8) |
Apesar da maioria da configuração de hardware nos sistemas de ambiente de trabalho GUI modernos como o GNOME e KDE poder ser gerida através de acompanhamento por ferramentas de configuração com GUI, é uma boa ideia conhecer alguns métodos básicos de o configurar.
Tabela 9.17. Lista de ferramentas de configuração do hardware
pacote | popcon | tamanho | descrição |
---|---|---|---|
hal
*
|
V:24, I:32 | 1516 | Hardware Abstraction Layer: lshal(1) |
console-tools *
|
V:24, I:49 | 956 | tipo de letra da consola Linux e utilitários da tabela de teclas |
x11-xserver-utils *
|
V:36, I:54 | 544 | Utilitários do servido X: xset(1), xmodmap(1) |
acpid
*
|
V:53, I:93 | 165 | daemon para gerir eventos entregues pelo Advanced Configuration and Power Interface (ACPI) |
acpi
*
|
V:5, I:61 | 92 | utilitário para mostrar informação em dispositivos ACPI |
apmd
*
|
V:1.5, I:14 | 252 | daemon para gerir eventos entregues pelo Advanced Power Management (APM) |
noflushd *
|
V:0.03, I:0.06 | 248 | daemon que permite que discos rijos inactivos parem o motor |
sleepd *
|
V:0.06, I:0.08 | 148 | daemon para colocar um portátil em modo de adormecimento durante a inactividade |
hdparm *
|
V:12, I:52 | 304 | optimização do acesso ao disco rijo (veja Secção 9.3.8, “Optimização do disco rijo”) |
smartmontools *
|
V:7, I:23 | 1324 | controlar e monitorizar sistemas de armazenamento usando S.M.A.R.T. |
setserial *
|
V:1.2, I:2 | 116 | colecção de ferramentas para gestão de portas série |
memtest86+ *
|
V:0.3, I:6 | 2342 | colecção de ferramentas para gestão de hardware de memória |
scsitools *
|
V:0.16, I:0.9 | 424 | colecção de ferramentas para gestão de hardware SCSI |
tpconfig *
|
V:0.2, I:0.6 | 220 | utilitário para configurar dispositivos touchpad |
setcd
*
|
V:0.04, I:0.2 | 28 | optimização de acesso a drives de discos compactos |
big-cursor *
|
I:0.15 | 68 | cursores de rato maiores para o X |
Aqui, o ACPI é uma estrutura mais recente para o sistema de gestão de energia que o APM.
![]() |
Dica |
---|---|
O escalar de frequências da CPU em sistemas modernos é governado por módulos
do kernel como o |
O seguinte define a hora do sistema e hardware para MM/DD hh:mm, AAAA.
# date MMDDhhmmAAAA # hwclock --utc --systohc # hwclock --show
A horas são mostradas normalmente na hora local no sistema Debian mas o hardware e a hora do sistema geralmente usam UT(GMT).
Se a hora do hardware (BIOS) estiver definida para UT, mude a definição para
"UTC=yes
" no "/etc/default/rcS
".
Se desejar actualizar a hora do sistema via rede, considere usar o serviço
NTP como pacotes como os ntp
,
ntpdate
, e chrony
.
Veja o seguinte.
O pacote ntp-doc
![]() |
Dica |
---|---|
O
ntptrace(8)
no pacote |
Existem vários componentes para configurar a consola de caracteres e as funcionalidades do sistema ncurses(3).
O ficheiro "/etc/terminfo/*/*
"
(terminfo(5))
A variável de ambiente "$TERM
"
(term(7))
setterm(1), stty(1), tic(1), e toe(1)
Se a entrada terminfo
para o xterm
não
funcionar com um xterm
não Debian, mude o seu tipo e
terminal, "$TERM
", de "xterm
" para uma
das versões de funcionalidades limitadas como o
"xterm-r6
" quando iniciar sessão num sistema Debian
remotamente. Veja "/usr/share/doc/libncurses5/FAQ
" para
mais. O "dumb
" é o denominador comum mais baixo para
"$TERM
".
As drivers para placas de som para o Linux 2.6 actual são disponibilizadas pelo Advanced Linux Sound Architecture (ALSA). ALSA disponibiliza um modo de emulação para o anterior Open Sound System (OSS) para compatibilidade.
Execute "dpkg-reconfigure linux-sound-base
" para
seleccionar o sistema de som para usar ALSA via colocação em lista negra de
módulos de kernel. A menos que tenha um hardware de som muito recente, a
infraestrutura udev deverá configurar o seu sistema de som.
![]() |
Dica |
---|---|
Use " |
![]() |
Dica |
---|---|
Se você não consegue obter som, os seus altifalantes podem estar ligados a
uma saída silenciada (mute). Os sistemas de som modernos têm muitas
saídas. O
alsamixer(1)
no pacote |
As aplicações de software podem ser configuradas para não só aceder a dispositivos de som directamente, mas também para aceder a eles via alguns sistemas servidores de som normalizados.
Tabela 9.18. Lista de pacotes de som
Existe normalmente um motor de som comum para cada ambiente de trabalho popular. Cada motor de som usado pela aplicação pode escolher ligar a diferentes servidores de som.
Para desactivar o protector de écran, use os seguintes comandos.
Tabela 9.19. Lista de comandos para desactivar o protector de écran
ambiente | comando |
---|---|
A consola do Linux |
setterm -powersave off
|
O X Window (desactivar o protector de écran) |
xset s off
|
O X Window (desactivar o dpms) |
xset -dpms
|
O X Window (GUI de configuração do protector de écran) |
xscreensaver-command -prefs
|
Pode-se sempre desligar o altifalante do PC para desactivar os
apitos. Remover o módulo de kernel pcspkr
faz isso por
si.
O seguinte previne o programa
readline(3)
usando pelo
bash(1)
de apitar quando encontra "\a
" (ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
A mensagem de arranque do kernel em "/var/log/dmesg
"
contém o tamanho total exacto da memória disponível.
free(1) e top(1) mostram informação sobre os recursos de memória no sistema corrente.
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
![]() |
Dica |
---|---|
Não se preocupe com o grande tamanho de " |
Para o meu MacBook com 1GB=1048576k de DRAM (o sistema de vídeo rouba alguma), Eu vejo o seguinte.
Tabela 9.20. Lista dos tamanhos de memória relatados
relato | tamanho |
---|---|
Tamanho total no dmesg | 1016784k = 1GB - 31792k |
Livre no dmesg | 990528k |
Total sob a shell | 997184k |
Livre sob a shell | 20256k (mas efectivamente 321780k) |
Uma manutenção pobre do sistema pode expor o seu sistema a exploração externa.
Para segurança do sistema e verificação de integridade, você deve começar com o seguinte.
O pacote debsums
. Veja
debsums(1)
e Secção 2.5.2, “Ficheiro "Release" de nível de topo e autenticidade:”.
O pacote chkrootkit
. Veja
chkrootkit(1).
A família de pacotes clamav
. Veja
clamscan(1)
e
freahclam(1).
Tabela 9.21. Lista de ferramentas para segurança do sistema e verificação de integridade
pacote | popcon | tamanho | descrição |
---|---|---|---|
logcheck *
|
V:2, I:3 | 284 | daemon para enviar para o administrador por mail as anomalias nos ficheiros de log do sistema |
debsums *
|
V:2, I:4 | 324 | utilitário para verifica pacotes instalados contra sumários de verificação MD5 |
chkrootkit *
|
V:1.9, I:5 | 808 | detector de rootkit |
clamav *
|
V:2, I:9 | 584 | utilitário de anti-vírus para Unix - interface de linha de comandos |
tiger
*
|
V:0.8, I:0.9 | 3016 | relatar vulnerabilidades de segurança do sistema |
tripwire *
|
V:0.6, I:0.7 | 9456 | verificador de integridade de ficheiros e directórios |
john
*
|
V:0.6, I:2 | 472 | ferramenta de crack de palavras-passe activa |
aide
*
|
V:0.2, I:0.3 | 1240 | Ambiente de Detecção de Intrusão Avançado - binário estático |
bastille *
|
V:0.08, I:0.2 | 1960 | ferramenta de endurecimento de segurança |
integrit *
|
V:0.07, I:0.14 | 440 | programa de verificação de integridade de ficheiros |
crack
*
|
V:0.02, I:0.2 | 204 | programa de adivinhação de palavra-passe |
Aqui está um script simples para verificar as típicas permissões de ficheiros escritas incorrectamente.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
![]() |
Cuidado |
---|---|
Como o pacote |
Debian distribui o kernel Linux modularizado em pacotes para as arquitecturas suportadas.
Existem algumas funcionalidades notáveis no kernel Linux 2.6 comparado ao 2.4.
Os dispositivos são criados pelo sistema udev (veja Secção 3.5.11, “O sistema udev”).
Os acessos de leitura/escrita a dispositivos CD/DVD IDE não usam o módulo
ide-scsi
.
As funções de filtragem de pacotes de rede usam módulos
iptable
do kernel.
Muitas funcionalidades do Linux são configuráveis via parâmetros de kernel como se segue.
Parâmetros de kernel iniciados pelo gestor de arranque (veja Secção 3.3, “Estágio 2: o gestor de arranque (boot loader)”)
Parâmetros de kernel alterados pelo syscrl(8) durante a execução para os acessíveis via sysfs (veja Secção 1.2.12, “procfs e sysfs”)
Parâmetros de módulos definidos por argumentos do modprobe(8) quando um módulo é activado (veja Secção 10.2.3, “Montar o ficheiro de imagem de disco”)
Veja "kernel-parameters.txt(.gz)
" e outros documentos
relacionados na documentação do kernel Linux
("/usr/share/doc/linux-doc-2.6.*/Documentation/filesystems/*
")
disponibilizados pelo pacote linux-doc-2.6.*
.
A maioria dos programas normais não
precisa dos cabeçalhos do kernel e na verdade podem bloquear se os usar
directamente para compilação. Eles devem ser compilados contra os cabeçalhos
em "/usr/include/linux
" e
"/usr/include/asm
" disponibilizado pelo pacote
libc6-dev
(criado a partir do pacote fonte
glibc
) no sistema Debian.
![]() |
Nota |
---|---|
Para compilar alguns programas específicos do kernel como módulos de kernel
a partir de fonte externa e o daemon de auto-montagem
( |
O Debian tem o seu método próprio de compilar o kernel e os módulos relacionados.
Tabela 9.22. Lista de pacotes chave a serem instalados para a recompilação do kernel no sistema Debian.
pacote | popcon | tamanho | descrição |
---|---|---|---|
build-essential *
|
I:47 | 48 |
pacotes essenciais para construir pacotes Debian: make ,
gcc , …
|
bzip2
*
|
V:55, I:80 | 132 | utilitários de compressão e descompressão para ficheiros bz2 |
libncurses5-dev *
|
V:5, I:22 | 1192 | bibliotecas de programadores e documentos para ncurses |
git
*
|
V:10, I:35 | 10625 | git: sistema de controle de versão distribuído usado pelo kernel Linux |
fakeroot *
|
V:6, I:44 | 369 | disponibiliza um ambiente de falso-root para construção de pacotes como não-root |
initramfs-tools *
|
V:44, I:98 | 456 | ferramenta para construir uma initramfs (específico de Debian) |
kernel-package *
|
V:1.3, I:10 | 2316 | ferramenta para construir pacotes de kernel Linux (específico de Debian) |
module-assistant *
|
V:2, I:15 | 564 | ferramenta para ajudar a construir pacotes de módulos (específico de Debian) |
dkms
*
|
V:7, I:17 | 452 | suporte de módulos de kernel dinâmicos (DKMS) (genérico) |
devscripts *
|
V:2, I:9 | 1499 | scripts de ajuda para um responsável de pacote Debian (específico de Debian) |
linux-tree-2.6.*
|
N/D | N/D | meta-pacote da árvore fonte do kernel Linux (específico de Debian) |
Se você usa initrd
em Secção 3.3, “Estágio 2: o gestor de arranque (boot loader)”, certifique-se de ler a informação
relacionada em
initramfs-tools(8),
update-initramfs(8),
mkinitramfs(8)
e
initramfs.conf(5).
![]() |
Atenção |
---|---|
Não coloque links simbólicos para os directórios na árvore fonte
(ex. " |
![]() |
Nota |
---|---|
Quando compilar o kernel Linux mais recente no sistema Debian
|
![]() |
Nota |
---|---|
O suporte dinâmico a módulos
do kernel (DKMS) é uma nova infraestrutura independente da
distribuição desenhada para permitir que módulos de kernel individuais sejam
actualizados sem se alterar todo o kernel. Isto será aprovado para a
manutenção de módulos de fora-da-árvore para
|
O método standard de Debian para compilar a fonte do kernel para criar um
pacote de kernel personalizado usa o
make-kpkg(1).
A documentação oficial está no fundo de
"/usr/share/doc/kernel-package/README.gz
". Veja
kernel-pkg.conf(5)
e
kernel-img.conf(5)
para personalização.
Aqui está um exemplo para sistema amd64.
# aptitude install linux-tree-<version> $ cd /usr/src $ tar -xjvf linux-source-<version>.tar.bz2 $ cd linux-source-<version> $ cp /boot/config-<oldversion> .config $ make menuconfig ... $ make-kpkg clean $ fakeroot make-kpkg --append_to_version -amd64 --initrd --revision=1.0 kernel_image modules_image $ cd .. # dpkg -i linux-image*.deb
Reiniciar para o novo kernel com "shutdown -r now
".
![]() |
Cuidado |
---|---|
Quando você pretende criar um kernel não-modularizado compilado apenas para
uma máquina, invoque |
O método standard de Debian para criar e instalar um pacote de módulo
personalizado para um pacote de kernel personalizado usa o
module-assistant(8)
e pacotes de fonte de módulos. Por exemplo, o seguinte compila o pacote de
módulo de kernel unionfs
e instala-o.
$ sudo aptitude install module-assistant ... $ sudo aptitude install unionfs-source unionfs-tools unionfs-utils $ sudo m-a update $ sudo m-a prepare $ sudo m-a auto-install unionfs ... $ sudo apt-get autoremove
Você ainda pode construir o kernel Linux a partir das fontes primárias com o método clássico. Você tem de cuidar dos detalhes da configuração do sistema manualmente.
$ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-<version>.tar.bz2 $ tar -xjvf linux-<version>.tar.bz2 $ cd linux-<version> $ cp /boot/config-<version> .config $ make menuconfig ... $ make dep; make bzImage $ make modules # cp ./arch/x86_64/boot/bzImage /boot/vmlinuz-<version> # make modules_install # depmod -a # update-initramfs -c -k <version>
Configurar o bootloader com o seguinte.
Edite o "/etc/lilo.conf
" e corra
"/sbin/lilo
", se você usar o lilo
.
Edite o "/boot/grub/menu.lst
", se você usar o
grub
.
Reiniciar para o novo kernel com "shutdown -r now
".
Apesar da maioria das drivers de hardware estarem disponíveis como software livre e como parte do sistema Debian, você pode precisar de carregar algumas drivers externas e não-livres para suportar alguns hardwares, como os Winmodem, no seu sistema.
Verificar recursos pertinentes.
http://en.wikipedia.org/wiki/Comparison_of_open_source_wireless_drivers
Google ou outros motores de busca com a palavra "Linmodem".
http://madwifi-project.org (existe o ath5k que contém drivers livres)
O uso de sistema virtualizado permite-nos correr várias instâncias do sistema simultâneamente num único hardware.
![]() |
Dica |
---|---|
Existem vários pacotes relacionados com sistemas de virtualização e emulação em Debian para além do simples chroot. Alguns pacotes também o ajudam a configurar tais sistemas.
Tabela 9.23. Lista de ferramentas de virtualização
pacote | popcon | tamanho | descrição |
---|---|---|---|
schroot *
|
V:0.9, I:1.3 | 2676 | ferramenta especializada para executar pacotes binários Debian em chroot |
sbuild *
|
V:0.10, I:0.3 | 564 | ferramenta para construir pacotes binários Debian a partir de fontes Debian |
pbuilder *
|
V:0.5, I:2 | 1320 | construtor de pacotes pessoais para pacotes Debian |
debootstrap *
|
V:1.5, I:10 | 224 | bootstrap um sistema Debian básico (escrito em sh) |
cdebootstrap *
|
V:0.2, I:1.7 | 71 | bootstrap um sistema Debian (escrito em C) |
rootstrap *
|
V:0.02, I:0.17 | 156 | ferramenta para construir imagens de sistema de ficheiros de Linux completas |
virt-manager *
|
V:0.6, I:2 | 5225 | Virtual Machine Manager: aplicação de ambiente de trabalho para gerir máquinas virtuais |
libvirt-bin *
|
V:1.9, I:3 | 3379 | programas para a biblioteca libvirt |
user-mode-linux *
|
V:0.05, I:0.3 | 20800 | Modo-de-utilizador Linux (kernel) |
bochs
*
|
V:0.03, I:0.2 | 2944 | Bochs: emulador PC IA-32 |
qemu
*
|
I:5 | 344 | QEMU: emulador de processador genérico rápido |
qemu-system *
|
V:3, I:5 | 58043 | QEMU: binários de emulação de sistema completo |
qemu-user *
|
V:0.5, I:5 | 40909 | QEMU: binários de emulação em modo de utilizador |
qemu-utils *
|
V:0.8, I:6 | 1238 | QEMU: utilitários |
qemu-kvm *
|
V:2, I:3 | 4290 | KVM: virtualização completa em hardware x86 com virtualização assistida por hardware |
virtualbox-ose *
|
V:1.2, I:4 | 117 | VirtualBox: solução de virtualização x86 em i386 e amd64 |
xen-tools *
|
V:0.2, I:1.7 | 1228 | ferramentas para gerir o servidor virtual XEN do debian |
wine
*
|
V:1.1, I:11 | 96 | Wine: Windows API Implementation (suite standard) |
dosbox *
|
V:0.5, I:2 | 2568 | DOSBox: emulador x86 com gráficos Tandy/Herc/CGA/EGA/VGA/SVGA, som e DOS |
dosemu *
|
V:0.2, I:1.0 | 5944 | DOSEMU: O Emulador de DOS do Linux |
vzctl
*
|
V:0.7, I:1.0 | 769 | OpenVZ solução de virtualização de servidor - ferramentas de controle |
vzquota *
|
V:0.7, I:1.0 | 204 | OpenVZ solução de virtualização de servidor - ferramentas de cota |
lxc
*
|
V:0.12, I:0.5 | 438 | ferramentas do espaço de utilizador de contentores de Linux |
Veja o artigo da Wikipedia Comparação de plataformas de máquinas virtuais para uma comparação detalhada das diferentes soluções de plataformas de virtualização.
![]() |
Nota |
---|---|
Algumas funcionalidades descritas aqui apenas estão disponíveis em
|
![]() |
Nota |
---|---|
Os kernels predefinidos de Debian suportam KVM
desde |
O fluxo e trabalho típico para virtualização envolve vários passos.
Criar um sistema de ficheiros vazio (uma árvore de ficheiros ou uma imagem de disco).
A árvore de ficheiros pode ser criada por "mkdir -p
/path/to/chroot
".
A imagem de disco crua pode ser criada com o dd(1) (veja Secção 10.2.1, “Criando o ficheiro de imagem de disco” e Secção 10.2.5, “Criar um ficheiro de imagem de disco vazio”).
qemu-img(1) pode ser usado para criar e converter ficheiros de imagem de disco suportados pelo QEMU.
Os formatos de ficheiro cru e VMDK podem ser usados como formatos comuns entre ferramentas de virtualização.
Montar a imagem de disco com mount(8) no sistema de ficheiros (opcional).
Para o ficheiro de imagem de disco cru, monte-o como dispositivo loop ou dispositivo do device mapper (veja Secção 10.2.3, “Montar o ficheiro de imagem de disco”).
Para imagens de disco suportadas pelo QEMU, monte-as como dispositivos de bloco de rede (veja Secção 9.8.3, “Montar o ficheiro de imagem de disco virtual”).
Povoar o sistema de ficheiros alvo com os dados de sistema necessários.
Usar programas como o debootstrap
e o
cdebootstrap
ajudam neste processo (veja Secção 9.8.4, “Sistema chroot”).
Use instaladores de SOs sob o emulador de sistema completo.
Correr um programa sob um ambiente virtualizado
chroot disponibiliza um ambiente virtualizado básico suficiente para compilar programas, correr aplicações de consola, e correr daemons nele.
QEMU oferece emulação de CPU de várias plataformas.
QEMU com KVM oferece emulação de sistema completo pela virtualização assistida a hardware.
VirtualBox oferece emulação de sistema completo em i386 ou amd64 com ou sem a virtualização assistida a hardware.
Para o ficheiro de imagem de disco raw, veja Secção 10.2, “A imagem de disco”.
Para outros ficheiros de imagem de disco virtual, você pode usar o
qemu-nbd
para exportá-los usando o protocolo dispositivo de bloco de rede e montá-los
usando o módulo de kernel nbd
.
O qemu-nbd(8) suporta os formatos de disco suportados pelo QEMU: O QEMU suporta os seguintes formatos de discos: raw, qcow2, qcow, vmdk, vdi, bochs, cow (modo-de-utilizador de Linux de copiar-ao-escrever), parallels, dmg, cloop, vpc, vvfat (VFAT virtual), e dispositivo_máquina.
O dispositivo de bloco em rede
pode suportar partições do mesmo modo que o dispositivo de loop (veja Secção 10.2.3, “Montar o ficheiro de imagem de disco”). Você pode montar a primeira
partição de "disk.img
" como se segue.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
![]() |
Dica |
---|---|
Você pode exportar apenas a primeira partição de
" |
chroot(8) oferece a maneira mais básica de correr diferentes instâncias do ambiente GNU/Linux num único sistema em simultâneo sem reiniciar.
![]() |
Cuidado |
---|---|
Os exemplos em baixo assumem que ambos os sistemas pai e chroot partilham a mesma arquitectura de CPU. |
Você pode aprender a como configurar e usar chroot(8) ao correr o programa pbuilder(8) sob script(1) como se segue.
$ sudo mkdir /sid-root $ sudo pbuilder --create --no-targz --debug --buildplace /sid-root
Você vê como
debootstrap(8)
ou
cdebootstrap(1)
povoam dados do sistema para ambiente sid
sob
"/sid-root
".
![]() |
Dica |
---|---|
Estes debootstrap(8) ou cdebootstrap(1) são usados para instalar Debian pelo instalador Debian Installer. Estes também podem ser usados para instalar Debian num sistema sem usar um disco de instalação de Debian, mas em vez disso, a partir de outra distribuição de GNU/Linux. |
$ sudo pbuilder --login --no-targz --debug --buildplace /sid-root
Você pode ver como uma shell de sistema a correr sob ambiente
sid
é criada como o seguinte.
Copiar configuração local ("/etc/hosts
",
"/etc/hostname
", "/etc/resolv.conf
")
Montar o sistema de ficheiros "/proc
"
Montar o sistema de ficheiros "/dev/pts
"
Criar "/usr/sbin/policy-rc.d
" o qual sempre existe com
101
Corra "chroot /sid-root bin/bash -c 'exec -a -bash
bin/bash'
"
![]() |
Nota |
---|---|
Alguns programas sob chroot podem requerer acesso a mais ficheiros do
sistema pai para funcionarem do que o |
![]() |
Nota |
---|---|
O ficheiro " |
![]() |
Dica |
---|---|
O objectivo original do pacote chroot especializado,
|
![]() |
Dica |
---|---|
De modo semelhante, o pacote |
Eu recomendo usar o QEMU ou o VirtualBox num sistema Debian
stable
para correr múltiplos sistemas de ambiente de
trabalho em segurança usando virtualização. Isto permite-lhe correr
aplicações de ambiente de trabalho do Debian unstable
e
testing
sem os riscos usuais associados a elas.
Como o QEMU puro é muito lento, é recomendado acelerá-lo com KVM quando o sistema da máquina o suporta.
A imagem de disco virtual "virtdisk.qcow2
" que contem o
sistema Debian para o QEMU pode ser criada
usando o instalador de debian em
pequenos CDs como se segue.
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
Veja mais dicas em Debian wiki: QEMU.
O VirtualBox vem com ferramentas GUI Qt e é bastante intuitivo. As suas ferramentas GUI e de linha de comandos estão explicadas em Manual do Utilizador do VirtualBox e Manual do Utilizador do VirtualBox (PDF).
![]() |
Dica |
---|---|
Correr outras distribuições de GNU/Linux como o Ubuntu e o Fedra sob virtualização é um bom modo de aprender dicas de configuração. Também outros SOs proprietários podem correr muito bem sob esta virtualização do GNU/Linux. |