Trivia Quantas partições primárias um disco pode ter? /dev/hda7 refere-se a uma partição primária ou estendida Qual será o nome do dispositivo relativo ao disco SCSI com o endereço mais baixo Quantas partições precisamos para uma instalação de Linux? Em que data foi lançada a versão 1.0 do kernel linux? Linux: Revisões Ajuda Manipulação de processos Encontrar ficheiros Visualizar/Editar ficheiros Os poderes do super-utilizador Ajuda man Man page: Dividido em secções: 1: Userlevel commands and applications 2: System calls and kernel error codes 3: Library calls 4: Device drivers 5: Standard file formats 6: Games and demonstrations 7: Miscellaneous files and documents 8: System administration commands 9: Obscure kernel specs and interfaces info Manipulação de processos ps: Process Status - Apresenta o estado dos processos ps a: Outros utilizadores ps u: Info Utilizador kill: Enviar sinais a processos kill <sinal> PID : envia o sinal <sinal> ao processo com o identificador PID kill -9 1034 kill KILL 1034 pkill: Permite utilizar o nome do processo em substituição do PID top: Apresenta informação sobre a actividade do processador nice, renice: Alterar a prioridade de um processo Cada processo tem um atributo chamado niceness Indicação sobre a frequência com que devia ter tempo de CPU Um processo pode aumentar a sua niceness (diminuir frequência) Apenas o root pode diminuir a niceness de um processo Encontrar ficheiros locate : Base de dados dos ficheiros do sistema locate u : Para criar a base de dados (apenas com permissões de admin) locate <nome_do_ficheiro> find : Procura recursiva de ficheiros e muito mais find. : Este comando encontra todos os ficheiros existentes debaixo da pasta corrente e imprime o seu nome ( acção por omissão) -name <nome_do_ficheiro> ; iname <nome_do_ficheiro> path <nome_do_caminho>; ipath <nome_do_caminho> type <tipo>; user <user>; -uid; -group; -gid; -nouser; -nogroup size <tamanho>; atime <data_acesso>; -amin; -anewer; -ctime; -cmin; -cnewer; -mtime <data_modificação>; -mmin; -mnewer; -exec comando {} \ Todos os ficheiros possuem um dono (owner) e grupo dono (group owner) O dono pode modificar as permissões do ficheiro No grupo dono, a pertença é partilhada entre os membros do grupo Exemplo: picasso.dei.isep.ipp.pt> ls l *.html -rw-r--r-- 1 npereira profs 3037 Oct 6 10:01 index.html O ficheiro index.html é do utilizador npereira e do grupo profs. 1
Tipos (1ª letra no resultado de ls -l): - normal d directório l ligação simbólica ou não c dispositivo orientado ao byte b dispositivo orientado ao bloco p pipe Atributos Cada ficheiro possui também um conjunto de quatro octetos, cada um com três bits. O primeiro octeto define: 4 - set user ID : quem executa tem permissões do dono 2 - set group ID : em ficheiros, quem executa tem permissões do grupo; em pastas, significa os ficheiros contidos possuem as permissões do grupo dono da pasta 1 - sticky bit : não tem significado em ficheiros; em pastas, significa que apenas o dono pode apagar ou alterar o nome dos ficheiros contidos Atributos Os seguintes três octetos definem as permissões : Dono (user/owner): read(4), write(2), execute(1) Grupo (group): read(4), write(2), execute(1) Outros (others): read(4), write(2), execute(1) Nota: permissões para apagar ou alterar o nome são definidas pela pasta que contem os ficheiros chmod: Alterar atributos chmod 755 * chown: Alterar o dono chown npereira * chgrp: Alterar o grupo dono chgrp npereira * chown :npereira * umask: Controlar as permissões por omissão umask 077 Visualizar/Editar ficheiros cat: Imprime os conteúdos de um ficheiro cat <nome_ficheiro> less, more: Imprime os conteúdos de um ficheiro página a página vi: Editor de texto Para quê saber desse... Dinossauro?! Não é assim tão estranho : vimtutor Os poderes do super-utilizador - root - Este utilizador tem permissões para efectuar operações sobre qualquer ficheiro ou processo. A conta do utilizador root tem o identificador (UID) 0. 2
Os poderes do super-utilizador Para que são necessários? Criar ficheiros de dispositivos Alterar o relógio do sistema Modificar os limites de utilização de recursos Definir as propriedades das interfaces de rede Abrir portas privilegiadas Desligar o sistema Alterar o dono de um processo Os poderes do super-utilizador Ligar-se como root Normalmente não se deve permitir logins do root, excepto a partir a consola local. Não permite ter informação sobre quem efectuou login como root su e sudo Os comandos su e sudo permitem que um utilizador normal adquira privilégios de administrador Permitem ter informação sobre quem utilizou estes privilégios su e sudo su: Substituir utilizador su <nome_utilizador> Sem argumentos, pede a palavra-chave do root e abre uma shell su - : estabelece o path sudo: Executar comandos com privilégios de administrador sudo <programa_a_executar> Irá pedir a palavra-chave do utilizador actual O ficheiro /etc/sudoers define os utilizadores que o podem fazer, assim como os comandos que podem executar su e sudo Muitas distribuições, por omissão, desabilitam o utilizador root. Todos os comandos que necessitem de privilégios especiais são executados com sudo. sudo H s : Abre uma shell com permissões do root Hierarquia do Sistema de Ficheiros A hierarquia começa na pasta raiz /. Estruturação derivada do UNIX. Filesystem Hierarchy Standard (FHS) Padrão que define a hierarquia do sist. de ficheiros http://www.pathname.com/fhs/ De acordo com função/utilização: Existem locais definidos para tudo Na realidade, é uma organização algo frágil 3
Hierarquia do Sistema de Ficheiros /bin Comandos essenciais; Contém todos os programas necessários para iniciar o sistema em single-user mode. /boot Ficheiros de kernel e configuração do bootloader /dev Ficheiros correspondentes a dispositivos da máquina /etc Ficheiros de configuração específicos da máquina. /home Pasta onde os utilizadores colocam os seus ficheiros /lib Bibliotecas de funções partilhadas pelos programas Hierarquia do Sistema de Ficheiros /mnt Pasta típica para mounts de sistemas de ficheiros temporários como disquetes, cd-roms, etc. /proc Sistema de ficheiros virtual que fornece uma quantidade de informação sobre o sistema /root pasta do utilizador root /sbin Comandos normalmente utilizados pelo administrador do sistema, que não devem estar disponíveis para utilizadores normais. /tmp Ficheiros temporários, tanto de programas como utilizadores. /usr Programas, bibliotecas, documentação e ficheiros estáticos necessários para as operações normais do sistema. Hierarquia do Sistema de Ficheiros /var Ficheiros temporários, para propósitos administrativos. Normalmente de grandes dimensões como ficheiros de registo de actividades, ficheiros das filas de impressão, correio electrónico, etc /etc Ficheiros de configuração específicos da máquina /etc/rc.d scripts que são executados durante a iniciação do sistema /etc/skel Estrutura de pastas e ficheiros utilizados para a pasta home de novos utilizadores. /etc/x11 Ficheiros de configuração do sistema X. /etc/sysconfig/ - Ficheiros adicionais de configuração do sistema (Red Hat) /usr Programas, bibliotecas, documentação,... /usr/bin Comandos para os utilizadores normais /usr/doc Localização para documentação diversa /usr/lib Bibliotecas /usr/local Ficheiros específicos da máquina /usr/man Páginas do manual ( man ) /usr/sbin Comandos para administração do sistema /usr/src Código fonte de programas /usr/src/linux Normalmente uma ligação simbólica para uma sub-pasta cujo nome é a versão exacta do kernel LINUX a ser executado, onde estarão ficheiros de código fonte do kernel. Exercício Qual é o tamanho em MBytes de: /bin /boot /dev /etc /home /lib /proc /root /sbin /tmp Comando útil: du : Eu já referi as man pages?? 4
Questões Onde se encontra o ifconfig (comando para configurar interfaces de rede)? Onde se encontra a configuração das contas de utilizadores? E as configurações dos sistemas de ficheiros a montar? E uma imagem temporária de um CD de música de um utilizador? Arranque do Sistema Booting Bootstrapping Processo em que um sistema mais simples activa um mais complexo. Uma alusão a uma lenda em que a personagem principal se erguia do mar puxando os cordéis das suas próprias botas! Passos: Execução do código de arranque na ROM. Localização do Kernel. Iniciação do Kernel. Iniciação de processos/serviços. Arranque do Sistema - PCs Código de arranque na ROM => BIOS BIOS (Basic Input/Output System): Testes e iniciação básica de hardware De uma lista de dispositivos, tenta carregar os primeiros 512 bytes, o boot sector (num disco, o Master Boot Record - MBR) MBR contém essencialmente informação de forma a carregar um programa designado boot loader Finalmente, o boot loader encarrega-se de carregar o kernel Algumas variantes, conforme o boot loader e sistema operativo a carregar Boot Loader Carrega e executa o kernel LInux LOader (LILO): Boot loader mais antigo GRand Unified Bootloader (GRUB): Boot loader mais recente e actualmente mais comum grub.conf Exemplo de grub.conf, para sistema multi-boot # By default, boot the first entry. default 0 # Boot automatically after 30 secs. timeout 30 # Fallback to the second entry. fallback 1 # For booting GNU/Linux title GNU/Linux kernel (hd1,1)/vmlinuz root=/dev/hdb1 # For booting RH9 title RH9 kernel /vmlinuz-2.4.20-8 ro root=label=/ initrd /initrd-2.4.20-8.img # For booting Windows NT or Windows95 title Windows NT / Windows 95 boot menu root (hd0,0) makeactive chainloader +1 5
Single User Mode Para entrar em single user mode deve-se adicionar o parâmetro single, a passar ao kernel Em GRUB: a -> single Proteger com palavra chave: Executar: grub-md5-crypt Adicionar no grub.conf a linha: password --md5 <saída-do-grub-md5-crypt> Exemplo: # For booting RH9 title RH9 kernel /vmlinuz-2.4.20-8 ro root=label=/ initrd /initrd-2.4.20-8.img password --md5 odeergf964ewe$#ddf*4 6