Você está na página 1de 56

IPCA Administração de Redes e Sistemas

Instituto Politécnico do Cávado e do Ave


Administração de Redes e Sistemas
Forense 2016/2017
Guião Laboratorial – Introdução ao Linux

Índice
1 Introdução ao sistema operativo Linux ................................................................................................ 3
2 Instalação e arranque do sistema operativo Linux ............................................................................... 5
3 Inicio da sessão ..................................................................................................................................... 8
4. Comandos em modo texto na Shell ................................................................................................... 10
4.1 Listagem de ficheiros e diretórios ............................................................................................... 10
4.2 Criação de diretórios ................................................................................................................... 10
4.3 Mudança de diretório.................................................................................................................. 11
4.4 Os diretórios. e ............................................................................................................................ 11
4.5 Pathnames ................................................................................................................................... 12
4.6 Mais sobre diretórios base e caminhos absolutos ...................................................................... 13
4.7 Copiar Ficheiros ........................................................................................................................... 15
4.8 Movendo ficheiros....................................................................................................................... 16
4.9 Removendo ficheiros e diretórios ............................................................................................... 16
4.10. Visualizando no ecrã, o conteúdo de um ficheiro .................................................................... 17
4.10. Pesquisando o conteúdos dentro de um ficheiro..................................................................... 18
4.11 Metacaracteres ......................................................................................................................... 21
4.12 Pesquisa de ficheiros e diretorias ............................................................................................. 21
4.13 Ligações a ficheiros e diretorias ................................................................................................ 23
5 Redirecionamento .............................................................................................................................. 24
5.1 Redirecionando a Saída ............................................................................................................... 24
5.1.1. Adicionando a um ficheiro .................................................................................................. 25
5.2 Redirecionamento da entrada ..................................................................................................... 25
5.3 Pipes ............................................................................................................................................ 27
5.4 Expressões Regulares .................................................................................................................. 28

Página 1 de 56
IPCA Administração de Redes e Sistemas

5.5 Manipulação de informação ........................................................................................................ 30


5.6 Troca e eliminação de caracteres ................................................................................................ 30
5.7 Cópia da saída de comandos ....................................................................................................... 31
6 Obtendo Ajuda ................................................................................................................................... 33
6.1 Manuais on-line ........................................................................................................................... 33
6.2 Apropos ....................................................................................................................................... 33
6.3 Comandos com opção --help .................................................................................................. 33
7. Sistema de Ficheiros em Linux ........................................................................................................... 34
7.1 permissões de acesso a um ficheiro ............................................................................................ 40
7.1 permissões de acesso a um diretório .......................................................................................... 41
7.3 Permissões de Acesso Especiais .................................................................................................. 42
7.4 Alteração de propriedades de ficheiros e diretorias ................................................................... 43
8. Visualização e manipulação de processos ......................................................................................... 45
8.1 Processos e Jobs .......................................................................................................................... 45
8.2 Listagem suspensa e processos em segundo plano ..................................................................... 46
8.3 Matando um processo ................................................................................................................. 47
10 Operações com Ficheiros.................................................................................................................. 50
10.1. Identificador unívoco do conteúdo de ficheiros ....................................................................... 50
10.2. Cópias de Segurança (Backups) ................................................................................................ 51
10.3. Compressão de ficheiros .......................................................................................................... 52
10.4. Divisão de ficheiros ................................................................................................................... 52
10.5. Comparação entre ficheiros ..................................................................................................... 53
11 Editores de Texto .............................................................................................................................. 53
11.1 Pico ou Nano .............................................................................................................................. 53
11.2 VIM (vi iMproved) ...................................................................................................................... 54
12 Exercícios de revisão ......................................................................................................................... 55

Página 2 de 56
IPCA Administração de Redes e Sistemas

1 Introdução ao sistema operativo Linux


UNIX é um sistema operativo que foi desenvolvido pela primeira vez na década de 1960, e tem estado
em constante desenvolvimento desde então. Por sistema operativo, queremos dizer o conjunto de
programas que tornam o computador numa ferramenta de trabalho.

O Linux é uma variante do Unix que tem as seguintes características principais:

• Multitarefa - capacidade para a execução “simultânea” de vários programas.

• Multiutilizador - capacidade para o suporte “simultâneo” de vários utilizadores.

• Interativo - capacidade para aceitar comandos introduzidos pelo utilizador.

• Portável – capacidade para ser executado em vários tipos de sistemas e de dispositivos.

• Possuiu várias distribuições sendo algumas comerciais e outras freeware.

Os sistemas operativos Linux também têm uma interface gráfica do utilizador (GUI) semelhante ao
Microsoft Windows que fornece um ambiente de fácil utilização. No entanto, é necessário um
conhecimento da linha de comandos Linux, para operações que não sejam abrangidos por um
programa gráfico, ou para quando não há nenhuma interface de ambiente gráfico com janelas
disponíveis, por exemplo, numa sessão SSH.

O sistema operativo UNIX é constituído por três partes; o kernel, a shell e os programas.

• O kernel O kernel do UNIX é o centro do sistema operativo: ele aloca tempo e memória para
programas e lida com a filestore e comunicações em resposta a chamadas do sistema.

• A Shell, funciona como uma interface entre o utilizador e o kernel. Quando um utilizador faz
logon, o programa de login verifica o nome de utilizador e senha e, em seguida, começa dá
início a um outro programa chamado a shell. A shell é um interpretador de linha de comando
(CLI). Ela interpreta os comandos que o utilizador digita. Os comandos são eles próprios
programas. O utilizador pode personalizar a sua própria Shell.

A shell tem certas características que podem ajudar o utilizador na introdução de comandos.
Conclusão automática de comando - Ao digitar parte do nome de um comando, nome de
ficheiro ou diretório e pressionar a tecla [Tab], a shell bash ou tcsh irá completar o resto do
nome automaticamente. Se a shell encontrar mais de que um nome que começa com as letras
escritas, é emitido um sinal sonoro, solicitando que sejam digitadas mais uns caracteres antes
de pressionar a tecla [Tab] novamente.

Histórico de comandos - A shell mantém uma lista dos comandos digitados. Se houver
necessidade de repetir um comando, usa-se as teclas do cursor para cima e para baixo para ir

Página 3 de 56
IPCA Administração de Redes e Sistemas

visualizando a lista de comandos previamente digitados. Também é possível usar o comando


history para uma obter uma lista completa de comandos anteriores.

Página 4 de 56
IPCA Administração de Redes e Sistemas

2 Instalação e arranque do sistema


operativo Linux
Ao longo desta UC será utilizada a distribuição Ubuntu Server 16.04.3 LTS, sendo uma versão LTS,
garante suporte até abril de 2021 podendo ser obtida aqui.

Iremos igualmente utilizar o software VirtualBox ou vmware que permite a virtualização de sistemas
operativos, podendo ser obtido gratuitamente aqui.

Nota: O processo de instalação do Sistema Operativo na máquina virtual será explicado passo a
passo no durante a aula. O Disco duro deverá ser configurado com tamanho de 12Gb alocados
dinamicamente.

Relativamente ao particionamento do(s) disco(s) o tipo de servidor vai influenciar esta escolha.

Para novos utilizadores, máquinas pessoais, sistemas domésticos, e outras configurações de utilizador
único, uma única partição / (mais a swap), é provavelmente o método mais simples e fácil de ser feito.

Para sistemas multi-utilizador ou sistemas com muito espaço em disco, é melhor optar por ter a /var,
/tmp, e /home cada uma na sua própria partição, separadas da partição / (raiz).

Se por exemplo a máquina servir de servidor de mail, então poderá ser necessário criar uma partição
/var/mail. Também é boa ideia colocar a diretoria /tmp na sua própria partição. Um servidor com
muitas contas de utilizadores deve ser configurado com a /home numa partição grande e separada.
Em geral, o esquema de particionamento varia de computador para computador dependendo da sua
utilização.

Relativamente ao tamanho da partição swap, existem vários pontos de vista. Uma regra que funciona
bem é usar o dobro da quantidade da memória RAM do sistema. Isto porque caso o sistema queira
fazer um dump da informação contida na memória RAM num dado momento, poderá faze-lo tendo
espaço suficiente para tal operação. Claro que existem exceções a esta regra, se por exemplo se o
servidor tiver aplicações matemáticas a realizar vários cálculos ao mesmo tempo, então poderá ser
interessante configurar uma partição swap com vários gigabytes superiores à memória RAM.

