UNIX® Administração
Transcrição
UNIX® Administração
UNIX® Administração João Victor A. Di Stasi [email protected] Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Objetivos do curso ● ● ● ● ● ● Configuração e Tuning do Linux Boot e Shutdown do Sistema Gerenciamento de contas de usuários Configuração do kernel Noções de segurança Conceito de redes avançado “Entendimento é a chave do sucesso no Linux” The Linux System Administrator's Guide Carga Horária ● 40 horas teórico / práticas Referências ● Bibliograficas: – Dominando o Linux ● ● – Usando Linux ● ● – Editora Campus Bill Ball Theach Yourself UNIX in 24 Hours ● ● – Editora Ciência Moderna Matt Welsh e Lar Kaufman Sams Publishing Dave Taylor e James C. Armostrong, Jr Securing and Optimizing Linux: RedHat Edition ● ● OpenDocs Publishing Gerhard Mourai Referências ● Internet – – – – – – – – – www.linux.org www.kernel.org www.tldp.org www.redhat.com www.debian.org br-linux.org www.linuxsecurity.com www.linuxtoday.com www.google.com UNIX® Básico - Revisão ● ● ● ● ● ● ● ● Estrutura de Diretórios Permissões Gerenciando Sistemas de Arquivos Processos Daemons, Sinais e Matando processos Shells Editores de texto Dispositivos O que é Linux? ● ● Linux é um clone totalmente funcional do SO UNIX® originalmente desenvolvido pela Bell Labs em 1970 Todos os recursos que espera-se de um SO – – – – – – ● Multi-tarefa Virtual Memory Suporte TCP/IP Shared Libraries Multi-usuário Modo Protegido Suporta uma grande variedade de plataformas Por que usar Linux? ● Confiabilidade – ● Escalabilidade – ● ● ● Roda tanto em computadores de grande porte quanto em PDAs Grande variedade de softwares Documentação Estabilidade – ● Quebra não freqüente do sistema, conseqüentemente mais disponibilidade Bugs são encontrados e resolvidos rapidamente Alta Performance Por que usar Linux? ● ● Segurança Suporte – ● Compatibilidade – ● Aplicações Windows podem rodar no linux Personalizável – ● Uma grande variedade de usuários, websites e grupos de discussão pela internet Existem distribuições voltadas para uso em hospitais, escolas, crianças, multimídia, etc Gratuito Por que o Linux não domina o mundo da computação? ● Contra-tempos – – – ● Gerenciamento de software pode ser difícil Necessidade de padronização de interfaces de softwares Nada é 100% gratuito, suporte pago Solução – – – – Treinamento de administradores de sistemas Cursos internos para usuários do sistema Desenvolvimento Apoio de todos UNIX® Básico - Revisão Estrutura de Diretórios Estrutura de diretórios - Revisão / (Raiz) bin boot dev etc home lib mnt root sbin tmp var andre bruno rafael usr lib log mail spool tmp bin include lib local sbin share src X11R6 /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda5 on on on on / type ext3 /home type ext3 /usr type ext3 /var type ext3 Estrutura de diretórios - Revisão ● /bin – ● /boot – ● Onde reside a imagem do kernel vmlinuz, initrd, arquivos de backup do gerenciador de boot /dev – ● Programas essenciais para o sistema, administrador e usuários Contém arquivos especiais que são referências para periféricos /etc – Mais importantes arquivos de configurações http://www.pathname.com/fhs/pub/fhs-2.3.html Estrutura de diretórios - Revisão ● /home – ● /lib – ● Bibliotecas essenciais para o sistema, onde reside os módulos do kernel /lost+found – ● Diretório de trabalho dos usuários comuns Todas as partições possuem um, arquivos são enviados para lá quando recuperados pelo fsck /mnt – Ponto de montagem para todos os sistemas de arquivos externos http://www.pathname.com/fhs/pub/fhs-2.3.html Estrutura de diretórios - Revisão ● /proc – ● /root – ● Diretório de trabalho do super-usuário /sbin – ● Sistema de arquivos virtual, contém uma série de informações do sistema Programas essenciais para o sistema e administrador /tmp – Espaço temporário http://www.pathname.com/fhs/pub/fhs-2.3.html Estrutura de diretórios - Revisão ● /usr – ● Programas, bibliotecas, documentação, programas não essenciais do sistema /var – Armazena arquivos de dados variáveis como logs, emails, spool de impressão http://www.pathname.com/fhs/pub/fhs-2.3.html Estrutura de diretórios - Revisão ● ● ● ● Dotfiles e Dotdirs file(8) stat(8) losetup(8) UNIX® Básico - Revisão Permissões UNIX ® "On a UNIX system, everything is a file; if something is not a file, it is a process." Permissões - Revisão Número de Permissões arquivos dono Data e hora da última modificação grupo Nome do arquivo Permissões - Revisão Permissões - Revisão ● Tipos de arquivos d l c b s p Aquivo comum Diretório Link Caractere device Block device Socket Named pipe Permissões - Revisão 0 1 2 3 4 5 6 7 Não lê, não escreve, não executa Não lê, não escreve, executa Não lê, escreve, não executa Não lê, escreve, executa lê, não escreve, não executa lê, não escreve, executa lê, escreve, não executa lê, escreve, executa ----x -w-wx r-r-x rwrwx Permissões - Revisão ● chmod(1)MODO ARQUIVO... – – MODO é uma ou mais das letras ugoa, um dos símbolos += e uma ou mais das letras rwxXstugo u (User) ● – g (Group) ● – Aplica-se ao grupo do arquivo o (Other) ● – Aplica-se ao dono do arquivo Aplica-se a todos os outros usuários que não estejam nos casos acima a (All) ● Todos os usuários, sem exceção UNIX® Básico - Revisão Gerenciando Sistemas de Arquivos Gerenciando Filesystems - Revisão Gerenciando Filesystems - Revisão Número Partição Tipo Status Tam. Em Uso Início Fim Gerenciando Filesystems - Revisão ● fdisk(8)[opções] device – – – Divide o disco em um ou mais discos lógicos Apenas manipula a tabela de partições Não cria o sistema de arquivos Gerenciando Filesystems - Revisão ● mkfs(8) [fsoptions] filesys – – Utilitário para cria sistemas de arquivos no Unix, normalmente em block devices Apenas um front-end para outros utilitários ● ● ● ● ● ● ● ● ● mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfat mkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs Gerenciando Filesystems - Revisão ● fsck(8) [filesys] [] [ fs specificoptions ] – – – Checa e opcionalmente repara um sistema de arquivos Deve ser executado em um sistema de arquivos desmontado Normalmente um front-end para outros utilitários ● ● ● ● ● ● fsck.ext2 fsck.msdos fsck.reiserfs fsck.xfs fsck.ext3 fsck.vfat Gerenciando Filesystems - Revisão ● Os comandos mount(8) e umount(8) – uso básico: mount device mountpoint Parâmetros mais gerais de uso: -a – ● -f ● Monta todos os sistemas de arquivos listados na fstab Força a montagem de um sistema de arquivos mesmo que não esteja “limpo” Gerenciando Filesystems - Revisão -r ● Monta o sistema de arquivos em somente leitura -t fstype ● Monta o device indicado como o filesystem informado. ● Saida mais detalhada (verbose) ● Monta o sistema de arquivos em leitura e escrita -v -w Gerenciando Filesystems - Revisão -o ● Permite parâmetro separados por vírgula, que variam de filesystem para filesystem. defaults rw, suid, dev, exec, auto, nouser, and async. noatime Não atualiza o campo access time dos inodes no sistema de arquivo noauto O sistema de arquivos só é montado explicitamente, a opção -a não tem efeito aqui. Gerenciando Filesystems - Revisão nosuid users Não permite a utilização dos bits “set-user-identifier” e “set-group-identifier” Permite qualquer usuário montar e desmontar o sistema de arquivos. noexec Não permite a execução de binários neste sistema de arquivos. user Permite um usuário normal montar o sistema de arquivos, e somente o mesmo (ou root) pode desmontá-lo. Gerenciando Filesystems - Revisão ● O arquivo “/etc/fstab” – Sistemas de arquivos são montados automaticamente durante o processo de boot – Formato: #device /pto.Mont. fstype opções dumpfreq passno /dev/hda1 /boot ext3 defaults 0 /dev/hda2 / ext3 defaults 0 /dev/hda3 /home ext3 defaults 0 /dev/hda5 none swap sw 0 none /proc proc defaults 0 /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 2 1 3 0 0 0 0 UNIX® Básico - Revisão Processos Processos - Revisão ● ● Sistema Operacional multi-tarefa (técnica para compartilhar um único processador entre vários processos independentes) “Processo” é o nome dado á um programa em execução. ● Identificação única “process ID” ou “PID” ● Como arquivos possuem dono e grupo Processos - Revisão ● O comando ps(1) – Informação momentânea do sistema Processos - Revisão ● PID – ● TTY – ● Identificador do processo Terminal em que o processo foi disparado STAT – Status do processo ● ● ● ● (S) sleep (I) Idle (R) Running (Z) Zombie Processos - Revisão ● TIME – ● Tempo acumulado uso da CPU, não necessariamente o tempo de execução do processo. COMMAND – Linha de comando usada para rodar o programa Processos - Revisão ● O comando top(1) – Provê uma visão dinâmica em tempo-real de um sistema em uso – Mostra um sumário geral do sistema – Mostra a lista de tarefas (processos) que estão sendo gerenciados pelo kernel – Interface de manipulação de processos Processos - Revisão Processos - Revisão ● ● nice(1) pstree Daemon - Revisão ● ● Processos que rodam em background Executam tarefas específicas de tempos em tempos ● Responsáveis pelos serviços ● Daemons famosos: – – – sendmail lpd inetd UNIX® Básico - Revisão Sinais Sinais - Revisão ● ● Usados para nos comunicarmos com os processos Normalmente usado pelo SO para notificar um processo que algum evento ocorreu ● Devem ser tratados imediatamente ● Alguns podem ser ignorados (mascarados) Sinais - Revisão ● Tipos de Sinais (man 7 signal): SINAL – – – – – – – – NUMERO USO COMUN SIGHUP 1 Reiniciar o processo SIGINT 2 Interrupção via teclado Ctrl+C SIGABRT 6 Sinal via abort(3) SIGFPE 8 Float Point Exception SIGKILL* 9 Sinal Morte SIGSEGV 11 Referência inválida a memória SIGALRM 14 Timer via alarm(2) SIGSTOP* 17,19,23 Para o processo Matando processos - Revisão ● O comando kill(1) /bin/kill [s] sinal PID ● ● ● Cada shell implementa o seu comando kill Usuários só podem enviar sinais a processos que lhe pertençam SIGKILL e SIGSTOP não podem ser mascarados nem ignorados UNIX® Básico - Revisão Shells Shells - Revisão ● Interpretador de comandos UNIX® ● Recursos – – – – – – Controle de jobs Aliases Histórico Expansão de prompt Variáveis de Ambiente Completar nomes de arquivos UNIX® Básico - Revisão Editores de Texto Editores de Texto - Revisão ● Diversidade de editores – – – – – – – – vi(1) ed(1) joe(1) pico(1) nano(1) mcedit(1) ee(1) jed(1) Editores de Texto - Revisão ● Porque usar vi ? – Disponível em todos os sistemas UNIX® – Funciona em qualquer terminal – Sabendo vi, você sabe muito awk, sed, grep, utiliza o mesmo esquema de expressões regulares – Pequeno, rápido e poderoso VI uso básico - Revisão ● Modos de uso: – Comando ● ● – Interativo ● ● – Todas as teclas digitadas são interpretadas como comando Para entrar no modo de comando ESC Tudo que é digitado é ecoado na tela do terminal Limita-se a inserir e remover caracteres Visual ● Permite selecionar blocos de texto (v) VI uso básico - Revisão ● Entrar – vi filename ● ● ● Edita um arquivo cria o arquivo se não existir Sair – ZZ ● – :q! ● – :x ● Sai do vi salvando as modificações Sai do vi descartando as alterações Sai do vi salvando as Alterações VI uso básico - Revisão ● Editar – – – i ● Insere texto exatamente onde está o cursor ● Apenda texto logo abaixo do cursor a o ● – O ● Insere uma linha abaixo do cursor e entra no modo de inserção Insere uma linha acima do cursor e entra no modo de inserção VI uso básico - Revisão ● Copiar – yy ● – yN ● – Copia as N a partir da linha atual p,qy ● ● Copia a linha atual Copia da linha p até a linha q Colar – p ● – P ● Cola em baixo da linha atual Cola na linha de cima VI uso básico - Revisão ● Procurar – – ● /string ● Procura pela ocorrência da string “string” ● próxima ocorrência da string n Substituir – – – s/velho/novo/[...] ● Substitui uma ocorrência da string “velho” por “novo” ● Substitui todas as ocorrências na linha ● confirma a alteração g c UNIX® Básico - Revisão Devices Devices - Revisão ● ● Todo hardware da máquina recebe o nome de device Exemplos de device: – Impressora – Placa de Vídeo – Mouse – Disco Rígido Devices - Revisão ● ● Para cada device (hardware) deve existir um arquivo (device node) no /dev com suas informações Exemplos de device nodes: – /dev/hda – /dev/lp0 – /dev/ttyS0 – /dev/psaux Devices - Revisão ● Caracter device – – Dispositivo que lê e escreve 1 (um) caractere de dados por vez Exemplo: ● ● Teclado, mouse, placa de vídeo Block device – – Dispositivos que lê escreve mais de 1 caractere de dados por vez Exemplo: ● Disco rígido, cdrom, placas SCSI, discos SCSI Devices - Revisão ● Números Maior e Menor – Cada device no /dev possui um maior e menor únicos – Para o kernel não importa o nome do arquivo no /dev – /usr/src/linux/Documentation/devices.txt Devices - Revisão Maior Menor UNIX® Administração ● ● ● ● ● ● ● Administração de Software Configuração e Tuning O Processo de Boot Gerenciamento básico de contas de usuários Configurando o kernel Segurança Redes UNIX® Administração Administração de Software UNIX® Administração ● Instalando pacotes – rpm (RedHat, Fedora, Mandrake, Conectiva, ...) – dpkg (Debian, knoppix, Kurumin) – tar.gz (todos os Unixes que a aplicação suportar) Gerenciadores de pacotes - RPM ● RPM(8) – – RPM Package Manager Padrão desenvolvido pela RedHat – Capaz: ● ● ● ● ● Instalar Remover Atualizar Procurar Verificar RPM ● Instalar – rpm i [install] pacote.rpm ... ● ● ● ● Instala o pacote Falha se já existir uma versão anterior instalada Falha se houver dependências Opções comuns ao instalar – v ● – h ● Saida detalhada Barra de andamento do processo RPM ● Remover – rpm e [erase] metapacote ... ● ● ● Remove um pacote do sistema Falha se houverem dependências Opções comuns ao remover – v ● – Saída detalhada nodeps (não comum) ● Ignora caso hajam dependências RPM ● Atualizar – rpm U [update] pacote.rpm ... ● ● ● Atualiza um pacote caso ele esteja instalado Instala o pacote caso não esteja previamente instalado Opções comuns ao atualizar – v ● – h ● Saída detalhada Barra de andamento do processo RPM ● Procurar – rpm q [query] metapacote ... ● ● ● Procura procura pelo nome exato do pacote Não possui um mecanismo de pesquisa apurado Opções comuns à procura – a ● – Todos os pacote instalados |grep string ● Procura por um pacote que possui em seu nome “string” RPM ● Verificar – rpm V [Verify] metapacote ... ● ● Verifica se algum arquivo do pacote original foi alterado Opções comuns ao verificar – a ● Todos os pacote instalados DPKG ● dpkg(8) – Padrão desenvolvido pelo Debian – Capaz: ● ● ● ● ● ● Instalar Remover Resolver dependências Atualizar Procurar Verificar APT ● apt(8) – Ferramenta avançada de gerenciamento de pacotes – Facilidade de administração de pacotes – Versátil ● ● ● – Novos repositórios (novos softwares) Repositório de atualizações de segurança Independe do gerenciador de pacotes http://apt.freshrpms.net/ APT ● aptget(8) – Lista de repositórios: /etc/apt/sources.list APT ● aptget update – – – – Atualiza a lista de todos os pacotes disponíveis Procura a nova lista de pacotes de cada servidor Recria a árvore de dependências Deve ser executado periodicamente APT ● aptget install pacote ... – – – Instala o pacote Resolve todas as dependências Resolve conflitos de versão APT ● aptget upgrade [u] – – – Compara a lista de pacotes disponíveis com lista de pacotes instalados Mantém o sistema atualizado Deve ser executado periodicamente Tarball – tar.gz - tar.bz2 ● Pacote criado com o utilitário tar(1) – Descompactar ● ● – Configurar ● ● – cd pacoteversão ./configure –opções Compilar ● – tar zxvf pacote.tar.gz tar jxvf pacote.tar.bz2 make Instalar ● make install UNIX® Administração Configuração e Otimização UNIX® Administração Rede Hostname ● hostname(1) – – ● Define ou mostra o hostname do sistema O hostname é usado por vários programas para identificar a máquina /etc/hosts – – – Tabela estática para procura de máquina Única forma de resolver nomes antes do advento do DNS 127.0.0.1 localhost deve sempre existir Configurando a rede ● ifconfig(8) iface [options] addr – – – – Configura interfaces de rede Configura interfaces virtuais Exibe as interfaces configuradas Exibe estatísticas de cada interface Configurando a rede ● RedHat – – ● FreeBSD – ● /etc/hostname.iface Debian – ● /etc/rc.conf OpenBSD – ● /etc/sysconfig/networkscripts/ /etc/sysconfig/network /etc/network/interfaces Slackware – /etc/rc.network Configurando a rede ● route(8) – – – Exibe e manipula a tabela de rotas IP Normalmente usado para configurar rotas estáticas Usado para definir o default gateway route add default gw aa.bb.cc.dd route add host 1.2.3.4 dev eth0 route add net 5.4.3.2/24 gw 1.2.3.4 Configurando a rede Resolução de nomes ● /etc/resolv.conf(5) – – ● Contém informações que são lidas por rotinas de resolução de nome Informa o endereço do servidor de nomes utilizado pelo sistema Opções comuns nameserver ip.do.servidor domain dominio.da.maquina search dominio.com.br com.br br edu Resolução de nomes ● /etc/host.conf(5) – ● Configuração das rotinas de resolução de nome Opções comuns order bind, host, nis multi on Name Service Switch ● /etc/nsswitch.conf – – Configura várias rotinas da biblioteca C para funcionarem corretamente Prioridade sobre o arquivo /etc/host.conf passwd: nis compat group: nis compat shadow: nis compat hosts: files dns nis networks: files nis UNIX® Administração Sistema de Logging Logs do Sistema ● syslogd(8) e klogd(8) – – – – – Daemon responsável por logar as mensagens do sistema Serviço bem consolidado, existente em todos os Unices Permite uma centralização dos logs de toda a rede Fácil configuração Em alguns sistemas syslogd(8) e klogd(8) são um único daemon sysklogd(8) ou simplemente syslogd(8) Configuração de Logs do Sistema ● /etc/syslog.conf(5) – – – ● Arquivo de configuração para o syslogd(8) Define onde as mensagens logadas devem ser armazenadas Atenção para o uso de espaços neste arquivo Sintaxe básica Seletor;[Seletor] ação /usr/include/sys/syslog.h Configuração de Logs do Sistema ● Seletor – – – – – – – – – – Facility.priority Facility.* Facility,Facility.priority Facility.=priority Facility.!priority Facility.priority Facility.priority *.priority *.=priority *.!priority Configuração de Logs do Sistema ● Ação – – – – – – Arquivo regular: []/var/log/file Named Pipe: |/var/log/file Terminal e Console: /dev/console Máquina remota: @maquina Lista de usuários: root,usuario,.. Todos os logados: * Configuração de Logs do Sistema ● Facility – – – – – – – auth /* security/auth messages */ authpriv /*sec/auth msgs (private)*/ cron /* clock daemon */ daemon /* system daemons */ ftp /* ftp daemon */ kern /* kernel messages */ lpr /* line printer subsystem */ Configuração de Logs do Sistema ● Facility – – – – – mail /* mail system */ news /* network news subsystem */ syslog /* msgs internas syslogd */ user /* random userlevel msgs */ uucp /* UUCP subsystem */ Configuração de Logs do Sistema ● Facility – – – – – – – – – Reservado para uso geral do sistema local0 /* reserved for local use */ local1 /* reserved for local use */ local2 /* reserved for local use */ local3 /* reserved for local use */ local4 /* reserved for local use */ local5 /* reserved for local use */ local6 /* reserved for local use */ local7 /* reserved for local use */ Configuração de Logs do Sistema ● Priority – – – – – – – – – alert crit debug emerg err info none notice warning /* Intervenção imediata */ /* Condição crítica */ /* Mensagens debuglevel */ /* Sistema não utilizável */ /* Condição de erro */ /* Informativo */ /* INTERNAL */ /* Condição normal*/ /* Condição de atenção*/ Configuração de Logs do Sistema ● Exemplo de configuração auth,authpriv.* *.*;auth,authpriv.none daemon.* kern.* lpr.* mail.* user.* uucp.* mail.info mail.warn mail.err news.crit /var/log/auth.log /var/log/syslog /var/log/daemon.log /var/log/kern.log /var/log/lpr.log /var/log/mail.log /var/log/user.log /var/log/uucp.log /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/news/news.crit Configuração de Logs do Sistema *.=debug;\ auth,authpriv.none;\ news.none;mail.none /var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none /var/log/messages *.emerg * daemon.*;mail.*;\ news.crit;news.err;news.notice;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole UNIX® Administração Agendamento de tarefas Cron ● cron(8) – ● /etc/crontab(5) – ● Executa tarefas agendadas do sistema Arquivo de configuração do cron crontab(1) – Ferramenta para manipulação das tarefas agendadas de usuários Cron ● /etc/cron.allow – – ● Lista dos usuários que podem executar o comando crontab(1) Se não existir todos podem /etc/cron.deny – – Lista dos usuários que não podem executar o comando crontab(1) Se não existir todos podem Crontab ● Formato do /etc/crontab 1) Minuto em que o comando será executado 2) Hora em que o comando será executado 3) Dia do mês que o comando deverá ser executado 4) Mês em que o comando será ser executado 5) Dia da semana em que o comando será executado 6) Usuário que irá executar o comando 7) Comando que deverá ser executado 1 2 3 4 5 6 7 min hora ddm mês dds usuário comando Crontab ● Valores permitidos – – – – – ● Ranges – ● Minuto Hora Dia do mês Mês Dia da semana 0-10 (0,1,2,3,4,5,6,7,8,9,10) Listas – 0-59 0-23 1-31 1-12 0-7 2,5,7,6,9,11 Crontab ● Combinações – – ● 0-20/2 (0,2,4,6,8,10,12,14,16,18,20) 5-8,12-15,19 Nomes – Dia da semana ● – Sun, Mon, Tue, Wed, Thu, Fri, Sat Mês ● Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec Crontab ● Variáves de ambiente do /etc/crontab – SHELL ● – HOME ● – Login do usuário que agendou a tarefa (somente leitura) USER ● – Ordem de procura dos binários por $SHELL LOGNAME ● – Diretório de trabalho de $LOGNAME ou $USER PATH ● – Shell que irá executar os comandos Login do usuário que agendou a tarefa (somente leitura) MAILTO ● Saída do comando é enviada via email para $MAILTO Crontab ● Formato do /etc/crontab min hora ddm mês dds usuário comando 01 * * * 17 8 * * 17 20 * * 00 4 * * * 4 * * 42 4 1 * 4:42am" * root echo "Todo 1 min de hora" * root echo "diário às 8:17am" * root echo "diário às 8:17pm" 0 root echo "domingo às 4:00am" Sun root echo "O mesmo do de cima" * root echo "todo dia 1 do mês às Crontab ● crontab(1) [u user][e] [l] [r] – e ● – u ● – l ● – r ● Edita a lista de tarefas agendadas do usuário Edita a crontab de outro usuário Lista o conteúdo da crontab do usuário Remove todas as tarefas da crontab At ● at(1) HORA – ● HORA – – ● HH:MM + NUMERO UNIDADEDETEMPO UNIDADE-DE-TEMPO – ● Executa comandos no horário especificado minutes, hours, days, or weeks Exemplo: – at 17:00 ● reboot UNIX® Administração Otimização UNIX® Administração System Control Sysctl – System Control ● sysctl(8) – – ● /etc/sysctl.conf(5) – ● Permite configurar parâmetros do kernel em tempo de execução Os parâmetros disponiveis estão em /proc/sys Arquivo de configuração do sysctl(8) Exemplo: sysctl a sysctl w variavel=valor sysctl p Sysctl – Variáveis do kernel ● ● ● ● ● ● ● ● ● Exemplo: net.ipv4.ip_forward net.ipv4.conf.default.rp_filter fs.filemax kernel.ctrlaltdel kernel.domainname kernel.hostname kernel.panic net.ipv4.conf.all.send_redirects /proc ● /proc(5) – ● ● Visão geral para informações de processos /proc/[PID] – ● Contém informações de cada processo em execução /proc/[PID]/cmdline – ● Sistema de arquivos virtual que permite acesso direto as estruturas de dados do kernel Linha de comando que iniciou o processo /proc/[número]/cwd – Diretório em que o programa foi executado /proc - continuação ● /proc/[PID]/environ – ● /proc/[PID]/exe – ● Link para o binário que foi executado /proc/[PID]/fd – ● Variáveis de ambiente do processo Este diretório contém uma entrada para cada arquivo aberto pelo processo /proc/[PID]/maps – Regiões de memória mapeadas e suas respectivas permissões de acesso /proc - continuação ● /proc/[PID]/mem – ● /proc/[PID]/root – ● Para onde aponta o / do processo, alterado se usado chroot(2) /proc/[PID]/stat – ● Permite o acesso às páginas de memória do processo Informações de status do processo, usado pelos comandos ps(1) e top(1) /proc/[PID]/statm – Informações sobre o status da memória em páginas /proc - continuação ● /proc/[PID]/status – Mesmas informações de stat e statm porém em um formato mais legível ● Recursos da Máquina ● /proc/interrupts – ● Informação sobre o número de interrupções por cada IRQ /proc/iomem – Mapa de I/0 /proc - continuação ● /proc/ioports – ● /proc/kcore – ● Lista de I/O atualmente em uso Representa a memória física do sistema /proc/kmsg – – Mensagens do kernel –TERMINAR UNIX® Administração Filesystem Tune2fs ● tune2fs(8) [opções] filesystem – ● Ajusta os parâmetros do sistema de arquivos ext2/ext3 Opções comuns c max-mount-counts ● Número máximo de montagens antes do fsck(8) e error-behavior ● remount-ro, continue, panic i interval-between-checks[d|m|w] ● Intervalo caso o número máximo e montagens não seja alcançado Tune2fs ● Opções comuns (continuação) l lista ● lista o conteúdo do superbloco -L volume-label ● Nome do volume LABEL=ROOT m reserved-blocks-percentage ● Porcentagem dos blocos que são reservados Tune2fs ● Opções comuns (continuação) o [^]opçõesdemontagem[,...] ● ● Opções defaults de montagem que podem ser sobrescritas ao executar o comando mount Opções de Montagem debug acl journal_data journal_data_ordered journal_data_writeback uid16 Tune2fs ● Opções comuns (continuação) O [^]feature[,...] dir_index – Usa hashed b-trees para aumentar a velocidade na procura de arquivos em diretórios grandes filetype – Armazena a informação do tipo de arquivo no diretório has_journal – Usa o journal para assegurar a consistência do sistema de arquivos mesmo após uma interrupção brusca do sistema Hdparm ● hdparm(8) [opções] harddisk – Recupera e configura parâmetros em discos rígidos – A [0/1] ● – c [0/1] ● – i ● – Manipula a opção read-lookahead I ● Transferência em 32-bit (PCI) Exibe as informações detectadas na hora do boot Exibe informações requisitadas diretamente ao disco Hdparm ● hdparm(8) [opções] harddisk – k [0/1] ● – K [0/1] ● – m ● – T ● – Mantém as configurações após um reset do disco t ● Mantém as features após um reset do disco Número de setores transferidos Teste de transferência com uso de cache Teste de transferência sem uso de cache UNIX® Administração O Processo de Boot Seqüência de boot ● Arquitetura PC IBM/IA32 – Projeto antigo e manutenção de compatibilidade – Firmware do PC boota o Sistema Operacional de uma forma antiga e bem consolidada – É atualmente a arquitetura mais usada no mundo Seqüência de boot ● O Processo pode ser separado em seis estágios lógicos 1. A BIOS seleciona o dispositivo de boot 2. A BIOS carrega o "setor de boot" do dispositivo de boot 3. O "Setor de boot" carrega o setup, rotinas de descompressão e a imagem do kernel comprimida 4. O kernel é descomprimido em modo protegido 5. Inicialização de baixo nível é realizada pelo código assembler 6. Inicialização em C de Alto nível Seqüência de boot Seqüência de boot ● ● ● Detecta e inicializa os dispositivos Opcionalmente carrega o initrd Monta o root filesystem especificado pelo gerenciador de boot com o parâmetro root=??? – O kernel imprime: ● ● VFS: Mounted root (ext2 filesystem) readonly. Executa /sbin/init (PID=1) – O init imprime: ● INIT: version 2.85 booting /sbin/init,/etc/init,/bin/init,/bin/sh Seqüência de boot ● /sbin/init(8) – Último passo na seqüência de boot – Lê o arquivo /etc/inittab(5) – Se existir a diretiva initdefault, define o runlevel inicial do sistema – Inicializa os ttys Seqüência de boot ● /etc/inittab(5) – – ● arquivo de configuração do init(8) Define que processos serão inicializados na seqüência de boot Formato: – ID : RUNLEVELS : AÇÃO : PROCESSO Seqüência de boot ● ID – ● RUNLEVELS – ● Identifica uma entrada no inittab (até quatro caracteres) Lista de runlevels nos quais uma determinada ação deverá ser tomada AÇÃO – Ação tomada pelo init(8) ao executar o processo Seqüência de boot ● AÇÃO – RESPAWN ● – WAIT ● – O processo será reiniciado pelo init(8), deve sempre estar disponível no sistema Ao entrar no runlevel o processo é iniciado, e o init(8) aguarda pelo fim da execução do processo para continuar, ONCE ● O processo só será executado uma vez Seqüência de boot ● AÇÃO (continuação) – SYSINIT ● – POWERFAIL ● ● O processo será iniciado durante o boot (antes de qualquer entrada com ação boot ou bootwait) Executado quando recebe um sinal (SIGPWR) de que ocorreu uma falha no sistema de alimentação PROCESSO – Processo que será executado Seqüência de boot ● ● /etc/inittab(5) (continuação) initdefault – id: N : initdefault: ● define em qual runlevel (N) o sistema será inicializado # inittab for linux id:1:initdefault: rc::bootwait:/etc/rc 1:1:respawn:/etc/getty 9600 tty1 2:1:respawn:/etc/getty 9600 tty2 3:1:respawn:/etc/getty 9600 tty3 4:1:respawn:/etc/getty 9600 tty4 Seqüência de boot ● /etc/inittab(5) (continuação) ● Exemplo mais bem elaborado em – http://jvictor.dyndns.org/linux/inittab-mbe.txt Seqüência de boot ● /etc/inittab(5) (continuação) # nível de execução que estamos id:2:initdefault: # Script de inicialização/configuração do #sistema na hora do boot si::sysinit:/etc/init.d/rcS #O que fazer em modo monousuário S:wait:/sbin/sulogin Seqüência de boot ● /etc/inittab(5) (continuação) # /etc/init.d/rc executa os script S e K na # mudança de runlevel l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 Seqüência de boot ● /etc/inittab(5) (continuação) # O que fazer com o "CTRL+ALT+DEL" ca::ctrlaltdel:/sbin/shutdown -t1 -h now 1:23:respawn:/sbin/getty tty1 VC linux 2:23:respawn:/sbin/getty tty2 VC linux 3:23:respawn:/sbin/getty tty3 VC linux 4:23:respawn:/sbin/getty tty4 VC linux S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320 S1:3:respawn:/sbin/mgetty -x0 -D ttyS1 Seqüência de boot ● Scripts – – ● rc, rc.sysinit, Em: /etc/init.d, /etc/rc.d/init.d Tarefas comuns dos scripts de inicialização – – – – – – – Logar a seqüência de boot Desmontar e liberar o initrd Configurar o teclado Setar as configurações de performance Checar se os sistemas de arquivos estão ok Acertar a hora do sistema Carregar módulos do kernel Seqüência de boot ● Tarefas comuns dos scripts de inicialização (continuação) – – – – – – – Ativar a memória swap Montar os sistemas de arquivos Checar quotas Detectar os hardwares que não foram detectados automaticamente pelo kernel Setar o hostname da máquina Levantar as interfaces e conexões de rede Levantar NIS e NFS Seqüência de boot ● RUNLEVEL – Modo de execução. 0 - HALT 1,s - Single mode (administração) 2 - Multiusuário sem opções de rede 3 - Multiusuário completo (padrão) 4 - reservado para personalização 5 - Modo gráfico (Xwindow - xdm) 6 - Reboot Seqüência de boot ● /etc/rcX.d – ● ● X é o nível de execução do sistema O comando init X é usado para definir o runlevel atual Scripts em /etc/rcX.d – – Começados por S deverão ser executados como /etc/rcX.d/nomedoscript start Começados por K deverão ser executados como /etc/rcX.d/nomedoscript stop Seqüência de boot ● /etc/rc.d/rc.local – – ● Último script a ser executado na seqüência de boot Nele devem existir configurações que não foram previstas nos scripts de inicialização getty(8) – – – – Habilita login de usuários Abre os tty’s (terminais) e configura seu modo de operação Mostra o prompt de login Inicializa o processo login para o usuário Seqüência de boot ● login(8) – – checa senha executa o shell do usuário (definido em /etc/ passwd) Seqüência de boot ● Adicionando um script na inicialização cd /etc/rc?.d/ ln s /etc/init.d/script S??script ● No RedHat chkconfig script on – No script devem existir as linhas: #chkconfig: runlevels Snum Knum #description: Script responsável por.... Seqüência de boot ● Removendo um script na inicialização cd /etc/rc?.d/ rm S??script ● No RedHat chkconfig script off chkconfig level 235 script off Seqüência de boot ● Alternando entre runlevels – init n ● – runlevel(8) ● – n é o runlevel desejado Informa o runlevel anterior e o atual telinit(8) [t segundos] ● O mesmo que init(8) porém permite especificar um delay para a troca do runlevel UNIX® Administração Gereciamento de contas de usuários e grupos UNIX® Administração Contas de usuários Administrando contas de usuários ● O arquivo /etc/passwd contém as contas de usuários – Cada linha descreve um usuário – Cada linha possui 7 campos separados por : login:senha:UID:GID:nome:home:shell Administrando contas de usuários ● Campos de /etc/passwd – Login ● – Password ● – Nome de usuário Senha associada ao usuário, se o password shadow estiver habilitado este campo estará preenchido com um x User ID ● Número de identificação único associado ao usuário Administrando contas de usuários ● Campos de /etc/passwd (continuação) – Group ID ● – Full Name ● – Número de identificação do grupo primário do usuário Nome completo do usuário mais campos informativos e especiais Shell ● Interpretado de comandos padrão do usuário Administrando contas de usuários ● Administrando contas via linha de comando – useradd(8) ● – userdel(8) ● – Modifica contas de usuários já existentes chfn(8) ● – Remove contas de usuários usermod(8) ● – Cria contas de usuários Modifica o nome completo e informações de usuários chsh(8) ● Troca a shell do usuário Administrando contas de usuários ● useradd [defgGkmnpsu] usuário – Cria contas de usuários – c ● – d ● – e ● – f ● Comentário - normalmente usado para definir o nome completo do usuário Diretório home do usuário Data da expiração da conta no formato YYYY-MM-DD Dias após a expiração do password em que a conta será permanentemente desabilitada Administrando contas de usuários ● useradd [defgGkmnpsu] usuário (continuação) – g ● – G ● – k ● Grupo primário do usuário Lista de grupos, separada por vírgula e sem espaços, que o usuário pertence define diretório onde estão as configurações iniciais das contas de usuários Administrando contas de usuários ● useradd [defgGkmnpsu] usuário (continuação) – m ● – n ● – p ● Informa que o diretório do usuário deverá ser criado automaticamente Não criar um grupo separado para o usuário, utilizar um já existente Define um password para o usuário Administrando contas de usuários ● useradd [defgGkmnpsu] usuário (continuação) – s ● – u ● – o ● Define a shell padrão do usuário Define o número de identificação único do usuário Permite a criação de um usuário com o mesmo UID de um já existente Administrando contas de usuários ● useradd [defgGkmnpsu] usuário (continuação) – D ● – atualiza o arquivo /etc/default/useradd Exemplo: # useradd defaults file GROUP=100 HOME=/home INACTIVE=1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel Administrando contas de usuários ● userdel(8) [r] usuário – Remove contas de usuários do sistema – Se a opção r for passada como parâmetro o diretório do usuário será removido – Por default os diretórios de usuários são mantidos Administrando contas de usuários ● usermod(8) [cdefgGklmnpsuLU] usuário – – As opções equivalem às opções do useradd(8) l novonome ● – L ● – U ● permite modificar o login do usuário bloqueia o password do usuário, impedindo o login desbloqueia a conta do usuário Administrando contas de usuários ● chsh(8) s shell usuário – Permite alterar o interpretador de comandos padrão do usuário – Shell é o caminho da shell – Somente shells listadas em /etc/shells são permitidas, a menos que invoque o comando como superusuário UNIX® Administração Grupos de usuários Administrando contas de usuários ● ● Permite o compartilhamento de informações O arquivo /etc/group define os grupos de usuários – – cada linha define um grupo cada linha tem o seguinte formato: grupo:password:GID:membros Administrando contas de usuários ● Campos de /etc/group – grupo ● – Password ● – Senha associada ao grupo para fins administrativos, uso incomum Group ID ● – Nome do grupo Número de identificação único associado ao grupo Membros ● Lista dos usuários que pertencem ao grupo separados por vírgula e sem espaços Administrando contas de usuários ● groupadd(8) g gid grupo – – Cria um grupo g ● ● groupdel(8) grupo – ● Define o número de identificação único do grupo Remove um grupo groupmod(8) grupo – – – Remove um grupo n novonome g gid Administrando contas de usuários ● /etc/shadow(5) – – apenas o root pode ler e escrever maior segurança login:senha:cp1:cp2:cp3:cp4:cp5:cp6:reservado cp1 = Dias a partir de 1/1/1970 que a senha foi alterada cp2 = Dias a partir do qual a senha pode ser mudada cp3 = Por quantos dias a senha é válida cp4 = Em quantos dias antes da senha expirar o usuario deve ser avisado cp5 = Quantos dias depois que a senha expirou a conta é desabilitada cp6 = Dia (a partir de 1/1/1970) que a conta é desabilitada UNIX® Administração Quotas de disco Administrando contas de usuários ● ● ● ● Limita o consumo de espaço em disco pelo usuário Limita número de inodes e blocos utilizados Deverá ser aplicada em cada sistema de arquivos que espera-se que o usuário utilize Arquivos de quotas são [a]quota.user e [a]guota.group Administrando contas de usuários ● quotacheck(8) – – – Checa a utilização de disco de cada usuário em cada sistema de arquivos com quota Corrige o arquivo de quotas caso esteja corrompido Deverá ser executado na inicialização do sistema, antes do sistema de quotas estar no ar quotacheck avugn – Checa as quotas de usuário e grupo de todos os sistemas de arquivos com quota e corrige o aquivo de quotas caso esteja corropido Administrando contas de usuários ● quotaon(8) – Ativa o sistema de quotas no sistema de arquivos – O arquivos de registro de quotas devem existir na raiz do sistema de arquivos quotaon avug ● Ativa o sistema de quotas para usuários e grupos em todos os sistemas de arquivos Administrando contas de usuários ● Normalmente encontramos no scripts de inicialização algo como: # Checa as quotas e então ativa o sistema de quotas if [ -x /usr/sbin/quotacheck ] then echo "Checando quotas. Isso poder levar algum tempo." /usr/sbin/quotacheck -avug echo " Feito." fi if [ -x /usr/sbin/quotaon ] then echo "Ativando o sistema de quotas." /usr/sbin/quotaon -avug fi Administrando contas de usuários ● Notas importantes: – O check de quotas (quotacheck) deve ser feito com os sistema de quotas desligado – O check de quotas (quotacheck) deverá ser feito com o sistema de arquivo com quotas montado – A ativação do sistema de quotas (quotaon) deverá ser feito com o sistema de arquivos montado Administrando contas de usuários ● Para habilitar quotas de disco – Para usuários adicione usrquota no campo opções do sistema de arquivos desejado em /etc/fstab – Para grupos adicione grpquota no campo opções do sistema de arquivos desejado em /etc/fstab /dev/hda2 / ext3 defaults,usrquota,grpquota 0 1 ● Ativa quotas de usuário e grupos no sistema de arquivos / Administrando contas de usuários ● edquota(8) – Ferramenta de edição de quotas de usuários e grupos – É possível editar quotas para mais de um usuário ao mesmo tempo – É possível especificar um usuário com padrão – Apenas o super-usuário pode editar o arquivo de quotas Administrando contas de usuários ● edquota(8) (continuação) – Soft Limit ● – Hard Limit ● – Indica o máximo de espaço em disco permitido para o usuário, pode ser ultrapassado Indica o máximo de espaço em disco sem concessão de tempo de estouro, normalmente maior do que o “Soft Limit” Grace Period ● Número máximo de dias que o “Soft Limit” pode estar ultrapassado Administrando contas de usuários ● repquota(8) – Gera um relatório das quotas de disco – Imprime o status de cada usuário – Informa o espaço em disco em kilobytes UNIX® Administração NIS Network Information NameService NIS ● ● Padroniza informações compartilhadas pela rede Permite compartilhar informações de: – – – – – usuários grupos password redes hosts NIS ● ● ● Em uma rede deve-se ter pelo menos um servidor NIS Podem existir mais de um servidor NIS atuando ao mesmo tempo em domínios diferentes Podem existir mais de um servidor atuando cooperativamente em um mesmo domínio (Master, Slave) NIS ● Master – – – ● Possui a lista de contas de usuários Deve existir apenas um por domínio Onde alterações no banco de dados NIS devem ser feito Slave – – Possuem apenas cópia do banco de dados NIS Copiam o banco de dados NIS periodicamente do master NIS ● portmap(8) – Transforma chamadas RPC em portas TCP/IP – Deve estar rodando para que o NIS funcione – Quando o RPC for executado o portmap será informado de que portas deverá escutar – Faz a intermediação entre cliente/servidor NIS NIS – Configurando o cliente ● Configuração possível para clientes ● /etc/yp.conf(5) domain nisdomain server hostname domain nisdomain broadcast ypserver hostname as informações nis são armazenadas em /var/yp /etc/nsswitch.conf hosts: files nis dns NIS – Configurando o cliente ● /etc/yp.conf(5) ypserver 10.10.0.1 ypserver 10.0.100.8 ypserver 10.3.1.1 domainname lab02.nce.ufrj.br /sbin/portmap /usr/sbin/ypbind NIS – Configurando o cliente ● Para manter o banco NIS atualizado – /etc/crontab 20 * * * * /usr/lib/yp/ypxfr_1perhour 40 6 * * * /usr/lib/yp/ypxfr_1perday 55 6,18 * * * /usr/lib/yp/ypxfr_2perday NIS – Configurando o Servidor ● /var/yp/Makefile – ● /var/yp/ypservers – ● Define os arquivos que estarão disponíveis via NIS Lista de todos os servidores do domínio /var/yp/securenets Lista das redes que possuem permissão de acesso as informações da rede 255.255.255.0 10.10.0.0 host 10.0.0.1 – NIS – Configurando o Servidor ● /etc/ypserv.conf – Configuração de segurança do ypserv /sbin/portmap ypserv #Master /usr/lib/yp/ypinit m #Slave /usr/lib/yp/ypinit s masterhost cd /var/yp make UNIX® Administração NFS Network File System NFS ● ● ● Permite maquinas montarem um sistema de arquivos remoto como se fosse um sistema de arquivos local Permite compartilhar arquivos através da rede de forma rápida e fácil Vantagem sobre outros sistemas de arquivos para rede – – – – Fácil implementação Código maduro Considerado um padrão Suportado por uma variedade de plataformas NFS – Configurando o Servidor ● /etc/exports(5) – – – Arquivo de configuração do servidor NFS define quais sistemas de arquivos serão exportados define o controle de acesso aos sistemas de arquivos exportados – diretório maquina(permissão,...) ... /usr *(ro,sync,root_squash) /var/www pc1(rw,sync) pc2(ro,) NFS – Configurando o Servidor ● /etc/hosts.deny e /etc/hosts.allow portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL ● NFS – Configurando o Servidor ● Inicializando o servidor NFS #/sbin/portmap #/usr/sbin/rpc.mountd #/usr/sbin/rpc.nfsd #/usr/sbin/rpc.statd #/usr/sbin/rpc.lockd #/usr/sbin/rpc.rquotad #/usr/sbin/rpcinfo p NFS – Configurando o Servidor ● Alterando o /etc/exports(5) após a inicialização do serviço #/usr/sbin/exportfs(8) ra ou #/sbin/kill 1 no PID do nfsd As informações são armazendas em /var/lib/nfs ● NFS – Configurando o Cliente ● Configuração simples #/sbin/portmap #/usr/sbin/rpc.lockd #/usr/sbin/rpc.statd #mount server:/home /mnt/home #umount /mnt/home server:/home /home nfs defaults 0 0 UNIX® Administração Compilando o kernel Kernel ● O que é o kernel? ● Por que recompilar? – – ● Onde encontrar? – – ● Otimização Suporte a novos hardwares http://www.kernel.org Construo um kernel modular ou monolítico? Kernel ● Determinando seu hardware lspci(8) cat /proc/cpuinfo ● Descompactando os fontes cd /usr/src tar jxvf linux2.4.26.tar.bz2 ln s linux2.4.26 linux Kernel ● Documentação /usr/src/linux/Documentation ● Limpando os fontes cd /usr/src/linux make mrproper ● Configurando make config make menuconfig make xconfig Kernel ● Satisfazendo as dependencias de compilação make dep ● Compilando o kernel make Image (Sem compactação) make zImage (compactado com gzip) make bzImage (compactado com bzip2) – a imagem gerada estará em /usr/src/linux/arch/i386/boot/bzImage , zImage ou Image Kernel ● Compilando os módulos make modules make modules_install – Os modulos do kernel residem em /lib/modules/versãodokernel ● Após a compilação copiar a imagem do kernel para /boot com o nome vmlinuzversãodokernel – copiar System.map para /boot/System.mapversãodokernel – Kernel ● Criando um initrd(4) (initialized RAM disk) – – – Permite uma maior portabilidade do kernel Útil somente em um kernel modular É necessário que seu kernel tenha suporte a isso mkinitrd /boot/initrd2.4.26.img 2.4.26 UNIX® Administração Gerenciador de boot lilo ● lilo(8) – ● Tradicional gerenciador de boot do linux /etc/lilo.conf(5) Arquivo de configuração do lilo leitura do manual é recomendável Sempre que alterar o arquivo de configuração se faz necessário executar o comando #lilo – – – lilo ● /etc/lilo.conf(5) – Exemplo: boot = /dev/hda vga = 0 lba32 image = /boot/vmlinuz2.4.26 root = /dev/hda2 initrd = /boot/initrd2.4.26 label = Linux readonly other = /dev/hda4 table = /dev/hda label = dos Grub ● grub(8) – – – – – ● Novo padrão de gerenciador de boot Configuração simples Possui mais recursos “Boota” mais Sistemas Operacionais Não é necessário executar comando algum ao alterar o arquivo de configuração /boot/grub/menu.lst(5) – – Arquivo de configuração do grub é possivel que esteja em /etc/grub.conf Grub ● /boot/grub/menu.lst(5) (continuação) boot=/dev/hda default=0 timeout=10 title Red Hat Linux (2.4.26) root (hd0,1) kernel /boot/vmlinuz2.4.26 ro root=/dev/hda2 initrd /boot/initrd2.4.26.img