Hierarquia normalizada dos directórios em Linux Hierarquia directórios no Linux : 1/27 Introdução (1) [Def] FHS (File system Hierarchy Standard): norma que pretende normalizar o sistema de ficheiros em todas as distribuições do Linux. Acessível em http://www.pathname.com/fhs, com ficheiros em formatos diversos (html, pdf, ps, ) Versão mais recente, 2.3, ocupa 52 páginas. Linux adopta hierarquia de ficheiros em árvore. Ficheiros classificados por dois tipos de acesso: nós e capacidade de alteração Hierarquia directórios no Linux : 2/27
Introdução (2) 1. Ficheiros divididos conforme acesso por nós de uma rede Partilhável ( shareable ) : acessíveis em vários nós, por exemplo directórios de utilizadores. Reservado ( unshareable ) - acesso exclusivo no nó, por exemplo gestores de dispositivos. 2. Ficheiros divididos conforma possibilidade do utilizador comum poder alterar ficheiros: Estático ( static ) : apenas administrador de sistema pode alterar o ficheiro, por exemplo bibliotecas de sistema e manuais de utilizador. Variável ( variable ) : todos utilizadores podem alterar ficheiros, se possuirem permissão para tal, por exemplo ficheiros fonte e caixas de correio Hierarquia directórios no Linux : 3/27 Introdução (3) A árvore deve incluir 13 directórios / bin boot dev etc lib media mnt opt sbin srv tmp usr var Temporários Dados p/ serviços sistema Binários p/ arranque sistema Pacotes extra Montagem temporária de sistemas de ficheiros Montagem de meios removíveis Bibliotecas Configuração sistema Gestores dispositivos Carregamento do sistema operativo (ficheiros estáticos) Comandos binários essenciais Hierarquia directórios no Linux : 4/27
Introdução (4) Dois directórios possuem hierarquia específica /usr : hierarquia secundária /var : dados variáveis (caixa de correio,impressão, ) Opcionalmente podem ser instalados outros sub-sistemas /home : directórios de utilizadores /root : directório de entrada para administrador Hierarquia directórios no Linux : 5/27 /bin (1) Contém todos os programas binários necessários ao arranque do sistema e utilizadores não privilegiados. 33 comandos, ou ligações para comandos, obrigatórios Interpretador de comandos: sh Gestão de directórios: mkdir,, rmdir Gestão de ficheiros: cat, chgrp, chmod, chown, cp, dd, ln, ls, more, mv, rm Gestão de processos: kill, login, ps, pwd, stty, su, uname Processamento de texto: sed Utilitários de sistema: date, df, dmesg, hostname, mknod, mount, sync, umount Utilitários: echo, false, true Hierarquia directórios no Linux : 6/27
/bin (2) Daemons e programas usados exclusivamente pelo administrador armazenados no directório /usr/bin. Binários usados para arranque do sistema armazenados no directório /sbin. Comando obrigatório: shutdown Hierarquia directórios no Linux : 7/27 /boot (1) Contém vários ficheiros de carregamento do sistema operativo Ligação para o programa de selecção do sistema operativo (lilo-linux loader: em desuso, ou grub-grand unified bootloader). Nota: parâmetros do grub armazenados no ficheiro /boot/grub/grub.conf, onde são indicados Title - designação do SO listada no écran de escolha Kernel ficheiro do sistema operativo Root disco e partição onde reside sistema operativo hd(dd,pp) com números DD e PP inicializados a 0. Hierarquia directórios no Linux : 8/27
Opção 0 Opção 1 /boot (2) Exemplo de configuração grub.conf default=1 timeout=12 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.18-1.2798.fc6) Opção por omissão Disco/partição onde reside o SO root (hd0,0) kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/volgroup00/logvol00 rhgb quiet initrd /initrd-2.6.18-1.2798.fc6.img title WinXP rootnoverify (hd0,2) chainloader +1 Núcleo ( kernel ) do sistema operativo é o ficheiro comprimido vmlinuz-versão. Ficheiros necessários à inicialização são armazenados num FS temporário de memória, de identificador initrd-versão. Hierarquia directórios no Linux : 9/27 /etc (1) Os ficheiros de configuração de diversos serviços possuem extensão.conf Exemplo: ficheiro /etc/resolv.conf lista os endereços dos servidores DNS, para resolução de nomes lógicos de nós. No RedHat, os ficheiros shell de lançamento dos daemon lançados no arranque do sistema encontram-se instalados nos directórios /etc/rcn.d (N-nível de arranque entre 0 a 6). Em cada login é apresentado no terminam o conteudo do ficheiro /etc/motd ( message of the day ). Configuração do servidor gráfixo X armazenada em /etc/x11. Hierarquia directórios no Linux : 10/27
/etc (2) Utilizadores do sistema registados no ficheiro /etc/passwd, com entradas na forma ec-st:x:503:7000:software Telecom:/home/ec-st:/bin/tcsh [-d home_dir] [-s shell] [-u uid] Interpretador de comandos Directório entrada Comentário descritivo ID grupo ID utilizador Password Username Nota: novo utilizador criado por /usr/sbin/adduser login com opções [-c comment] comentário descritivo directório de entrada interpretador de comandos ID utilizador Hierarquia directórios no Linux : 11/27 /etc (3) Aplicação da função de dispersão na passwd guardada no /etc/shadow, com entradas na forma ec-st:$1$tccwv0lh$kqpkfits1gium/19mp0:12825:0:99999:7::: Dias desde última alteração (desde 1.1.1970) Dias até expirar Dias de aviso até expiração Quando o utilizador faz o login, a função de dispersão é aplicada à senha introduzida e apenas são comparados o resultados. Nota: o administrador não consegue determinar a passwd, apenas possui o privilégio de introduzir uma nova senha! Nota: segurança é tópico central na disciplina Software Telecomunicações Hierarquia directórios no Linux : 12/27
/mnt (1) No MSDOS, a cada dispositivo (partição de disco, diskette, ) é atribuído uma letra. Um ficheiro é acedido na forma dispositivo:fich, por exemplo C:\Program Files\MASM611\BIN\MASM.exe No Linux, a hierarquia de ficheiros de um dispositivo tem de ser instalada primeiro na hierarquia de ficheiros do computador. A instalação da hierarquia de ficheiros de um dispositivo é feita pelo comando mount gestor [local] [tipo-fich] [opções] Nota: O directório local tem de existir antes de executar o comando mount A raíz do sistema de ficheiros do dispositivo passa a ser o local Hierarquia directórios no Linux : 13/27 /mnt (2) Para remover o dispositivo, executar o comando umount local Exemplo: pretende-se ler o conteúdo de um CD 1. Instalar dispositivo através do comando mount /dev/cdrom /mnt/cdrom 2. Aceder aos ficheiros do CD a partir do /mnt/cdrom. 3. Quando o CD deixar de ser necessário, executar umount /mnt/cdrom Figura 2-22, Modern Operating Systems Hierarquia directórios no Linux : 14/27
/mnt (3) Tipos de sistema de ficheiros ext3 : ficheiros Linux msdos : ficheiros MSDOS, Win 95 ntfs : ficheiros Win NT/2000/XP auto : tipo determinado automaticamente Opções auto : dispositivo montado automaticamente na inicialização (noauto) async : dispositivo de acesso assíncrono (sync acesso ssíncrono) exec : ficheiros em modo executável (noexec) rw : ficheiros em modo de leitura e escrita (ro apenas leitura) nouser : dispositivo pode ser montado apenas pelo administrador de sistema (user por todos os utilizadores) defaults : usar opções por omissão: rw, suid, dev, exec, auto, nouser, async Hierarquia directórios no Linux : 15/27 /mnt (4) No arranque do sistema o Linux monta os dispositivos indicados no ficheiro /etc/fstab, com entradas na forma disp local FS opções dump checkreboot [rgc@asterix ~]$ more /etc/fstab /dev/volgroup00/logvol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/volgroup00/logvol01 swap swap defaults 0 0 [rgc@asterix ~]$ Nota: O dispositivo pode ser um disco de uma máquina remota, cujos ficheiros mantêm os seus ino (número de i-node). Hierarquia directórios no Linux : 16/27
/mnt (5) Exemplos: 1. Acesso a diskettes, usando o directório /media # montar dispositivo charlie.ist.utl.pt> mount /dev/fd0 /media -t msdos # copiar ficheiro charlie.ist.utl.pt> cp Ola.txt /media # desmontar dispositivo charlie.ist.utl.pt> umount /dev/fd0 Hierarquia directórios no Linux : 17/27 /mnt (6) 2. Acesso a partição Windows # preparar directório charlie.ist.utl.pt> mkdir /mnt/win # montar sistema de ficheiros charlie.ist.utl.pt> mount /dev/hd3 /mnt/win t ntfs-3g # aceder charlie.ist.utl.pt> ls /mnt/win Nota : O Fedora não distribui o módulo NTFS, que tem de ser carregado (por exemplo, a partir de http://www.linux-ntfs.org) 1. Recolher pacotes fuse, fuse-lib e ntfs-3g 2. Instalar módulo com comandorpm -ivh fuse* ntfs* Hierarquia directórios no Linux : 18/27
/mnt (7) Em alternativa ao /etc/fstab, a montagem de dispositivos é feita automaticamente pelo /usr/sbin/automount Dispositivos a montar listados em /etc/auto.master com entradas na forma local mapa [opções] Nota: uma opção muito usada é a temporização -timeout=nn Os mapas são normalmente ficheiros /etc/auto.xxx, com entradas na forma id opçõesmount [nó_servidor]:local Hierarquia directórios no Linux : 19/27 /mnt (8) Ex: para montar o leitor CD-ROM, com timeout de 60s no /etc/auto.master /misc /etc/auto.misc --timeout=60 no /etc/auto.misc cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom O automount é particularmente útil para montagem dos servidores no sistema de ficheiros por rede (ex: NFS ou AFS). Hierarquia directórios no Linux : 20/27
/tmp Directório usado por programas para armazenar ficheiros temporários (exemplo, compiladores e editores de texto) Programas devem assumir que os ficheiros podem ser eliminados após a conclusão. Hierarquia directórios no Linux : 21/27 Hierarquia /usr (1) Segundo maior directório do Linux, partilhável (mas acesso apenas de leitura). Deve conter os seguintes directórios /usr/bin: maior parte dos comandos de utilizador /usr/include:: cabeçalhos de programas C /usr/lib: bibliotecas /usr/local: hierarquia local /usr/sbin: programas de sistema não essenciais /usr/share: dados independentes da arquitectura Hierarquia directórios no Linux : 22/27
Hierarquia /usr (2) /usr/share usado para instalação de software local ao nó. Deve conter os seguintes directórios, ou ligações /usr/local/bin: binários locais /usr/local/etc: configuração dos binários locais /usr/local/games: jogos locais /usr/local/include: cabeçalhos de programas locais C /usr/local/lib: bibliotecas locais /usr/local/man: manuais de programas locais /usr/local/sbin: binários de sistema locais /usr/local/share: dados locais independentes da arquitectura /usr/local/src: fontes de programas locais Hierarquia directórios no Linux : 23/27 Hierarquia /usr (3) /usr/share usado para dados locais independentes da arquitectura. Deve conter os seguintes directórios, ou ligações /usr/share/man: manuais /usr/share/misc: dados variados Os manuais são distribuídos por 8 subdirectórios /usr/share/man/mann (N entre 1 e 8) 1. Comandos de utilizador 2. Chamadas de sistema 3. Funções de biblioteca do C 4. Controladores de dispositivos e interfaces de rede 5. Formato de ficheiros 8. Administração sistema Hierarquia directórios no Linux : 24/27
Hierarquia /var (1) Directório dedicado a ficheiros variáveis de dados. Deve conter os seguintes directórios /var/cache: /var/lib: informação variável de estado /usr/local: informação variável de /usr/local /usr/lock: informação variável p/ ferrolho de ficheiros /usr/log: informação variável de acessos /usr/opt: informação variável de /usr/opt /usr/run: informação relevante dos processos a executar /usr/spool: ficheiros spool /usr/tmp: ficheiros temporários entre reboots Hierarquia directórios no Linux : 25/27 Hierarquia /var (2) /var/usr/log guarda informação de acesso Entradas de utilizadores armazenadas no ficheiro /var/log/lastlog (consultada pelo comando lastlog) Acessos a páginas Web armazenados no directório /var/log/html /var/usr/spool usado para armazém de ficheiros para processamento posterior /usr/spool/lp: ficheiros em lista de espera para impressão /usr/spool/mqueue: mensagens de Email para fora Hierarquia directórios no Linux : 26/27
Hierarquia /var (3) Servidores inserem informação na hierarquia /var 1. Servidor Email armazena mensagens de correio do utilizador user em /var/mail/user. Nota: nos sistemas mais antigos o Email é armazenado no directório /var/spool/mail. 2. Servidor WWW armazena ligação de página pag em /var/www/html/pag (deve referir ficheiro index.html). Exemplo: as páginas de entrada da disciplina estão armazenadas no directório /home/ec-ps, com o ficheiro de entrada instalado em /home/ec-ps/public_html/index.html No nó asterix foi inserida a ligação simbólica ln s /home/ec-ps/public_html/index.html /var/www/html/ec-ps Hierarquia directórios no Linux : 27/27