Relativamente às partições de dados, temos três opções de escolha nativas de Linux no que diz respeito

Ext2

Foi introduzido em 1993. Desenvolvido por Rémy Card, tendo sido desenvolvido para superar a
limitação do sistema de ficheiros Ext original. O Ext2 não tem o recurso de journaling disponível.

• Em drives do tipo flash e drives usb, o ext2 é recomendado, pois não cria o overhead associado
à funcionalidade de journaling.

Página 5 de 56
IPCA Administração de Redes e Sistemas

• O tamanho total do sistema de ficheiros ext2 pode ir de 2 TB a 32 TB

Ext3

Foi introduzido em 2001. Desenvolvido por Stephen Tweedie. Estando disponível a partir do Linux
Kernel 2.4.15. O principal benefício do ext3 é permitir usar a função de journaling.

Journaling tem uma área dedicada no sistema de ficheiros, onde todas as alterações são rastreadas.
Quando o sistema falha, a possibilidade do sistema de ficheiros (filesystem) ficar corrompido, é menor
devido à ações associadas ao journaling.

• O tamanho total do sistema de ficheiros ext3 pode ir de 2 TB a 32 TB


• Existem três tipos de journaling disponíveis no sistema de ficheiros ext3.
o Journal - Metadados e conteúdos são salvos no journal.
o Encomendado (ordered) - Apenas metadados são salvos no jornal. Os metadados são
registrados no jornal, apenas depois do seu conteúdo ser gravado em disco. Este é o
tipo usado por defeito.
o Writeback - Apenas os metadados são salvos no journal. Os metadados podem ser
registrados no journal antes ou depois do conteúdo ser gravado em disco.

É possível converter um sistema de ficheiros ext2 para sistema de ficheiros ext3 diretamente (sem
backup / restauro).

Ext4

Foi introduzido em 2008, estando disponível a partir do Linux Kernel 2.6.19.

Suporta um enorme tamanho de ficheiro individual e tamanho geral do sistema de ficheiros.

• O tamanho máximo do sistema de ficheiros ext4 é 1 EB (exabyte). 1 EB = 1024 PB (petabyte).


1 PB = 1024 TB (terabyte).
• Diretório pode conter um máximo de 64.000 subdiretórios (32.000 em ext3)
• É possível montar um sistema de ficheiros ext3 em ext4 (sem precisar atualizá-lo).
• Vários outros novos recursos foram introduzidos no ext4: alocação de multibloco, alocação
atrasada, checksum do journal. Fsck rápido, etc. Todos estes recursos melhoraram o
desempenho e a fiabilidade do sistema de ficheiros quando comparado ao ext3.
• É possível em ext4, desativar o recurso de registro no journal.

Também é possível espalhar as partições SWAP por vários discos. O kernel irá equilibrar a utilização de
swap entre as múltiplas partições de swap, oferecendo uma melhor performance.

Para a resolução deste guião, iremos criar o seguinte esquema de partições:

• Uma partição primária com mount point /boot, 1Gb de espaço e Filesystem ext2

Página 6 de 56
IPCA Administração de Redes e Sistemas

• Uma partição lógica com mount point /home, 2Gb de espaço e Filesystem ext4 com journal

• Uma partição lógica com mount point /var, 2Gb de espaço e Filesystem ext4 com jornal

• Uma partição lógica swap com 2 Gb – (Tendo como base uma MV com 1 Gb de memória RAM
por exemplo)

• Uma partição lógica com mount point / com restante espaço disponível e Filesystem ext4 com
jornal

Figura 1 - Exemplo de particionamento

Página 7 de 56
IPCA Administração de Redes e Sistemas

3 Inicio da sessão
Após iniciar a maquina virtual, é apresentado o ecrã de login onde o utilizador coloca as suas
credenciais para efetuar login no sistema. Este ecrã de login é um TTY. O TTY é uma abreviatura de
TeleTypewriter. TTY é um terminal no qual estamos conectados e que podemos usar como linha de
comandos.

Experimente as teclas ALT+F2 e assim sucessivamente até ALT+F6. É possível trabalhar em 6 terminais
ao mesmo tempo

Figura 2 - Terminal TTY

Página 8 de 56
IPCA Administração de Redes e Sistemas

1. Faça login e execute o comando ipconfig.

2. Anote o endereço IP atribuído por DHCP ao sistema operativo.

3. Saia do terminal com o comando exit

4. Na máquina host do virtual box ou vmware, faça download da aplicação Putty aqui.

Figura 3 - Configuração de Putty

5. Estabeleça uma ligação remota ao IP da maquina virtual usando o Putty com protocolo SSH

Nota: a partir daqui todos os comandos serão executados a partir do Putty, partindo do princípio
que a maquina virtual não está localizada no seu computador, mas sim num local remoto, acessível
por SSH.

Página 9 de 56
IPCA Administração de Redes e Sistemas

4. Comandos em modo texto na Shell

4.1 Listagem de ficheiros e diretórios


ls (lista)

Após o login, o diretório de trabalho atual é o diretório home. O diretório home tem o mesmo nome
que o nome de utilizador, por exemplo, vmanso, e é onde os ficheiros pessoais e subdiretórios são
salvos.

Para listar os ficheiros e diretórios do seu diretório home, execute:

% ls

O comando ls (L minúscula e S minúsculas) lista o conteúdo do diretório atual. Caso existam ficheiros
visíveis no diretório home, a prompt do Linux irá devolver a sua listagem.

O ls lista todos os ficheiros do diretório home com exceção daqueles cujo nome começa com um
ponto (.) Os ficheiros que começam com um ponto (.) são conhecidos como ficheiros ocultos e
geralmente contêm informações importantes de configuração de programas. Eles estão ocultos
porque não devem ser alterados, a menos que o utilizador esteja muito familiarizado com Linux.

Para listar todos os ficheiros do diretório pessoal, incluindo aqueles cujos nomes começam com um
ponto, use o comando:

% ls -a

% cd /

% ls -lsa

Na listagem anterior identifique

a) os ficheiros ou diretorias visíveis;


b) as linhas que correspondem a diretorias;
c) os donos e grupos dos ficheiros listados

4.2 Criação de diretórios


mkdir (make directory)

Página 10 de 56
IPCA Administração de Redes e Sistemas

Vamos agora fazer um subdiretório no seu diretório home para armazenar os ficheiros criados no
decorrer deste tutorial.

Execute:

% mkdir unixstuff

Para ver o diretório que acabou de criar, execute

% ls

4.3 Mudança de diretório.


cd (change directory)

O comando cd serve para mudar o diretório de trabalho atual para 'diretório'. O diretório de trabalho
atual é aquele em que está atualmente na árvore do sistema de ficheiros.

Para mudar para o diretório que acabou de criar, execute:

% cd unixstuff

Execute ls para ver o conteúdo do diretório (que deve estar vazio)

Crie um diretório backups dentro do diretório unixstuff

4.4 Os diretórios. e ..
Ainda no diretório unixstuff, execute :

% ls -a

No diretório unixstuff (e em todos os outros diretórios), existem sempre dois diretórios especiais
chamados (.) e (..)

O diretório atual (.)

Em UNIX, (.) Significa o diretório atual, de modo a digitação

% cd .

Nota: Há um espaço entre cd e o ponto

significa ficar onde está (neste caso, no diretório unixstuff).

Inicialmente isto pode não parecer muito útil, mas utilizando (.) como o nome do diretório atual vai
economizar muita digitação de comandos, como veremos mais tarde no tutorial.

Página 11 de 56
IPCA Administração de Redes e Sistemas

O diretório pai (..)

(..), O pai do diretório atual, execute:

% cd ..

irá levá-lo um diretório acima na hierarquia.

Nota: ao executar cd com nenhum argumento irá sempre retornar para o seu diretório home.

Resumindo:

· ~ (diretoria home do utilizador)


· . (diretoria corrente)
· .. (diretoria ascendente)
• / (diretoria raíz)

4.5 Pathnames

pwd (print working directory)

As Pathnames (ou caminhos absolutos) permitem trabalhar em qualquer parte do sistema sem ter que
mudar de diretório. Por exemplo, para descobrir o caminho absoluto do seu home-directory, digite cd
e de seguida, execute

% pwd

O caminho completo será algo parecido com isto-

/home/vmanso

o que significa que vmanso (o seu diretório pessoal) está no diretório home, que por sua vez está
localizada diretório raiz chamado "/".

