Professor: Macêdo Firmino
Disciplina: Sistemas Operacionais de Rede
Um sistema de arquivos é um modo particular de armazenar e organizar arquivos em um
dispositivo de armazenamento como um disco
rı́gido, e é uma parte importante do sistema
operacional.
Como qualquer outro sistema operacional,
as distribuições GNU/Linux realizam a manipulação de diversos dados e informações. Para
isto é necessária uma estrutura de arquivos e
diretórios bem definida e padronizada.
Existem diferentes tipos de sistemas de arquivos. Os mais comuns são:
A barra de localização acima da lista de arquivos e pastas mostra qual a pasta você está
vendo, incluindo as pastas pais até o seu diretório pessoal, a raiz de um dispositivo removı́vel
ou do seu sistema de arquivos. Clique em uma
pasta pai na barra de localização para ir até
essa pasta. Clique com o direito em qualquer
pasta na barra de localização para abri-la em
uma nova aba ou janela, para copiar ou movêla, ou para acessar suas propriedades.
ˆ Ext2, Ext3, e Ext4: estes são usualmente encontrados em sistemas operacionais GNU/Linux. Ubuntu utiliza Ext4
como seu sistema de arquivo padrão.
ˆ FAT16 e FAT32: são sistemas de arquivos do Microsoft Windows encontrados
em computadores antigos.
ˆ NTFS: é o tipo de sistema de arquivos
utilizado pelas versões mais modernas do
Microsoft Windows.
ˆ HFS+: é o sistema de arquivos padrão
Mac OS X.
Na aula de hoje, iremos conhecer como navegar na estruturação dos dados e diretórios do
sistema de arquivos do Linux, como também as
suas particularidades e algumas recomendações
necessárias para a sua boa manutenção.
I. Navegar nos Arquivos e Pastas
Utilize o gerenciador de Arquivos para navegar por arquivos em sua pasta pessoal, em
dispositivos externos (pendrives), em servidores
de arquivo ou através do sistema de arquivos
de seu computador. Para abrir o gerenciador
de arquivos selecione o atalho Pasta pessoal no
lançador do Ubuntu.
No gerenciador de arquivos clique duas vezes em uma pasta para ver seu conteúdo ou clique duas vezes em um arquivo para abri-lo com
o aplicativo padrão para o arquivo. Você também pode clicar com o direito em uma pasta
para abri-la em uma nova aba ou nova janela.
Na visão em lista você também pode clicar no
expansor ao lado da pasta para mostrar o conteúdo dela em uma árvore.
Figura 1: Gerenciador de Arquivos do Ubuntu
II. Estrutura das Pastas
No Linux para cada tipo de arquivo, e de
acordo com suas funcionalidades e importância, existe um local especı́fico (chamado diretório) para seu armazenamento. O sistema de
arquivo é organizado em uma estrutura hierárquica, similar a uma árvore. O nı́vel mais alto
do sistema de arquivo é o / ou diretório raiz. Na
filosofia arquitetural do Unix e do Linux, tudo
é considerado um arquivo - incluindo discos rı́gidos, partições e mı́dias removı́veis.
Por exemplo, /home/macedo/aula.pdf mostra o caminho completo e correto para o arquivo
aula.pdf que existe no diretório macedo, o qual
está sob o diretório home, que por sua vez está
sob o diretório raiz (/).
Diretórios são utilizados para manter arquivos relacionados juntos. Podem ser arquivos
executáveis (programas), arquivos de dados, arquivos de um projeto ou tema, etc.
Distribuindo os arquivos em diretórios facilita a manipulação (cópia, acesso, compartilhamento) dos mesmos. Segue uma lista dos
principais diretórios da maioria das distribuições Linux:
ˆ / - (raiz) inı́cio do sistema de arquivos;
ˆ /bin - aplicativos binárias importantes, como os comandos essenciais dos
usuários, por exemplo, cat, cp, ls, mkdir,
rm, su, ping, mount, gzip, chmod.
ˆ /boot - arquivos necessários para realizar o boot do computador, por exemplo, o kernel do sistema. Em distribuições
que utilizam o gerenciador de inicialização GRUB (por exemplo o Ubuntu),
este encontra-se armazenado em um subdiretório, chamado /boot/grub.
ˆ /dev - os diversos dispositivos que o
sistema suporta (impressoras, teclado,
mouse, saı́da de som, entre outros) tem
sua interface aqui. Para ter acesso as
funcionalidades de qualquer dispositivo,
deveremos recorrer aos seus respectivos
arquivos de dispositivos, por exemplo, sda
(1ª unidade na controladora primária mestre, geralmente o disco rı́gido), sdb
(2ª unidade na controladora primária escravo, geralmente um pendrive), audio
(sintetizador de áudio), ttyX (um terminal propriamente dito), usbmon (interface
USB), etc.
ˆ /etc - contém arquivos de configuração (por exemplo, a tabela para montagem de partições e as definições do servidor X.org) e scripts para iniciar programas. No Windows, todas as suas
definições em termos de configuração ficam armazenadas em seu sistema de registro, que por sua vez é inicializado
através do aplicativo regedit.exe. Embora funcional e centralizalizador, infelizmente ele é pouco intuitivo e sem uma
documentação eficiente. Já nos sistemas
GNU/Linux, suas definições ficam registradas em arquivos-textos de configuração, bem mais fácil de ser editado manualmente;
ˆ /home - destinado ao armazenamento
dos arquivos pessoais das contas
de usuário do sistema, incluindo
personalizações especı́ficas de sua
conta. Por exemplo, para conta do
usuário macedo, teremos um diretório
/home/macedo/ para o armazenamento
de todos os arquivos e configurações pessoais desta conta.
ˆ /lib - contém bibliotecas compartilhadas necessárias para a execução
dos arquivos contidos nos diretórios
/bin e /sbin. Ainda neste diretório são
encontrados os módulos do kernel.
ˆ /media e /mnt - são definidos para serem utilizados exclusivamente para
a montagem de unidades. A diferença
entre os dois está justamente no tipo de
unidade a ser desmontada. O /media
deverá ser utilizado exclusivamente para
a montagem de mı́dias removı́veis, como
DVDs, disquetes e pendrive em geral. Já
no /mnt se concentrará a montagem de
volumes de uso provisório, como uma partição de um HD, por exemplo;
ˆ /opt - provê um local para instalação
de aplicativos opcionais, por exemplo, um programa do IRPF (Imposto de
Renda);
ˆ /proc - diretório dinâmico especial
que mantém informações sobre o estado do sistema, incluindo processos
em execução. Ele é apenas um sistema
de arquivo virtual para que os administradores do sistema tenham acesso as informações do processamento do kernel em
forma de arquivos para consulta;
ˆ /root - é definido para ser utilizado
exclusivamente no armazenamento
de dados e arquivos pessoais do superusuário (root). Não é recomendado
o uso deste diretório para qualquer finalidades que não seja para a administração
e/ou manutenção do sistema, em especial
atividades comuns para os usuários tais
como leitura do correio eletrônico, armazenamento de dados diversos, etc. Para
estas atividades, o administrador deverá
ter ou criar para si uma conta de usuário
comum;
ˆ /sbin - armazena arquivos binários
essenciais para a administração do
sistema, onde os mesmos são utilizado somente pelo superusuário ou
durante a inicialização do sistema,
por exemplo, como criação de novos usuários, configurações de rede e formatação
de discos;
ˆ /sys - tal como o /proc, é um sistema virtual de arquivos. Neste caso, tem-se o
objetivo de mostrar as informações
relacionadas aos hardware, enquanto
que /proc traz referências ao sistema;
ˆ /tmp - armazena arquivos temporários gerados pelo sistema. Geralmente
este diretório é limpo a cada inicialização ou a intervalos relativamente freqüentes. Por este motivo, deveremos evitar a
guarda de arquivos por um determinado
tempo neste diretório, mesmo aqueles inúteis;
ˆ /usr - maioria dos aplicativos e utilitários do sistema encontram-se armazenados aqui: ele é como uma espécie de “Arquivos de Programas do
Windows”. Dentro dele existem diversos
subdiretórios, por exemplo:
– /usr/bin - aplicativos mais utilitários;
– /usr/lib - bibliotecas usadas pelos
utilitários em /usr/bin;
– /usr/local - arquivos instalados pelo
administrador;
– /usr/share - arquivos compartilhados (apenas leitura);
– /usr/src - fonte do sistema e seus utilitários.
ˆ /var - nele são colocados os arquivos
e diretórios temporários que devem
ser preservados quando a máquina
é reiniciada. As mensagens de e-mail e
os arquivos de log (registro de acontecimentos) ficam neste diretório. Dentre os
arquivos deste diretório, poderemos destacar o Xorg.0. log, debug, dmesg, messages e syslog. Pois, eles permitem analisar todas as interações do sistema com o
hardware, registrando além das informações gerais, inconsistências, falhas, erros
e anomalias das mais variadas espécies.
III. Permissões dos Arquivos e
Diretórios
O sistema Linux trabalha com um modo de
permissão que protege o sistema de arquivos de:
ˆ Acesso indevido de pessoas ou programas
não autorizados.
ˆ Um programa mal intencionado, por
exemplo, enviar arquivos para outra pessoa ou fornecer acesso da rede para que
outros usuários invadam o sistema.
ˆ Usuários iniciantes apagarem arquivos
que não deve, ou mesmo visualizarem.
Além de instalar programas em locais inadequados.
A segurança de acesso a arquivos e diretórios é provida através de um esquema de posse
de arquivo e de permissão de acesso a estes.
Com relação a posse de arquivo (e diretório) o
Linux dividide os usuários em três conjuntos:
ˆ Dono: o proprietário do arquivo ou criador do arquivo.
ˆ Grupo: usuários que fazem parte do
grupo do proprietário, para permitir que
vários usuários diferentes tenham acesso
a um mesmo arquivo. Cada usuário pode
fazer parte de um ou mais grupos e então
acessar arquivos que pertençam ao mesmo
grupo que o seu (mesmo que estes arquivos tenham outro dono).
ˆ Outros: não são os proprietários e nem
fazem parte do grupo.
No entanto, o super usuário “root ” possui a
habilidade de acessar qualquer arquivo do sistema. Os comandos para visualizar os atributos, modificar dono e modificar grupo dos arquivos, são:
ˆ ls -l: utilizado para ver as permissões
de um arquivo ou diretório, a opção l (long listing) mostra todos os detalhes
dos arquivos. A primeira informação corresponde ao chamado modo do arquivo,
composto de 10 caracteres.
Dono
Arqivo
regular
Grupo
$ ls -l
-rw-r--r-- 1 macedo macedo 10 2011-03-29 14:25 test.txt
Permissões
do dono
Permissões
dos outros
Permissões
do grupo
Figura 2: Comando ls -l
O primeiro caracter apenas indica seu tipo (por
exemplo, se é um arquivo regular ou um diretório). Os nove caracteres constituem três grupos
de três caracteres. Em cada grupo, o primeiro
caracter representa a permissão de leitura (r),
o segundo a de escrita (w) e o terceiro a de execução (x). Se não tiver permissão aparece um
hı́fen (-). Na sequencia é mostrado o tamanho
do arquivo em bytes, data da última modificação e o nome do arquivo.
ˆ chown: utilizado para trocar o dono de
um arquivo. Na Figura abaixo é mostrado
um arquivo chamado “test.txt”. Ele pertence ao usuário macedo e ao grupo macedo. Foi feito uma modificação de dono
para janaide.
Figura 3: Comando chown
ˆ chgrp: troca o grupo do arquivo. Um
usuário pode mudar o grupo de um arquivo, desde que ele seja o usuário dono
do arquivo e pertença ao novo grupo do
arquivo. Na Figura abaixo é mostrado inicialmente um arquivo chamado “test.txt”
que pertence ao usuário macedo e ao
grupo macedo. Foi realizada uma modificação no grupo do arquivo onde o mesmo
passou a pertencer ao grupo janaide.
Figura 4: Comando chgrp
Uma vez que as posses de arquivo estão definidas, o próximo passo é proteger os arquivos de
acesso não desejado. Para isso, é definido três
tipos de permissão para controlar os acessos a
um arquivo/diretório ao dono, grupo e outros
usuários. São eles:
Neste exemplo, os dois comandos chmod
754 e chmod u+rwx,g+rx,o+r são equivalentes:
ˆ r (read ): permissão de leitura para um
arquivo e, permitir listar o conteúdo de
um diretório (através do comando ls, por
exemplo).
ˆ w (write): permissão de gravação e exclusão para um arquivo/diretório.
ˆ x (execute): permissão para executar um
arquivo, se for um arquivo binário ou
um script e, se for um diretório permitir
acesso a ele através do comando cd.
O comando que possibilita modificar as permissões de um arquivo é:
ˆ chmod: é utilizado para modificar as permissões de arquivos e diretórios.
Figura 6: Comando chmod
Questões
1. Cite exemplos de sistema de arquivo suportado pelo Linux.
2. Como é organizado a estrutura do sistema
de arquivo do Linux? E o que o usuário
vai encontrar em cada diretório?
3. Como é definido as permissões aos arquivos e pastas no Linux?
4. Qual é o comando para alterar o usuário
de um arquivo?
5. Qual é o comando utilizado para listar as
permissões de um arquivo ou pasta?
Figura 5: Comando chmod
No exemplo acima, tinhamos um arquivo
(chamado “test.txt”) onde o dono, grupo e os
outros usuários não podiam ler, escrever e nem
executar o arquivo de texto. Na sequencia foi
atribuido ao dono (u - user ) as permissões de
escrever (w) e ler (r). Posteriormente, foi atribuido a permissão de leitura aos usuários pertencentes ao grupo (g - group) macedo e aos
demais usuários (o - other ) a permissão de leitura.
Neste comando o sinal de mais (+) e de menos (-) são usados para acrescentar ou remover
permissões. As permissões de acesso também
podem ser especificadas numericamente no comando chmod.
Para calcular o modo numérico basta substituir os 9 caracteres correspondentes às permissões, por 9 bits. Estes nove bits são agrupados
três a três e convertidos em decimal. Por exemplo,
String
Binário
Decimal
Dono
rwx
111
7
Grupo
r-x
101
5
Outros
r-100
4
6. Para um arquivo que inicialmente
está com as permissões -rwxrwxrwx,
após executar o comando chmod 755
nome do arquivo qual será a sua nova
permissão?
7. Como deve proceder um usuário que deseja que seu arquivo (prova.odt) seja visualizado e modificado somente por ele?
Download

Aula prática