AdmRedesLinux Parte1
AdmRedesLinux Parte1
AdmRedesLinux Parte1
Software Livre
Marcos Monteiro
http://www.marcosmonteiro.com.br
[email protected]
Software Livre
Definição e História
Documentação Vasta
• Comando man, help e info;
• http://tldp.org/
• http://www.guiafoca.org/
Tipos de Arquivos
• Arquivo regular:
– tipo comum que contém dados somente. Os arquivos regulares podem
ser dos mais variados tipos, guardando os mais diferentes tipos de
informações. Existem arquivos de áudio, vídeo, imagem, texto, enfim.
Os arquivos se dividem em 2 (duas) categorias principais:
• Binários:
– Arquivos binários são compostos por bits 1 e 0 e só podem
ser interpretados pelo sistema operacional, sendo
incompreensíveis por nós humanos. Se um arquivo binário for
aberto por um editor de textos, serão exibidos vários símbolos
estranhos. Programas e bibliotecas são exemplos de arquivos
binários;
• Texto:
– Arquivos do tipo texto são compostos por informações em
forma de texto, que podem ser entendidas pelo usuário
comum. Arquivos desse tipo não necessariamente contém
texto propriamente dito. Quando se diz que um arquivo é do
tipo texto estamos querendo dizer que, se o abrirmos num
editor de texto, serão exibidos informações legíveis (ainda que
possam não fazer muito sentido).
Tipos de Arquivos
• Diretórios:
– Diretórios são utilizados para separar um grupo de arquivos de outros.
Um diretório pode conter arquivos e outros diretórios, que serão
chamados subdiretórios;
• Dispositivos:
– todo componente de hardware instalável é chamado dispositivo.
Placas de vídeo, som, rede, drives de CD-ROM, tudo o que se liga na
interface USB, memória RAM, são dispositivos. Os dispositivos podem
ser:
• De bloco:
– Dispositivos de bloco utilizam buffer para leitura/gravação.
Geralmente são unidades de disco, como HD's, CD's, etc;
• De caracter:
– esses dispositivos não utilizam buffer para leitura/gravação. A
maioria dos dispositivos PCI e outros dispositivos como
impressoras, mouse, etc. são do tipo caracter;
• Fifo:
– trata-se de um canal de comunicação, através do qual pode-se
ver os dados que estão trafegando por um dispositivo;
Tipos de Arquivos
• Links:
– Os links são arquivos utilizados para fazer referência a um
outro arquivo localizado em outro local. Em outras palavras,
são atalhos. Os links podem ser de 2 (dois) tipos:
• Simbólicos:
– fazem uma referência ao arquivo através de seu
endereço lógico no disco ou memória. São os links
mais comuns;
• Absolutos:
– Fazem referência ao arquivo através do seu endereço
físico no disco rígido ou memória.
• FIFO:
– canal de comunicação, utilizado para direcionar os dados
produzidos por um processos para um outro processo.
Tipos de Diretórios
• Os sistemas GNU/Linux possuem um padrão rígido e específico a respeito da organização
hierárquica dos diretórios, definido pela Filesystem Hierarquy Standard, ou simplesmente
FHS, constante da LSB.
• /bin/
– aqui encontram-se os programas que são usados freqüentemente pelos usuários;
• /boot/
– arquivos estáticos utilizados durante a inicialização do sistema;
• /dev/
– encontramos aqui os dispositivos de hardware. Existem vários arquivos, um para cada
dispositivo;
• /etc/
– nesse diretório ficam os arquivos de configuração do sistema e dos programas
instalados;
• /home/
– os usuários cadastrados no sistema possuem um diretório com seu nome dentro de
/home. Em geral é a única área acessível aos usuários para gravarem seus arquivos;
Tipos de Diretórios
• /lib/
– as bibliotecas essenciais e os módulos do kernel Linux ficam aqui. Bibliotecas são
conjuntos de funções e recursos utilizados por programas;
• /media
– aqui devem ser inseridos os pontos de montagem para as mídias removíveis, como
CD's e disquetes;
• /mnt/
– diretório utilizado para conexão com volumes presentes em outros computadores da
rede ou para acessar dispositivos removíveis. Em outras palavras, aqui ficam os pontos
de montagem temporários;
• /opt/
– softwares adicionais instalados de maneira não padrão devem ficar aqui;
• /root
– diretório pessoal do usuário root, o administrador do sistema;
• /sbin/
– local dos programas essenciais para o funcionamento e manutenção do sistema.
Somente o administrador (root) tem permissão de executar esses programas;
Tipos de Diretórios
• /srv
– dados dos serviços fornecidos pelo sistema;
• /tmp
– aqui se encontram os arquivos temporários gerados pelo sistema;
• /usr/
– os arquivos acessados pelos usuários se encontram contidos neste diretório,
principalmente programas e os arquivos utilizados por esses programas;
• /var/
– aqui se encontram informações variáveis do sistema, como spool de impressora, caixas
postais, logs do sistema, cache de programas, etc.
principais subdiretórios
• /etc/X11/
– arquivos de configuração do servidor X;
• /etc/skel/:
– arquivos gravados no diretório pessoal do novo usuário;
• /etc/network/:
– arquivos de configuração da rede;
• /lib/modules/:
– diretório dos módulos do kernel Linux. Dentro do diretório modules existirá um
subdiretório para cada versão de kernel disponível no sistema. O nome desse
subdiretório será a versão do kernel correspondente;
• /media/floppy/:
– ponto de montagem da unidade de disquete principal;
• /media/cdrom/:
– ponto de montagem da unidade de CD-ROM principal;
• /usr/bin/:
– programas utilizados pelos usuários;
• /usr/lib/:
– bibliotecas utilizadas pelos programas em /usr/bin;
• /var/spool/: diretório de spool dos processos.
principais subdiretórios
• /usr/sbin/:
– programas utilizados pelo administrador do sistema;
• /usr/src/:
– códigos-fonte de programas devem ficar aqui, incluindo do kernel Linux;
• /usr/X11R6/:
– programas, bibliotecas e demais arquivos do servidor X;
• /var/cache/:
– aqui ficam armazenados os arquivos de cache utilizados por diversos programa. Dentro
do diretório cache/ são criados diretórios com o nome dos processos criadores;
• /var/lock/:
– usado para bloquear a execução de programas. Se dentro desse diretório houver um
arquivo com o nome de um determinado processo, ele não poderá ser executado;
• /var/log/:
– arquivos de log gerados pelos sistema e outros programas;
• /var/mail/:
– mensagens enviadas ao usuário root e emails ficam armazenados aqui (requer
configuração);
• /var/run/:
– dados dos programas em execução;
Instalando o linux
Boot
Modos de Inicialização
Inicialização Scripts Função
Nível 0 /etc/rc.d/rc0.d desligamento da máquina
# init x
Onde 'x' varia de 0 à 6.
No exemplo, está inicializando com o Runlevel nível 5, que carrega a interface gráfica.
Poderíamos colocar para inicializar no Runlevel nível 3, basta mudar o número, deixando
da seguinte maneira:
id:3:initdefault:.
Comando runlevel mostra qual nível está iniciado.
Comandos do sistema de arquivos
cd
pwd
pwd
tac
Similar ao cat, porém as linhas do arquivo são mostradas da
última para a primeira.
rev
Envia o conteúdo do arquivo para a saída padrão (por padrão o
monitor), mas mostra as linhas de trás para frente. A ordem das
linhas são mantidas, porém são mostrados do último ao
primeiro caractere da linha.
User Mask – umask e chmod
as permissões iniciais de um arquivo são 666 (leitura e gravação para todo e qualquer usuário do sistema);
as permissões iniciais de um diretório são 777 (leitura, gravação e acesso para todo e qualquer usuário do sistema).
Para verificar a configuração atual de umask, basta digitar na linha de comando
umask
Para alterar o valor de umask, basta incluir o novo valor após o comando umask. Por exemplo, o comando
umask 002
define que, por padrão, novos arquivos terão permissão 664, enquanto novos diretórios terão permissão 775.
Suponha que o usuário aluno tenha definido o umask como 002. Portanto, quando este usuário cria o arquivo teste, temos as
seguintes permissões
mv
Move arquivos. Também utilizado para renomear. Alguns
parâmetros:
-f força a movimentação
-i interativo (pergunta antes de sobrescrever)
-v mostra os arquivos que estão sendo movidos
rm
Remove (deleta) arquivos. Alguns
parâmetros:
-f força a remoção
-i interativo (pergunta antes de
remover)
-R, -r remove diretórios recursivamente
-v mostra os arquivos que estão
sendo removidos
rmdir
Remove diretórios vazios.
Montagem
mount
umount
/etc/fstab
fdisk -l e df -h
mkdir
Cria diretório.
chmod
Muda os atributos de arquivos e diretórios.
ln
Cria links para arquivos e diretórios.
man, info
Fornece informações sobre o funcionamento dos
comandos externos.
Comandos para manipulação de data e hora
date
Mostra a data e a hora do sistema. Também é
utilizados para acertar a data/hora.
time
Mostra estatísticas de utilização de tempo do
processo executado como parâmetro.
cal
Mostra um calendário.
hwclock, clock
Consulta ou acerta a hora no relógio do hardware.
Comandos para processamento de texto
sort
Mostra um arquivo em ordem alfabética.
uniq
Remove linhas duplicadas de um arquivo ordenado.
head
Envia as primeiras linhas de um arquivo para a saída padrão.
tail
Envia as últimas linhas de um arquivo para a saída padrão. Quando
utilizado com o parâmetro -f o comando continua mostrando novas
linhas que são adicionadas ao arquivo (útil para monitorar arquivos de
log).
wc
Conta a quantidade de linhas, palavras e caracteres em um arquivo.
nl
Numera as linhas de um arquivo.
Comandos para arquivamento
tar
Junta vários arquivos em um único arquivo ou dispositivo.
gzip
Faz a compressão de um arquivo. Normalmente utilizado em conjunto com o
tar quando é necessário fazer a compressão de mais de um arquivo.
bzip2
Outro programa para compressão de arquivo. Normalmente mais eficiente que
o gzip.
zip, unzip
Programas para manipulação de arquivo comprimido no formato zip.
arj, unarj
Programas para manipulação de arquivo comprimido no formato arj.
rar, unrar
Programas para manipulação de arquivo comprimido no formato rar.
Comandos que atuam sobre variáveis
unset
Remove o valor de variáveis internas do shell. Na prática
as coloca com valor null.
export
Torna a variável passada como parâmetro disponível
para processos filho.
readonly
Torna uma variável disponível somente para leitura (a
torna uma constante). Tentativas de alterar seu valor irão
provocar uma mensagem de erro.
Comandos para controle de jobs
jobs
Lista os processos executando em segundo plano no shell, fornecendo o
número do job.
fg
Trás para o primeiro plano um job que está executando em segundo plano.
bg
Coloca em execução em segundo plano um job cuja execução tenha sido
suspensa.
kill
Força o encerramento de um processo enviando ao processo um código de
encerramento.
killall
Força o encerramento de um processo passado a ele o nome do processo.
Arquivos
file
Identifica o tipo de um arquivo.
which
Mostra em que diretório se encontra determinado arquivo.
diff
Compara 2 arquivos e mostra as diferenças entre eles.
sum, cksum, md5sum, sha1sum, sha256sum
Comandos para gerar hash de arquivos a fim de verificar sua
integridade.
more, less
Pagina arquivos e os envia para a saída padrão. O comando
less permite um maior controle sobre a paginação.
Comandos do sistema
su e sudo e sudoers
Executa um programa como um usuário substituto ou inicia um shell como
outro usuário.
uname
Exibe informações sobre o sistema.
free
Mostra o total de memória RAM e swap utilizada pelo sistema.
du
Mostra o total de espeço em disco utilizado (recursivamente) por arquivos e/ou
diretórios.
df
Mostra a utilização dos discos/partições.
dmesg
Mostra todas as mensagens emitidas durante o processo de boot do sistema.
uptime
Mostra por quanto tempo o sistema está em execução.
Redirecionamento
Para todo processo existem sempre 3 arquivos
abertos por padrão:
stdin ? entrada padrão (teclado)
stdout ? saída padrão (monitor)
stderr ? saída de erros (monitor)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static # use dhcp ao invés de static, se tiver um server dhcp
address x.x.x.x # troque x pelo seu ip
netmask x.x.x.x # troque x pela sua mascara
gateway x.x.x.x
dns-nameservers x.x.x.x
Configurando Interface
• Como Serviço no Debian
– /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static # use dhcp ao invés de static, se tiver um server dhcp
address x.x.x.x # troque x pelo seu ip
netmask x.x.x.x # troque x pela sua mascara
gateway x.x.x.x
dns-nameservers x.x.x.x
Outros comandos para rede
• dhclient
• ping
• traceroute
• netstat
• arp
.
Instalando programas
A partir de um código fonte
• $ ./configure
• # make
• # make install
e é só :D
– apt-cache search
• Procura pacotes e descrições por <padrão>.
– apt-cache show
• Retorna a descrição completa de <pacote>.
– apt-cache showpkg
• Retorna mais detalhes sobre <pacote> e seu
relacionamento com outros pacotes.
– apt-cache depends
• Retorna os pacotes que são dependência de
<pacote>
APT (Advanced Package Tool)
• apt-cdrom
– apt-cdrom add
• Adiciona o CD-ROM à sources.list. Isto desmontará
o dispositivo de CD-ROM, pedirá para inserir o CD
de pacotes, e então irá procurar no CD arquivos de
índice.
APT (Advanced Package Tool)
• apt-file
– Ferramenta para busca de pacotes através de arquivos contidos no pacote. É
semelhante ao uso de "dpkg - S", porém devolve pacotes não instalados também. Para
isso possui uma base de dados com informações sobre cada pacote de servidores
contidos no sources.list. A atualização da base de dados é feita em conjunto com o
pacote "curl", que precisa de ser instalado também, mesmo não sendo uma
dependência de apt-file.
• apt-file update
– Sincroniza a base de dados do apt-file.
• apt-file search
– Procura por um pacote através de um arquivo
integrante.
• apt-file list
– Lista todos os arquivos contido em um pacote.
APT (Advanced Package Tool)
• Consertando dependências
• apt-get install -f
• apt-get upgrade -f
• apt-get dist-upgrade -f
• dpkg –configure -a
Nossa source list
• Em /etc/apt/sources.list
• groupadd:
– Comando usado para criar um grupo.
• groupdel:
– Comando usado para remover um grupo.
• groupmod:
– Comando usado para modificar os dados de um
grupo.
useradd
• Sintaxe: useradd [opções] <username>
• -d - Caminho do diretório home do usuário.
• -g - Especifica o grupo do usuário.
• -c - Inclui um comentário referente ao usuário, tais
como nome, setor, etc
• -s - Especifica o shell de comando que o usuário irá
utilizar.
• -m - Cria o diretório home do usuário e copia os
arquivos de /etc/skel/ para o home criado.
• -p - Essa opção serve para especificarmos uma senha
já criptografada para o usuário.
# useradd -g admin -s /bin/bash -d /home/sup1 -c "Usuário Suporte 1" -m sup1
No exemplo acima criamos o usuário sup1, que tem como grupo admin, usando o shell
/bin/bash, o home criado foi o /home/sup1 e tem o comentário "Usuário Administrativo de
Suporte 1".
passwd
• Sintaxe: passwd [opções] <username>
• -d - Permite o usuário acessar (logar) o sistema sem
senha.
• -l - Bloqueia/trava a conta do usuário. O usuário não
consegue logar.
• -u - Desbloqueia/destrava a contado usuário
(bloqueado pela opção "-l").
• -S - Mostra o status da senha do usuário.
• # passwd sup1
• # passwd -l sup1
• # passwd -u sup1
usermod
usermod [opções] <username>
• -d - Modifica o caminho do diretório home do usuário.
• -g - Modifica o grupo do usuário.
• -c - Modifica o comentário referente ao usuário.
• -s - Modifica o Shell de comando que o usuário irá
utilizar.
• -p - Substitui a senha já criptografada do usuário.
– /etc/shadow
• Onde estão armazenadas as senhas criptografadas dos
usuários, além de outras informações como expiração
da senha etc.
Diretório e arquivos
– /etc/gshadow
• Tem a mesma finalidade do /etc/shadow, só que para grupos e não
usuários.
– /etc/group
• É onde se encontram os grupos existentes no sistema. Cada grupo
pode estar associado a vários usuários, este arquivo também é
responsável por esta associação.
– /etc/motd
• Esse arquivo contém as informações que serão exibidas após o
login do usuário.
– /etc/default/useradd e /etc/login.defs
• Arquivos onde se encontram as configurações default de criação
de usuários. As configurações podem ser diferentes dependendo
de cada "distro", umas por exemplo, não há a necessidade da
opção "-m" para a criação do diretório HOME do usuário.
Gerenciando grupos e senhas
• gpasswd
– Com esse comando podemos criar senhas para
administradores de grupo que terão poder de
incluir e remover, além de modificar a senha de
um grupo.
• grpconv
– Através desse comando é criado o arquivo
gshadow utilizando o arquivo group para isso.
• grpunconv
– Esse comando recria um arquivo group utilizando
os arquivos group e gshadow e após isso ele
remove os dois arquivos.
Gerenciando grupos e senhas
• pwconv
– Utilizando o arquivo passwd ele cria o arquivo
shadow, hoje em dia esse comando é pouco
utilizado, pois os novos sistemas já trabalham
diretamente com senhas criptografadas já
localizadas no shadow.
• pwunconv
– Recria o arquivo passwd utilizando os arquivos
passwd e shadow e depois os removendo.
Gerenciando grupos e senhas
• chage
– Usado para modificar parâmetros de expiração de
senha dos usuários. Pode ser executado pelo
superusuário seguido do nome do usuário a que
iremos modificar os parâmetros. Nesse caso só
teremos que ir respondendo o que nos é
perguntado. Outra coisa que temos que ter em
mente é que esse comando funciona apenas se
estivermos usando o esquema de senhas
criptografadas (/etc/shadow).
Neste exemplo estou alterando o grupo de todos os arquivos e diretórios dentro de /home
para users.
Agendar Tarefas
• crontab
– crontab -e
• Edita o crontab ou cria um caso ainda não exista;
– crontab -l
• Mostra o conteúdo do crontab;
– crontab -r
• Remove o crontab;
– crontab -v
• Mostra quando foi a última vez que o crontab foi editado
(disponível em apenas alguns sistemas).
O crontab controla as tarefas agendadas por cada usuário. Existe um arquivo para o
sistema (/etc/crontab) e um para cada usuário, localizado em
/var/spool/cron/<usuário>.
$ crontab -e
O crontab respeita esta sintaxe.
-----
|||||
| | | | +----- dia da semana (0 - 6) (domingo=0)
| | | +------- mês (1 - 12)
| | +--------- dia do mês (1 - 31)
| +----------- hora (0 - 23)
+------------- minuto (0 - 59)
crontab
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado.
No caso de dia da semana funciona também as três primeiras letras
(em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
40 16 1 6-8 * /home/oracle/sqldump.sh
Às 16:40 dos dias 01 de junho, julho e agosto, será executado o script sqldump.sh.
OBS: Somente sistemas de arquivos ext2, ext3 e xfs possuem suporte a quota de disco no Linux.
Quota de disco
• # mount -o remount,rw /share
Execute o comando "mount" para verificar se as opções de quotas estão
habilitadas.
– # mount | grep share
» /dev/hda4 on /share type ext3 (rw,usrquota,grpquota)
• quotachek
– É utilizado para checar quotas de disco em todos os sistemas de
arquivos em /etc/fstab. E também é utilizado para criar os arquivos
com informações sobre as quotas: aquota.user e aquota.group.
• quotaon
– É utilizado para habilitar a checagem de quota de disco.
• quotaoff
– Desabilita quotas de disco no sistema
# quotaon -augv
quotaon: using /share/aquota.group on /dev/hda4 [/share]: Device or resource busy
quotaon: using /share/aquota.user on /dev/hda4 [/share]: Device or resource busy
Quota de disco
Agora vamos verificar se os arquivos aquota.user e aquota.group foram
criados em /share:
OBS: Perceba que os arquivos aquota.user e aquota.group tem permissão de leitura e escrita somente para o
usuário root, já que somente o usuário root pode gerenciar quotas no sistema.
# edquota roberto
Quando o limite hard é atingido, o usuário é alertado com a mensagem "hda4: write failed, user
file limit reached." e posteriormente com a mensagem "mkdir: não é possível criar o diretório
`novo_dir': Disk quota exceeded". E o usuário será bloqueado para criar novos arquivos ou
diretórios. O limite hard nunca será ultrapassado.
O limite soft é válido somente por um determinado tempo, após expirar este tempo, o valor do
limite soft é utilizado como limite hard. Lembrando que o hard nunca poderá ser ultrapassado.