Página 12 de 56
IPCA Administração de Redes e Sistemas

Figura 4 - Exemplo de árvore de diretórios


Exemplo de árvore de diretórios

4.6 Mais sobre diretórios base e caminhos absolutos

Execute cd para voltar ao diretório-home e digite:

% ls unixstuff

Para listar os conteúdos do diretório unixstuff.

Agora digite

% ls backups

Receberá uma mensagem como esta -

backups: No such file or directory

A razão é que o diretório backups não está no diretório de trabalho atual. Para usar um comando num
ficheiro (ou diretório) que não esteja no diretório de trabalho atual, podemos fazer cd para o diretório
correto ou especificar seu caminho completo (caminho absoluto). Para listar o conteúdo do diretório
de backups, deve digitar

Página 13 de 56
IPCA Administração de Redes e Sistemas

% ls unixstuff/backups

Que usa um caminho relativo ao diretório onde estamos atualmente

Ou então por exemplo fazendo a listagem, usando o caminho completo (deste a raiz até ao destino)
onde vmanso é o diretório home

% ls /home/vmanso/unixstuff/backups

~ (o diretório home)

Os diretórios home também podem ser referidos pelo caractere tilde ~. Este caracter pode ser usado
para especificar caminhos que começam no diretório home.

% ls ~/unixstuff

Irá listar o conteúdo do diretório unixstuff, não importa onde o comando é executado. Este comando
seria equivalente a ls /home/vmanso/unixstuff onde vmanso é o diretório home.

Experimente executar

% ls ~

Página 14 de 56
IPCA Administração de Redes e Sistemas

Figura 5 - Resumo

4.7 Copiar Ficheiros

cp (copy)

cp file1 file2 é o comando que no diretório de trabalho atual, faz uma cópia do file1 e chama à cópia
file2.

Vamos copiar um ficheiro armazenado num diretório de acesso aberto do sistema usando o comando
cp para copiar esse ficheiro para o diretório unixstuff.

Primeiro, faça cd para o seu diretório unixstuff.

% cd ~/unixstuff

De seguida digite,

% cp /etc/services .

Nota: Não se esqueça do ponto. no fim do comando, em UNIX/Linux, o ponto significa o diretório atual.

Página 15 de 56
IPCA Administração de Redes e Sistemas

O comando acima significa copiar o ficheiro services para o diretório atual, mantendo o nome igual.

Exercício

Crie um backup do ficheiro services copiando-o para um ficheiro chamado service.bak

4.8 Movendo ficheiros

mv (move)

mv file1 file2 move (ou renomeia) file1 para file2

Para mover um ficheiro, use o comando mv. O resultado do comando é um ficheiro em vez de dois.

Também pode ser usado para renomear um ficheiro, movendo o ficheiro para o mesmo diretório, mas
dando-lhe um nome diferente.

Agora vamos mover o ficheiro service.bak para o diretório de backup.

% mv service.bak ~/unixstuff/backups.

Faça uma listagem do diretório backups para ver se funcionou.

Exercício

a) Crie o diretório aulas no seu diretório pessoal


b) Crie o diretório trabalho no seu diretório pessoal
c) mova o diretório trabalhos para dentro de aulas
d) Apresente a listagem com o conteúdo do diretório aulas

4.9 Removendo ficheiros e diretórios

rm (remove), rmdir (remove directory)

Para remover um ficheiro, usa-se comando rm.

Dentro do diretório unixstuff :

Página 16 de 56
IPCA Administração de Redes e Sistemas

% cp service tempfile.txt

% ls

% rm tempfile.txt

% ls

Podemos usar o comando rmdir para remover um diretório (verifique se ele está vazio primeiro). Tente
remover o diretório de backups. Não será possível, pois o UNIX não permitirá que você remova um
diretório não vazio.

Crie um diretório chamado tempstuff usando mkdir e de seguida, remova-o usando o comando
rmdir.

4.10. Visualizando no ecrã, o conteúdo de um ficheiro.

clear (limpar o ecrã)

Antes de iniciar a próxima seção, podemos limpar a janela de terminal dos comandos anteriores para
que a saída dos próximos comandos possam ser melhor entendidos.

Na prompt, digite:

% clear

cat (concatenar)

O comando cat pode ser usado para exibir o conteúdo de um ficheiro no ecrã.

% cat /etc/services

Como a quantidade de linhas do ficheiro é maior do que o tamanho da janela, então as primeiras linhas
tornam-se ilegíveis.

Less (menos)

O comando less mostra o conteúdo de um ficheiro no ecrã, mas uma página ou linha de cada vez
(consoante tecle espaço ou enter)

Página 17 de 56
IPCA Administração de Redes e Sistemas

% less /etc/services

Pressione [tecla de espaço] se quiser ver outra página ou [enter] para ir vendo linha a linha, e digite [q]
se quiser sair do modo de leitura.

Head

O comando head imprime no ecrã, as primeiras dez linhas de um ficheiro.

Primeiro limpe o ecrã e digite

% head /etc/services

de seguida, digite

% head -5 /etc/services

Que diferença fez o -5 em relação ao comando principal?

tail

O comando tail imprime no ecrã as últimas dez linhas de um ficheiro.

% tail /etc/services

Exercício

a) Mostre o conteúdo do ficheiro services da diretoria /etc


b) Mostre o conteúdo do ficheiro services página a página
c) Mostre as primeiras 5 linhas do ficheiro services
d) Mostre as últimas 10 linhas do ficheiro passwd

4.10. Pesquisando o conteúdos dentro de um ficheiro

Página 18 de 56
IPCA Administração de Redes e Sistemas

Pesquisa simples usando o comando less

O comando less permite pesquisar uma palavra dentro de um ficheiro. Por exemplo, para procurar no
ficheiro services a palavra 'http', digite

% less /etc/services

Dentro de less, digite uma barra inclinada [/] seguida pela palavra para pesquisar

/http

Digite [n] para procurar a próxima ocorrência da palavra.

Grep

Grep é um dos muitos utilitários UNIX padrão. Procura palavras ou padrões especificados dentro de
ficheiros. Primeiro limpe o ecrã e digite:

% grep http /etc/services

O comando grep imprime cada linha que contenha a palavra http.

Tente executar

% grep Http /etc/services

O comando grep diferencia maiúsculas de minúsculas; distingue entre http e http.

Para ignorar distinções entre maiúsculas e minúsculas, usa-se opção -i, ou seja:

% grep -i http /etc/services

Para procurar uma frase ou um padrão, podemos colocar o texto entre aspas simples (o símbolo de
apóstrofo). Por exemplo:

% grep -i 'Remote Mail Checking' /etc/services

Algumas das outras opções de grep são:

-v exibe as linhas que não correspondem

Página 19 de 56
IPCA Administração de Redes e Sistemas

-n precede cada linha correspondente com o número da linha

-c imprime apenas a contagem total de linhas correspondentes

-w padrão terá de coincidir com palavras inteiras (e não apenas com uma parte)

-i ignora maiúsculas e minúsculas

Experimente alguns destes argumentos e veja os resultados diferentes. É possível usar mais do que um
argumento de cada vez.

wc (word count)

O comando wc, abreviação de contagem de palavras, serve fazer uma contagem de palavras ficheiros

% wc -w /etc/services

Para descobrir quantas linhas o ficheiro tem, digite

% wc -l /etc/services

Resumo

Página 20 de 56
IPCA Administração de Redes e Sistemas

4.11 Metacaracteres
Com a utilização de metacaracteres é possível selecionar vários ficheiros cujo nome seja composto por
determinados padrões de caracteres. Poderão ser utilizados os seguintes metacaracteres:

• ? (qualquer caracter na posição indicada)

• * (qualquer caracter em qualquer posição)

• [abc…] (qualquer dos carateres enumerados)

• [a-e] (qualquer dos carateres na gama indicada)

Para mostrar os ficheiros e diretorias da raiz iniciados por s, pode utilizar-se o seguinte comando

% ls -la /s*

Exercício

a) Mostre todos os ficheiros e diretorias de /etc terminados em .conf

4.12 Pesquisa de ficheiros e diretorias

Para procurar ficheiros e diretorias utiliza-se o comando find ou locate

find

find [<caminho>] [<expressão>]

caminho: indica a diretoria de início da pesquisa (por defeito é a diretoria corrente)

expressão: indica o que se pretende procurar, podendo ser

-name <expressão> mostra ficheiros e diretorias cujo nome satisfaz padrão

-iname <expressão> semelhante a –name mas case insensitive

-type <tipo> mostra os do tipo indicado: f ficheiros, d diretorias, l links

-ctime [+|-]n ficheiros modificados há mais (ou menos) de n dias

-anewer ficheiro mostra ficheiros mais recentes, que ficheiro

Página 21 de 56
IPCA Administração de Redes e Sistemas

% find / -name texto.txt

Procura a partir da raíz ficheiros que possam ter esse nome

% find -iname *txt

Procura a partir da diretoria corrente ficheiros com *txt no nome (insensitive)

% find –anewer ficheiro

Procura a partir da diretoria corrente ficheiros mais recentes que ficheiro

locate

O comando locate realiza pesquisas rápidas de ficheiros, mas estas pesquisas não são feitas em tempo
real porque a procura é feita através de uma base de dados criada com a seguinte sintaxe:

% updatedb

de forma à base de dados ser atualizada com regularidade, é uma boa pratica acrescentar um cron ao
sistema, com esta tarefa.

A utilização do locate é simples:

$ locate teste.txt

de forma a ignorar caracteres em maiúsculas e minúsculas, utiliza-se a opção "-i" conforme demonstra
a sintaxe:

% locate -i ficheiro

Também é possível usar o asterisco nas pesquisas

% locate *.txt

Página 22 de 56
IPCA Administração de Redes e Sistemas

4.13 Ligações a ficheiros e diretorias


O comando ln permite criar ligações (atalhos) a ficheiros ou diretorias, existindo dois tipos de ligações
no Unix/Linux:

• ligações físicas: ligações entre ficheiros que se encontrem na mesma partição de dados

ln ficheiro nomeAtalhoFicheiro

(nomeAtalhoFicheiro passa a ser uma ligação para ficheiro, que deverá estar)

• ligações simbólicas: ligações a ficheiros ou diretorias que poderão não se encontrar na mesma
partição de dados

ln -s ficheiro nomeAtalhoFicheiro

(nomeAtalhoFicheiro passa a ser uma ligação para ficheiro)

ln -s diretoria nomeLigacao

(nomeLigacao passa a ser uma ligação para diretoria)

As ligações (físicas ou simbólicas) criadas permitem que se possa ter acesso aos ficheiros e às diretorias
originais através da ligação. Caso esta seja removida os ficheiros e diretorias originais continuarão a
existir.

Exercício

a) Crie na sua diretoria home uma ligação simbólica services_link.txt para o ficheiro
/etc/services
b) Apresente a listagem com o conteúdo da sua diretoria home

Página 23 de 56
IPCA Administração de Redes e Sistemas

5 Redirecionamento
A maioria dos processos iniciados por comandos UNIX gravam na saída padrão (ou seja, escrevem no
ecrã), e muitos usam a entrada de dados padrão (ou seja, a leem a partir do teclado). Há também o
erro padrão (standart error), onde os processos escrevem as suas mensagens de erro, por padrão, ou
seja, no ecrã do terminal.

Já vimos um uso do comando cat para escrever o conteúdo de um ficheiro no ecrã.

Agora digite cat sem especificar um ficheiro para ler

% cat

Em seguida, digite algumas palavras no teclado e pressione a tecla [Retornar].

Por fim, mantenha premida a tecla [Ctrl] e prima [d] (escrita como ^ D para abreviar) para terminar a
entrada.

O que aconteceu?

Se executar o comando cat sem especificar um ficheiro para ler, ele lê a entrada padrão (o teclado) e
ao receber o 'fim do ficheiro' (^ D), copia-o para a saída padrão (o ecrã).

Em Unix/Linux, podemos redirecionar tanto a entrada como a saída dos comandos.

5.1 Redirecionando a Saída

Usamos o símbolo > para redirecionar a saída de um comando. Por exemplo, para criar um ficheiro
chamado list1 contendo uma lista de frutas, digite

% cat > list1

De seguida, digite os nomes de alguns frutos. Pressione [Retorno] após cada um.

O que acontece é o comando cat lê a entrada padrão (o teclado) e redireciona a saída, (que
normalmente vai para o ecrã), num ficheiro chamado list1

Para ler o conteúdo do ficheiro, digite

% cat list1

Página 24 de 56
IPCA Administração de Redes e Sistemas

Exercício

Usando o método acima, crie outro ficheiro chamado list2 contendo os seguintes frutos: laranja,
ameixa, manga, toranja. Leia o conteúdo da list2

5.1.1. Adicionando a um ficheiro

Os caracteres >> acrescentam a saída padrão a um ficheiro. Então, para adicionar mais itens à lista de
list1, digite

% cat >> list1

de seguida, digite os nomes de mais frutas

pêssego

uva

Laranja

^ D (Ctrl+D para parar)

Para ler o conteúdo do ficheiro, digite

% cat list1

Vamos usar o comando cat para juntar (concatenar) list1 e list2 num novo ficheiro chamado biglist.
Digitar

% cat list1 list2 > biglist

Os conteúdos de list1 e list2 são lidos e suas saídas de texto são enviadas para o ficheiro biglist

Para ler o conteúdo do novo ficheiro, digite

% cat biglist

5.2 Redirecionamento da entrada

Usamos o símbolo < para redirecionar a entrada de um comando.

Página 25 de 56
IPCA Administração de Redes e Sistemas

O comando que classifica em ordem alfabética ou numérica e ordena uma lista é o sort. Digite

% sort

De seguida, digite os nomes de alguns animais. Pressione [Retorno] após cada um.

gato

zebra

cão

macaco

pássaro

^ D (ctrl+d para parar)

Visualize a saída com o comando cat

Usando < podemos redirecionar a entrada que vem de um ficheiro em vez do teclado. Por exemplo,
para classificar a lista de frutas, digite

% sort < biglist

E a lista ordenada será exibida no ecrã.

Para enviar a lista ordenada para um ficheiro, digite,

% sort < biglist > listaordenada

Use cat para ler o conteúdo do ficheiro lista ordenada

Exercício

a) Envie a data do sistema (date) para o ficheiro data.txt na diretoria aulas


b) Acrescente ao ficheiro data.txt o calendário do sistema.
c) Apresente a listagem de todos os ficheiros do diretório /etc iniciados por c, acrescentando
no ficheiro data.txt a listagem obtida.

Página 26 de 56
IPCA Administração de Redes e Sistemas

5.3 Pipes
O comando para visualizar quem está ligado ao sistema é o who

% who

Um método para obter uma lista ordenada de nomes é executando

% who > names.txt

% sort < names.txt

Como esta metodologia é um pouco lenta e envolve a utilização de um ficheiro auxiliar, poderíamos
utilizar os pipes para redireccionamento de outputs ou inputs.

Por exemplo, executar

% who | sort

Vai dar o mesmo resultado como acima, mas mais rápido e mais limpo.

Para saber quantos utilizadores estão conectados, execute

% who | wc -l

Alguns exemplos:

% ls –laR | more

(redireciona a listagem de ficheiros para comando more, de forma a apresenta-la página a


página)

% find / -iname *log | more

(redireciona o resultado da procura de ficheiros e diretorias para comando more, de forma a


apresenta-la página a página)

% ls –laR | wc -l

(redireciona a listagem de ficheiros para comando wc, que contará o numero de linhas)

% ps aux | wc -l

(redireciona a listagem de processos em execução para comando wc, que contará o numero de
linhas)

Página 27 de 56
IPCA Administração de Redes e Sistemas

5.4 Expressões Regulares


Em Linux (e em muitos outros ambientes), as expressões regulares (designadas por “regex” na
literatura anglo-saxónica) são uma forma poderosa de definir padrões.

O grep é um dos comandos com suporte para regex, nomeadamente na pesquisa de padrões no início
ou no final de uma expressão. Para tal na definição do padrão poderá utilizar as seguintes âncoras:

^ representa o início de uma linha

$ representa o final de uma linha

[] delimita um grupo de caracteres

[^] delimita um grupo de caracteres excluídos

. qualquer caracter

<palavra> palavra para encontrar

- utilizado para indicar intervalos de caracteres em listas ou grupos

* zero ou mais ocorrências do caracter prévio

Expressões regulares com funcionalidades extendidas. Caso use o grep deverá faze-lo com a opção
-E ou em alternativa usar o comando egrep.

{n} – n ocorrências do caracter prévio

{n,m} – n a m ocorrências do caracter prévio

{m, } – m ou mais ocorrências do caracter prévio.

+ – uma ou mais ocorrências do caracter prévio


|- opção OU, podemos especificar um ou outro character presentes no padrão.
? – zero ou nenhumas ocorrências do caracter prévio
()- grupo de caracteres

Página 28 de 56
IPCA Administração de Redes e Sistemas

Figura 6 - Alguns exemplos de expressões regulares

Experimente as seguintes manipulações de de saídas de comandos recorrendo a expressões regulares

% ls -l /etc | grep ^-

% ls -l /etc | grep ^d

Exercício:

a) Procure no ficheiro /etc/network/interfaces as linhas comentadas


b) Encontre todos os ficheiros em /etc cujo nome termine por sh
c) Procure linhas vazias no ficheiro /etc/network/interfaces
d) Aproveite o output anterior e conjugue-o com o comando apropriado para contar esse
numero de linhas vazias
e) Procure ficheiros no diretório /etc cujo nome contenha apenas um caracter entre os
carateres 't' e 't'
f) procure no ficheiro /etc/services palavras que contenham o caracter 'r' repetido
consecutivamente duas vezes. Dica: utilize a opção -E no comando grep
g) procure no diretório /etc ficheiros cujo nome contenha uma ou mais ocorrências do
caracter 'o'
h) procure no diretório /etc ficheiros cujo nome contenha os caracteres 'a' ou 'b'
i) procure no diretório /etc ficheiros cujo nome contenha a sequencia de caracteres 'up'

Página 29 de 56
IPCA Administração de Redes e Sistemas

5.5 Manipulação de informação


Poderão ser extraídas “colunas” de um ficheiro de texto, utilizando-se o comando

cut [opcao] ficheiro

Como opcao pode utilizar-se

-f especifica os campos a devolver

-d especifica o delimitador de campo (por omissão é o tab)

-c carateres a devolver

A utilização do comando pode ser analisada nos seguintes exemplos:

% cut -d':' -f1 /etc/passwd

(mostra todos os logins registados na máquina)

% cut -d':' -f1,6 /etc/passwd | grep ^s

(mostra todos os logins iniciados por s registados na máquina e a respetiva diretoria home)

Exercício:

a) Extrai-a do ficheiro /etc/passwd o username e home directory de utilizadores que possam


fazer login no sistema.

5.6 Troca e eliminação de caracteres


O comando tr [opcao] setCaractOrig [setCaractDest] permite efetuar a conversão
de caracteres do conjunto setCaractOrig para o conjunto setCaractDest.

Como opcao pode utilizar-se

-d apaga carateres

-s substitui todas as sequências de caracteres consecutivos (definidos em setCaractOrig) por


uma única ocorrência do caractere

Este comando é muito utilizado em pipes sobretudo na preparação da informação a extrair com o
comando cut.

Exemplos da utilização do comando

No diretório /etc experimente os dois comandos e compare as respetivas saídas:

Página 30 de 56
IPCA Administração de Redes e Sistemas

% ls -l

% ls –la | tr –s ‘ ‘

Experimente os dois comandos e compare as respetivas saídas:

% ps aux

% ps aux | tr -s ' ' '#'

Por omissão o tr manipula o stdin e o stdout, pelo que no caso de se pretender executar a operação
em ficheiros será necessário utilizar o redireccionamento de entrada/saída.

% tr ‘a’ ‘A’ < input.txt > output.txt

# Converte em ‘A’ todos os caracteres ‘a’ existentes no ficheiro “input.txt”, e guarda o resultado no
ficheiro “output.txt”

% tr [a-z] [A-Z] < input.txt > output.txt

# Converte em letras maiúsculas todas as letras existentes no ficheiro “input.txt”, e guarda o

resultado no ficheiro “output.txt”

5.7 Cópia da saída de comandos


O comando tee [opcao] ficheiro obtém os dados do stdin e copia-os para o stdout e para um
ou mais ficheiros. Esta característica permite o armazenamento em ficheiros de alguns estados
intermédios de processamento dos pipes.

A opcao -a permite que se vá acrescentado informação ao ficheiro, sem eliminar a previamente


armazenada.

Exemplos de utilização do comando

% ls -l *.conf | wc -l | tee count.txt

% ls –la |cut –f1 –d’ ‘|tee output.txt|grep d| tee -a output.txt| wc


–l

Experimente

% echo 'foo' | tee foo.txt

Página 31 de 56
IPCA Administração de Redes e Sistemas

% cat foo.txt

% echo 'bar' | tee -a foo.txt

% cat foo.txt

No exemplo abaixo, analisa-se o trafego HTTP2 de acesso a um servidor nginx. Como o comando
tail está a ser usado em conjunto com o tee, pode-se analisar em modo live e ao mesmo tempo
gravar a informação num ficheiro à parte.

% tail -f /var/log/nginx/access.log | grep --line-buffered "HTTP/2.0"

Página 32 de 56
IPCA Administração de Redes e Sistemas

6 Obtendo Ajuda

6.1 Manuais on-line


Existem manuais on-line que fornecem informações sobre a maioria dos comandos. As páginas de
manual informam quais opções e argumentos que um determinado comando pode utilizar, os manuais
informam também de que forma cada opção modifica o comportamento do comando. Digite o
comando man para ler a página de manual de um determinado comando.

Por exemplo, para saber mais sobre o comando wc (word count), digite

% man wc

Alternativamente

% whatis wc

Fornece uma descrição do comando, mas omite qualquer informação sobre opções etc.

6.2 Apropos
Quando não tiver a certeza do nome exato de um comando,

% apropos palavra-chave

Irá dar-lhe os comandos com palavra-chave no cabeçalho da página manual. Por exemplo, tente digitar

% apropos copy

6.3 Comandos com opção --help

A maioria dos comandos possui a opção --help para apresentar ao utilizador a descrição do comando,
assim como a sua sintaxe e opções disponíveis.

Execute o comando rmdir com a opção –help

Página 33 de 56
IPCA Administração de Redes e Sistemas

7. Sistema de Ficheiros em Linux


À semelhança de outros sistemas operativos, o Linux está organizado numa hierarquia em árvore com
diretorias que armazenam ficheiros e subdiretorias. Ao contrário do Windows, que possui um sistema
de ficheiros em árvore para cada dispositivo de armazenamento, os sistemas baseados no Unix/Linux
possuem um único sistema de ficheiros em árvore.

Figura 7 - Estrutura de diretórios

/ – Root

• Todos os ficheiros e diretórios começam a partir do diretório raiz.


• Apenas o utilizador root tem privilégio para escrever neste diretório.
• / root é o diretório home do utilizador root

Página 34 de 56
IPCA Administração de Redes e Sistemas

/bin – binários de users

• Contém ficheiros executáveis binários.


• Comandos comuns do Linux para usar em single-user.
• Os comandos localizados neste diretório são usados por todos os utilizadores do sistema.
• Por exemplo: ps, ls, ping, grep, cp.

/sbin – Sistema Binário

• Assim como /bin, /sbin também contém ficheiros executáveis binários.


• Mas, os comandos linux localizado neste diretório são usadas tipicamente pelo administrator
do sistema, para efeitos de manutenção do sistema.
• Por exemplo: iptables, reboot, fdisk ifconfig, swapon

/etc – Ficheiros de Configuração

• Contém ficheiros de configuração usados por diversos serviços e programas.


• Contém scripts shell usados para iniciar/parar programas individuais.
• Por exemplo:/etc/resolv.conf, /etc/logrotate.conf

/dev – Ficheiros de dispositivos

• Contém os ficheiros de dispositivos do sistema.


• Inclui dispositivos terminais, usb, sata, ide ou qualquer outro dispositivo conectado ao sistema.
• Por exemplo:/dev/tty1, /dev/usbmon0

/proc – Informação de Processo

• Contém informações sobre processos do sistema.


• É um pseudo sistema de ficheiros que contém informações sobre a execução de processos.
Por exemplo: /proc/{pid} (diretório contém informações sobre o processo com o pid).
• É um sistema de ficheiros virtual com informações de texto sobre os recursos do sistema. Por
exemplo: /proc/meminfo

/var – Ficheiros Variáveis

• Contem ficheiros passiveis de crescer em tamanho


• Inclui – ficheiros de sistema de log (/var/log); pacotes e ficheiros de banco de dados (/var/lib);
e-mails (/var/mail); filas de impressão (/var/spool); ficheiros de bloqueio (/var/lock); ficheiros
temporários necessários entre as reinicializações (/var/tmp);

/tmp – Ficheiros temporários

• Diretório que contém ficheiros temporários criados pelo sistema e utilizadores do sistema.
• Os ficheiros deste diretório serão apagados quando o sistema reiniciar.

Página 35 de 56
IPCA Administração de Redes e Sistemas

/usr – Programas de Utilizadores

• Contém binários, bibliotecas, documentação e código-fonte para os programas de segundo


nível.
• /usr/bin contém ficheiros binários para programas do utilizador. Caso não encontre um
executável binário em /bin, procure em /usr/bin.
• /usr/sbin contém ficheiros binários para administradores de sistema. Caso não executável
binário em /sbin, procure em /usr/sbin.
• /usr/lib contém bibliotecas para /usr/bin e /usr/sbin
• /usr/local contém programas de utilizadores instalados a partir da fonte. Por exemplo, quando
o apache é instalado a partir da fonte, fica localizado em /usr/local/apache2

/home – Diretório pessoal

• Diretórios para os utilizadores do sistema armazenarem os seus ficheiros pessoais.


• Por exemplo: /home/vmanso, /home/lsilva

/boot – Ficheiros de inicialização

• Contém ficheiros relacionados com boot-loader.


• Initrd do kernel, os ficheiros vmlinux, grub estão localizados em /boot
• Por exemplo: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic

/lib – Bibliotecas do sistema

• Contém ficheiros de bibliotecas que suportam binários localizados em /bin e /sbin


• Nomes de ficheiros de bibliotecas são ou * ld ou lib *. so .*
• Por exemplo: ld-2.11.1.so, libncurses.so.5.7

/opt – Aplicações opcionais

• opt significa opcional.


• Contém aplicações adicionais de fornecedores individuais.
• aplicações add-on devem ser instaladas sob /opt/ ou /opt/sub-diretório.

/mnt – Diretório de montagem

• Diretório de montagem temporária onde o administrador do sistema pode montar sistemas


de ficheiros.

/media – Dispositivos removíveis

• Diretório de montagem temporária para dispositivos removíveis.


• Par exemplo, /media/cdrom para o CD-ROM; /media/floppy para drives de disquete;
/media/cdrecorder para gravador de CD

Página 36 de 56
IPCA Administração de Redes e Sistemas

/srv – Serviço de Dados

• srv significa serviço.


• Contém dados do servidor de serviços específicos relacionados.
• Por exemplo, /srv/cvs CVS contém dados relacionados.

Página 37 de 56
IPCA Administração de Redes e Sistemas

Página 38 de 56
IPCA Administração de Redes e Sistemas

Figura 8 - Exemplo de output de ls -lsa

A opção -l do comando ls apresenta em 7 colunas a seguinte informação referente a cada ficheiro ou


diretoria:

• Permissões de utilizador/grupo/outros para o ficheiro/diretoria;

• Número de subdiretorias incluídas na diretoria, ou número de referências para o ficheiro;

• Nome do utilizador que é dono do ficheiro/diretoria;

• Nome do grupo que é dono do ficheiro/diretoria;

• Tamanho (em bytes) do ficheiro, ou metadados da diretoria;

• Data/hora da última modificação no ficheiro/diretoria;

• Nome do ficheiro/diretoria/ligações.

Na listagem da figura anterior identifique

a) os ficheiros ou diretorias não escondidos;

b) as linhas que correspondem a diretorias;

c) os donos e grupos dos ficheiros listados

Página 39 de 56
IPCA Administração de Redes e Sistemas

7.1 permissões de acesso a um ficheiro


Vejamos a explicação das permissões de acesso a um ficheiro em Linux (obtido com o comando ls -la)

-rwxr-xr-- 1 vmanso user 8192 nov 4 16:00 teste

-rwxr-xr--

Estas são as permissões de acesso ao ficheiro teste. Um conjunto de 10 letras que especificam o tipo
do ficheiro, permissão do dono do ficheiro, grupo do ficheiro e outros utilizadores.

-rwxr-xr--

A primeira letra (do conjunto das 10 letras) determina o tipo do ficheiro. Se a letra for um d é um
diretório, podendo ser acedido com comando cd. Caso seja um l é um link simbólico para algum ficheiro
ou diretório no sistema

-rwxr-xr--

Estas 3 letras (da segunda à quarta do conjunto das 10 letras) são as permissões de acesso do dono do
ficheiro teste. O dono (neste caso vmanso) tem a permissão para ler (r), gravar (w) e executar (x) o
ficheiro teste.

-rwxr-xr--

Estas 3 letras (da quinta à sétima do conjunto de 10) são as permissões de acesso dos utilizadores que
pertencem ao grupo user do ficheiro teste. Os utilizadores que pertencem ao grupo user tem apenas
permissão para ler (r) e executar (x) o ficheiro teste não podendo modifica-lo ou apaga-lo.

-rwxr-xr--

Estas 3 letras (da oitava à décima) são as permissões de acesso para utilizadores que não são donos do
ficheiro teste e que não pertencem ao grupo user. Neste caso, estas pessoas apenas terão a permissão
para ver o conteúdo do ficheiro teste.

vmanso

Nome do dono do ficheiro teste.

user

Nome do grupo que o ficheiro teste pertence.

teste

Nome do ficheiro.

Página 49 de 56
IPCA Administração de Redes e Sistemas

7.1 permissões de acesso a um diretório

drwxr-x--- 2 vmanso user 1024 nov 4 17:55 exemplo

drwxr-x---

Permissões de acesso ao diretório exemplo. É um conjunto de 10 letras que especificam o tipo de


ficheiro, permissão do dono do diretório, grupo que o diretório pertence e permissão de acesso a
outros utilizadores. Veja as explicações abaixo:

drwxr-x---

A primeira letra (do conjunto das 10) determina o tipo do ficheiro. Neste caso é um diretório porque
tem a letra d.

drwxr-x---

Estas 3 letras (da segunda a quarta) são as permissões de acesso do dono do diretório exemplo. O dono
do diretório (neste caso vmanso) tem a permissão para listar ficheiros do diretório (r), gravar ficheiros
no diretório (w) e entrar no diretório (x).

drwxr-x---

Estas 3 letras (da quinta a sétima) são as permissões de acesso dos utilizadores que pertencem ao
grupo user. Os utilizadores que pertencem ao grupo user tem permissão apenas para listar ficheiros do
diretório (r) e entrar no diretório (x) exemplo.

drwxr-x---

Estes 3 símbolos (do oitavo ao décimo) são as permissões de acesso para utilizadores que não são
donos do diretório exemplo e que não pertencem ao grupo user. Com as permissões acima, nenhum
utilizador que se encaixe nas condições de dono e grupo do diretório tem a permissão para aceder.

vmanso

Nome do dono do diretório exemplo.

user

Nome do grupo que diretório exemplo pertence.

exemplo

Nome do diretório.

Página 41 de 56
IPCA Administração de Redes e Sistemas

Algumas considerações a ter:

• O utilizador root não tem nenhuma restrição de acesso ao sistema.

• Se um utilizador tem permissões de gravação no diretório e tentar apagar um ficheiro que do


qual não tem permissão de gravação, o sistema perguntará se confirma a exclusão do ficheiro
apesar do modo leitura. Caso o utilizador tenha permissões de gravação no ficheiro, o ficheiro
será apagado por padrão sem mostrar nenhuma mensagem de erro (a não ser que seja
especificada a opção -i com o comando rm).

• Por outro lado, mesmo que o utilizador tenha permissões de gravação num ficheiro mas não
tenha permissões de gravação no diretório, então a eliminação do ficheiro será recusada.

Isto mostra que a permissão de acesso do diretório tem prevalência sobre as permissões dos ficheiros
e subdiretórios que ele contém. Este ponto é muitas vezes ignorado por muitas pessoas e expõem o
sistema a riscos de segurança. Imagine o um utilizador que não tenha permissão de gravação num
ficheiro mas que a tenha no diretório onde está esse ficheiro.

7.3 Permissões de Acesso Especiais


Além das três permissões básicas (rwx), existem permissões de acesso especiais (stX) que afetam os
ficheiros e diretórios:

s - Quando é usado na permissão de acesso do Dono, ajusta a identificação efetiva do utilizador do


processo durante a execução de um programa, também chamado de bit setuid. Não tem efeito em
diretórios.

Quando s é usado na permissão de acesso do Grupo, ajusta a identificação efetiva do grupo do processo
durante a execução de um programa, chamado de bit setgid. É identificado pela letra s no lugar da
permissão de execução do grupo do ficheiro/diretório.

Em diretórios, força que os ficheiros criados dentro do diretório pertençam ao mesmo grupo do
diretório, em vez de pertencer ao grupo primário que o utilizador pertence.

Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo ficheiro/diretório. A permissão
de acesso especial s poderá apenas aparecer no campo Dono e Grupo.

S - Idêntico a "s". Significa que não existe a permissão "x" (execução ou entrar no diretório) naquela
posição. Um exemplo é o chmod 2760 num diretório.

t - Também chamado de sticky bit. Em diretórios, impede que outros utilizadores removam ficheiros
dos quais não são donos. Com este bit, coloca-se o diretório em modo append-only. Um exemplo de
diretório que se encaixa perfeitamente nesta condição é o /tmp, todos os utilizadores devem ter acesso
para que seus programas possam criar os ficheiros temporários lá, mas nenhum pode apagar

Página 42 de 56
IPCA Administração de Redes e Sistemas

ficheiros dos outros. A permissão especial t, pode ser especificada apenas no campo outros utilizadores
das permissões de acesso.

7.4 Alteração de propriedades de ficheiros e diretorias


As permissões de acesso a ficheiros e diretorias podem ser alteradas pelo proprietário, ou pelo
superuser (root), através do comando chmod modo nomeFicheiro

As permissões para cada tipo de utilizador podem ser indicadas no modo das seguintes formas:

numérica: para cada tipo de utilizador é indicado o valor da soma das suas permissões,

considerando o valor 4 para a leitura (r), 2 para a escrita (w) e 1 para a execução (x).

Os valores mais utilizados são: 7 (rwx), 6 (rw-), 5 (r-x), 4 (r--), and 0 (---)

Exemplos:

% touch ficheiro

% chmod 754 ficheiro

% ls -l

Altera as permissões do ficheiro para rwxr-x r—

% chmod 701 ficheiro

% ls -l

Altera as permissões do ficheiro para rwx ----- x

simbólica: constituída pelas seguintes três partes

- Tipo de utilizador afetado: u (proprietário), g (grupo), o (outros), a (todos)

- Operação a executar: + (adiciona), - (retira), = (atribui)

- Permissão a atribuir: r (leitura), w (escrita), x (execução)

Exemplos:

% chmod u+x ficheiro

Adiciona (+) ao proprietário (u) a permissão para executar (x) o ficheiro

Página 43 de 56
IPCA Administração de Redes e Sistemas

% chmod g+rx ficheiro

Adiciona (+) ao grupo (g) as permissões para ler (r) e executar (x) o ficheiro

% chmod o+rx ficheiro

Adiciona (+) a outros (o) as permissões para ler (r) e executar (x) o ficheiro

% chmod a-x ficheiro

Retira (-) a todos (a) s permissão para executar (x) o ficheiro

Para alterar o grupo de um ficheiro ou diretoria, o comando é:

% chgrp grupo ficheiro

chgrp (change group)

Caso se pretenda alterar o proprietário de um ficheiro ou diretoria, o comando é:

% chown nomeProp ficheiro

chown (change owner)

Exercício

a) Altere as permissões da diretoria trabalhos para rwx r-x --x


b) Dê permissões aos outros para leitura da diretoria trabalhos
c) Apresente a listagem com o conteúdo da diretoria aulas

Página 44 de 56
IPCA Administração de Redes e Sistemas

8. Visualização e manipulação de processos

8.1 Processos e Jobs


Um processo é um programa de execução identificado por um único PID (identificador de processo).
Para ver informações sobre processos, com seu PID e status associados, digite

% ps

Um processo pode estar em primeiro plano, em segundo plano ou suspenso. Em geral, a shell não
retorna a prompt UNIX até que o processo atual tenha terminado a sua execução.

Alguns processos levam muito tempo de execução, e nestes casos o backgrounding a um processo
longo pode ser uma solução. Tem como efeito o retorno imediato da prompt UNIX imediatamente
após a execução do processo, a vantagem é que outras tarefas podem ser executadas enquanto o
processo original continua sendo executado.

Executando processos em segundo plano

Para criar um processo em segundo plano, digite um & no final da linha de comando. Por exemplo, o
comando sleep aguarda um dado número de segundos antes de continuar. Digite

% sleep 10

Irá esperar 10 segundos antes de retornar a prompt de comando%. Até que a prompt de comando seja
retornada, o utilizador não pode fazer nada exceto esperar.

Para executar o modo de suspensão em segundo plano, digite

% sleep 10 &

[1] 6259

O & executa o trabalho em segundo plano e retorna imediatamente a prompt, permitindo que sejam
executados outros programas enquanto espera que um termine.

No exemplo acima, a primeira linha no exemplo acima é digitada pelo utilizador; a segunda linha indica
o número do trabalho e PID, é retornada pela máquina. O utilizador é notificado com um número de

Página 45 de 56
IPCA Administração de Redes e Sistemas

trabalho (numerado de 1) entre parênteses rectos, juntamente com um PID e é notificado quando um
processo em segundo plano é concluído.

Backgrounding de um processo de primeiro plano

Na prompt, digite

% sleep 1000

É possível suspender o processo em execução de primeiro plano digitando ^Z, ou seja, mantendo
pressionada a tecla [Ctrl] e digite [z]. Para colocá-lo em segundo plano, digite

% bg

8.2 Listagem suspensa e processos em segundo plano


Quando um processo é executado em segundo plano ou suspenso, ele é inserido numa lista
juntamente com um número de trabalho. Para examinar essa lista, digite

% jobs

Um exemplo de uma lista de

[1] Suspended sleep 1000

[2] Running chrome

[3] Running matlab

Para reiniciar (colocar em primeiro plano) um processo suspenso, digite

% fg %númeroDeTrabalho

Por exemplo, para reiniciar o sleep 1000, digite

% fg %1

Digitar fg sem número de trabalho coloca o último processo suspenso em primeiro plano.

Página 46 de 56
IPCA Administração de Redes e Sistemas

8.3 Matando um processo


Kill (terminar um processo)

Por vezes é necessário matar um processo (por exemplo, quando um programa está loop infinito)

Para matar um processo ou job em execução em primeiro plano, digite ^ C (Control+C). Por exemplo,
executar

% sleep 100

^ C

Para matar um processo suspenso ou em segundo plano, digite

% kill %númeroDeTrabalho

Por exemplo, executar

% sleep 100 &

% jobs

Imagine o numero de trabalho (job) de sleep como sendo o numero 4, digitaria:

% kill %4

Para verificar se funcionou, examine a lista de tarefas novamente para ver se o processo foi removido.

ps (status do processo)

Alternativamente, os processos podem ser mortos encontrando seus números de processo (PIDs) e
usando kill PID_number

% sleep 1000 &

% ps

Página 47 de 56
IPCA Administração de Redes e Sistemas

PID TT S TIME COMANDO

20077 pts / 5 S 0:05 sleep 1000

21563 pts / 5 T 0:00 netscape

21873 pts / 5 S 0:25 nedit

Para matar o processo sleep 1000, digite

% kill 20077

Digite ps novamente para ver se ele foi removido da lista.

Se um processo se recusar a ser morto, utiliza a opção -9, ou seja, digite

% kill -9 20077

Nota: Não é possível destruir os processos de outros utilizadores

Também é possível matar um processo usando o seu nome, se existir mais do que um processo com
esse nome, então todos serão “mortos”, o comando a usar é o killall

% killall -9 firefox

Exercício

Execute e verifique o funcionamento dos seguintes comandos:

% sleep 90

% CTRL + Z

% jobs

% bg

% jobs

% fg

% CTRL + C

% jobs

Página 48 de 56
IPCA Administração de Redes e Sistemas

Figura 9 - Resumo

Página 49 de 56
IPCA Administração de Redes e Sistemas

10 Operações com Ficheiros


10.1. Identificador unívoco do conteúdo de ficheiros

Uma função de síntese é um método criptográfico que, quando aplicado sobre uma informação,
independente do tamanho que ela tenha, gera um resultado único e de tamanho fixo, chamado hash.

Um hash pode ser utilizado nas seguintes situações:

• Verificar a integridade de um ficheiro;


• Verificar a integridade de um ficheiro obtido da Internet (disponibilizam o hash
correspondente, para que se possa verificar se o ficheiro foi corretamente transmitido e
gravado);
• Gerar assinaturas digitais.

Para verificar a integridade de um ficheiro, calcula-se o hash e quando se julgar necessário, pode-se
gerar novamente este valor.

Se os dois hashes forem iguais então pode-se concluir que o ficheiro não foi alterado. Caso contrário,
existe um forte indício que o ficheiro esteja corrompido ou que tenha sido modificado.

O identificador unívoco (normalmente em formato hexadecimal) pode ser denominado de “message


digest”. Este identificador é criado com algoritmos hash de criptografia, tais como o MD5(Message
Digest) e o SHA (Secure Hash Algorithm).

Em Linux podemos usar os seguintes utilitários para o cálculo de identificadores unívocos:

• md5sum ficheiro
• sha1sum ficheiro (ou sha224sum, sha256sum)

Exemplos de cálculo do identificador único de ficheiros

% md5sum /etc/services

Calcula o md5sum do ficheiro services

% sha1sum /etc/services

Calcula o sha1sum do ficheiro services

Página 50 de 56
IPCA Administração de Redes e Sistemas

10.2. Cópias de Segurança (Backups)


Cópias de segurança, e respetivos restauros, podem ser realizadas recorrendo ao comando tar
[opcoes] copiaDeSeguranca diretórioOriginal

Alguns argumentos mais usados do comando tar:

• c –criar um novo ficheiro


• p – preservar as permissões
• z – comprimir o ficheiro usando o compressor gzip
• f – indicar qual o ficheiro
• v – modo “verbose”, mostra no ecrã tudo o que está a acontecer
• x – extrair
• j – bzip2
• z – gzip

Alguns exemplos

% tar cvf ./home.tar /home

O conteúdo da diretoria home é salvaguardado no ficheiro home.tar

% tar xvf /home.tar

O conteúdo da diretoria home é restaurado a partir do ficheiro home.tar

O comando tar pode ser usado também para efetuar uma compressão ao ficheiro de backup.

% tar czfP home.tgz /home

Criar ficheiro home.tgz (zip)

% tar -cjf home.tbz /home

Criar ficheiro home.tgz (bzip2)

Como descompactar?

% tar -xf home.tar

Extrair ficheiro home.tar

Página 51 de 56
IPCA Administração de Redes e Sistemas

% tar -xzf home.tgz

Extrair ficheiro home.tgz (zip)

% tar -xjf pplware.tgz

Extrair ficheiro home.tgz (bzip2)

10.3. Compressão de ficheiros


O comando gzip suporta a compressão e a descompressão de ficheiros, podendo ser utilizado da
seguinte forma:

% gzip -9 home.tar

Comprime ao máximo o ficheiro mail.tar, criando o ficheiro home.tar.gz

% gzip -d home.tar.gz

Descomprime o ficheiro home.tar.gz

10.4. Divisão de ficheiros

É possível usar o comando split –linhas ficheiro ou split –bytes ficheiro para
dividir um ficheiro em ficheiros mais pequenos.

Os ficheiros criados têm o mesmo nome do original onde são adicionados os caracteres .aa, .ab, ..., .az,
.ba,...

Exemplos de utilização do comando

% split teste.txt

Divide o ficheiro final.txt em ficheiros com 1000 linhas com os nomes

teste.txt.aa, teste.txt.ab,...

% split -250 teste2.txt

Divide o ficheiro teste2.txt em ficheiros com 250 linhas

Página 52 de 56
IPCA Administração de Redes e Sistemas

10.5. Comparação entre ficheiros

Dependendo do tipo de ficheiro que queremos comparar, existem os seguintes comandos para efetuar
as comparações:

% diff ficheiro1.txt ficheiro2.txt

compara os conteúdos de dois ficheiros de texto

% cmp ficheiro1 ficheiro

compara o conteúdos de dois ficheiros binários

11 Editores de Texto
11.1 Pico ou Nano

Este editor de ficheiro bastante simples de utilizar pode ser invocado usando o seguinte comando:

% pico ficheiro

Ou

% nano ficheiro

Tendo os seguintes atalhos de utilização

• CTRL-X – Serve para sair do editor.


• CTRL-R – Ler um ficheiro
• CTRL-C – Mostra a posição atual do cursor.
• CTRL-K – Corta o texto.
• CTRL-U – Cola o texto.
• CTRL-O – Salva o ficheiro
• CTRL-T – verifica a ortografia do seu texto.
• CTRL-W – faz uma pesquisa no texto mediante uma string
• CTRL-A – Move o cursor para o início da linha.
• CTRL-E – Move o cursor para o fim da linha.
• CTRL-G – Apresenta o manual de utilização do editor Nano.

Página 53 de 56
IPCA Administração de Redes e Sistemas

11.2 VIM (vi iMproved)


O editor de texto vim , foi criado a partir do vi, sendo considerado um dos melhores editores de texto
para linha de comandos sendo evocado da seguinte forma:

% vim nomeFicheiro

O vim tem dois modos de funcionamento:

• modo de comando, em que as teclas pressionadas correspondem a comandos;


• modo de edição.

Para passar ao modo de edição é necessário um comando que o ative, por exemplo o i (insert) ou o
a.(add)

Para passar ao modo de comando é necessário premir a tecla “esc”. Os comandos mais utilizados são
os seguintes:

• :w para guardar o ficheiro


• :q para sair do ficheiro
• :q! para sair sem guardar o ficheiro
• :wq para sair e guardar o ficheiro
• x para apagar um caracter
• u (undo) para invalidar a ultima acção
• dd apaga uma linha
• dw apagar uma palavra
• yy copiar uma linha
• yw copiar uma palavra
• p colar o que apagamos anteriormente ou copiar uma linha ou palavra
• e mover para a próxima palavra
• r substituir uma palavra
• /palavra_a_pesquisar – Palavra a pesquisar

Página 54 de 56
IPCA Administração de Redes e Sistemas

12 Exercícios de revisão
a) Crie a seguinte arvore de diretórios a partir da sua home directory

b) Execute um comando (a partir da sua home directory) que permita listar o conteúdo de PGISCF
e escreva o resultado no ficheiro alinea-b.txt no diretório Shell

c) Execute um comando que permita listar os processos activos relacionados com o protocolo
ssh e coloque o resultado no ficheiro alínea-c.txt no diretório Shell.

d) Execute um comando (a partir da sua home directory) que permita listar os ficheiros existentes
no diretório Shell cujo nome comece pela letra “a”. Coloque o resultado no ficheiro alinea-
d.txt, no diretório Shell.

e) Execute um comando (a partir da sua home directory) que permita listar os ficheiros ou
diretórios existentes em /etc cujo nome tenha na terceira posição o caracter “g”. Coloque o
resultado no ficheiro alinea-e.txt, no diretório Shell.

f) Execute um comando (a partir da sua home directory) que permita copiar todos os ficheiros
existentes no diretório Shell para a o diretório Linux.

g) Qual é o seu diretório atualmente? que comando usar?

h) Posicione-se no diretório OpenOffice.

i) Execute um comando que permita listar o conteúdo do diretório Linux utilizando o caminho
relativo.

Página 55 de 56
IPCA Administração de Redes e Sistemas

j) Execute um comando que permita listar o conteúdo do diretório Linux utilizando o caminho
absoluto.

k) Execute um comando que permita compactar toda a informação existente a partir do diretório
PGISCF para um ficheiro na sua home directory designado pgiscf.tar

l) Execute um comando que permita visualizar a informação contida no ficheiro pgiscf.tar

m) execute um comando que permita “descompactar” a informação existente no ficheiro iscf.tar


para o diretório Shell

n) Atribua permissões ao ficheiro pgiscf.tar que assegurem que o dono do ficheiro pode fazer
todas as operações, os membros do grupo apenas podem ler e executar e os outros apenas
podem ler.

o) Atribua permissões ao diretório linux de leitura e execução ao dono e membros do grupo


relativamente aos outros, que não permitam qualquer operação.

p) Recorrendo ao comando cut, extraia do ficheiro /etc/passwd os vários usernames do sistema


e coloque essa informação na sua home no ficheiro usernames.txt

q) Recorrendo ao comando cut, extraia do output do comando ifconfig o seu mac address e
coloque a informação na sua home no ficheiro mac.txt

Página 56 de 56

Você também pode gostar