Prévia do material em texto
Prof. Rômulo Santos – romulodba@gmail.com CIDADE IDIOMAS & CURSOS PREPARATÓRIOS CLN 113 - Bloco C - Sala 207 a 210 Asa Norte - Brasília - DF - CEP 70.763-503 Tel: (61) 3340-0433 / 99975-4464 / 98175-4509 E-mail: cursocidade@gmail.com secretaria@iic.pro.br Site: www.cursocidade.com.br Skype: luizcidade Aula 02: Linux 2 Sumário Introdução1 Desenvolvimento2 Conclusão3 3 Conteúdo Programático EB - OFICIAIS DO QUADRO COMPLEMENTAR - Informática 1. Microinformática a. Sistema operacional Linux: comandos básicos e avançados (incluindo shell script e expressões regulares); instalação, configuração e administração (incluindo gerenciamento de processos e serviços) dos seguintes subsistemas e serviços: núcleo do sistema, interface com usuário, arquivos e dispositivos de armazenamento de dados, segurança, usuários e grupos de usuários, comunicação de dados (incluindo redes) e periféricos. QUADRO TÉCNICO DO CORPO AUXILIAR DA MARINHA - Informática SISTEMAS COMPUTACIONAIS Linux: instalação e compilação de programas; comandos, editores de texto; shell; processo init; impressão; gerenciamento de sistema de arquivos; permissões e quotas de disco; gerenciamento de usuários, grupos e privilégios; gerenciamento de processos; gerenciamento da memória e de armazenamento; proteção e segurança; expressões regulares; administração do sistema e redes; mensagens do sistema, accounting e automação de tarefas; e administração de serviços de rede. 4 Referências NEMETH, Evi, HEIN, Trend R. e SNYDER, Garth. Manual Completo do Linux: Guia do Administrador – 2. ed. – São Paulo: Pearson Education, 2007. FERREIRA, Rubem E. Linux - Guia do Administrador do Sistema. 2.ed. Novatec, 2008. MOTA FILHO, João E. Descobrindo o Linux: Entenda o sistema operacional GNU/Linux – 3. ed. – São Paulo: Novatec Editora, 2012. 5 Referências MORIMOTO, Carlos E. Servidores Linux – Guia Prático. 2.ed. SULINA, 2010. SILVA, Gleydson M. Guia Foca GNU/Linux – Iniciante + Intermediário. Versão 5.65. Foca GNU/Linux. Disponível em: < http://www.guiafoca.org/>, 2010. 6 Estimativa de Provas para 2018 FAB OFICIAIS DE APOIO DA AERONÁUTICA • Prova Escrita: 06/05/2018 MB QUADRO TÉCNICO DO CORPO AUXILIAR DA MARINHA • Prova Escrita: 01/07/2018 EB OFICIAIS DO QUADRO COMPLEMENTAR • Prova Escrita: 16/09/2018 7 Sumário Introdução1 Desenvolvimento2 Conclusão3 8 Linux Discos: - Discos IDE (Integrated Drive Electronics): são bem comuns, presentes em muitos computadores (HD's, unidades de CD-ROM, CD-RW e DVD's, etc). No GNU/Linux, elas são identificadas como /dev/hdxy, onde "x" é a letra que representa o disco, e "y" é o número da partição. Quando não houver partições serão identificados apenas como /dev/hdx, sendo "x" a letra que representa o disco. - Discos SCSI (Small Computer System Interface): são discos de alto desempenho, utilizados em servidores onde a velocidade na leitura e gravação de dados é de suma importância (HD's, pendrives, unidades de CD-RW, gravadoras de DVD, etc). Essas unidades são referenciadas como /dev/sdxy, sendo "x" a letra que indica o disco e "y" o número da partição. Quando não houver partições serão identificados apenas como /dev/sdx, sendo "x" a letra que representa o disco. 9 Linux Discos: - Unidades de disquete: também conhecidas como "floppy", as unidades de discos flexíveis não são mais utilizadas. Eram referenciadas como /dev/fdx, onde "x" é o número da unidade de disquete, começando por 0. 10 Linux Discos: 11 Linux Partições: Tipos - As partições são divisões lógicas existentes no disco rígido, indicando onde começa e onde termina um sistema de arquivos. Um HD pode ser dividido em várias partições, e cada partição será tratada com se fosse um dispositivo à parte. Dividem-se em: 1) Primárias: em um HD deve haver no mínimo uma e no máximo quatro partições primárias. Se existirem quatro partições primárias, nenhuma outra partição poderá existir neste disco. Normalmente, partições de SOs. 2) Estendidas: são partições primárias especiais, que ao invés de receber um sistema de arquivos abriga partições lógicas. Num disco pode existir no máximo uma partição estendida. 3) Lógicas: são as partições criadas dentro das partições estendidas. Essas partições, assim como as primárias, recebem sistemas de arquivos. Dentro de uma partição estendida podem existir no máximo 12 partições lógicas. 12 Linux Partições: Tipos - Partições primárias são numeradas de 1 a 4 (estendida somente pode ser a de número 4). As lógicas são numeradas de 5 em diante. - Partições primárias podem receber dados e realizar boot. - Partições estendidas apenas abrigam partições lógicas. Não recebem dados diretamente e não propiciam boot. Cada HD só pode ter uma partição estendida e esta é tratada como primária. Partições: SWAP - Para a instalação básica de um sistema GNU/Linux é ideal pelo menos duas partições: uma principal, onde será instalado o sistema, e uma partição swap, conhecida também como área de troca. Sua função é funcionar como memória virtual. - A partição swap deve ser dimensionada de acordo com a quantidade de memória RAM instalada e a carga de trabalho da máquina. 13 Linux MBR (Master Boot Record): - Também conhecido como ms-dos é o padrão mais antigo suportado pela BIOS. - É preciso primeiro formatar o disco antes de poder instalar qualquer SO. Existem para isso vários programas de particionamento, como o qtparted, gparted, cfdisk e outros. - Os programas de particionamento salvam o particionamento na tabela de partição, gravada no início do HD. Esta tabela contém informações sobre o tipo, endereço de início e final de cada partição. Depois do particionamento, vem a formatação de cada partição, onde você pode escolher o sistema de arquivos que será usado em cada uma (EXT3, EXT4, FAT, NTFS, etc). 14 Linux MBR (Master Boot Record): - Ao instalar o SO é gravado mais um componente: o gerenciador de boot, responsável por carregar o sistema durante o boot. - Tanto o gerenciador de boot quanto a tabela de particionamento do HD são salvos no primeiro setor do HD (a famosa trilha MBR), que contém apenas 512 bytes. Destes, 446 bytes são reservados para o setor de boot, enquanto os outros 66 bytes guardam a tabela de partição e os números mágicos (55AA determina que há um boot loader). - Ao trocar de SO, você geralmente subscreve a MBR com um novo gerenciador de boot, mas a tabela de particionamento só é modificada ao criar ou deletar partições. Caso, por qualquer motivo, os 64 bytes da tabela de particionamento sejam sobrescritos ou danificados, você perde acesso a todas as partições do HD. - O HD fica parecendo vazio, como se tivesse sido completamente apagado. Apesar disso, é quase sempre possível recuperar as partições (e os dados dentro delas) usando um programa de recuperação, como o testdisk. 15 Linux MBR (Master Boot Record): - Para manter dois ou mais SO instalados no mesmo computador é necessário instalar um boot manager, um pequeno programa que ficará residente na trilha MBR e será carregado cada vez que o micro é ligado. O boot manager exibe então uma tela perguntando qual SO deve ser inicializado. A maior parte dos sistemas operacionais atuais trazem algum boot manager. O Windows traz o NTLDR, que permite o dual boot com versões de Windows, enquanto no Linux temos o LILO e o GRUB, que podem ser usados para combinar Linux e Windows, ou mesmo várias versões diferentes do Linux, de acordo com a configuração. Existem ainda produtos comerciais, como o BootMagic, que faz parte do PartitionMagic. 16 Linux GRUB: 17 Linux GPT (Guid Partition Table): - O sistema MBR foi substituído por GPT. O MBR suporta discos com até 2^32 setores (2 TB). O GPT suporta discos com até 4 ZB (zettabytes = 1.073.741.824 TB). - Computadores mais recentes vêm com um firmware de substituição para o antigo sistema BIOS chamado UEFI (interface Unified Extensible Firmware), e o GPT faz parte dopadrão UEFI. - GPT suporta até 128 partições primárias. - O MBR ocupa 1 setor. O GPT ocupa 34 setores. - O GRUB, que é responsável pela gerência de boot no GNU/Linux, normalmente, se instala no MBR ou no GPT. 18 Linux Questão 01: O MBR, um programa utilizado em HDs divididos em partições, bem como em máquinas com mais de um sistema operacional, permite que, durante sua inicialização, seja escolhido o sistema operacional a ser utilizado primeiramente, processo denominado dual boot. Certo. Errado. 19 Linux Questão 02: Grub é a ferramenta que realiza o procedimento de gerenciador de boot no Linux Ubuntu Desktop 12.10. Certo. Errado. 20 Linux Questão 03: Ao instalar o Linux, é necessário gravar informações no master boot record, que fazem referência aos arquivos encarregados de inicializar o sistema operacional. Certo. Errado. 21 Linux Questão 04: Em Linux, as partições são conceitualmente distintas e separadas umas das outras, entretanto /dev/sda é o arquivo de dispositivo de bloco do disco, essencialmente uma imagem do disco inteiro. Assim, comandos em nível de usuário podem acessar o disco diretamente por meio desse arquivo. Certo. Errado. 22 Linux Questão 05: Na montagem de uma mídia do tipo CD-ROM, não se deve indicar apenas o nome do dispositivo, como, por exemplo, /dev/sda, sendo necessário informar, ainda, o número da partição, como, por exemplo, /dev/sda1. Certo. Errado. 23 Linux Filesystems: - Um sistema de arquivos é a estrutura usada pelo computador para organizar dados em um disco rígido. A forma como os dados serão gravados é um problema do filesystem para isso possuem uma área de dados e uma área de controle (metadados). Cada SO decide a melhor maneira de armazenar os dados no disco. Contém um conjunto de estruturas lógicas e rotinas, que permitem ao SO controlar o acesso a um dispositivo de armazenamento. - É o responsável pelo gerenciamento de arquivos (estrutura, identificação, acesso, utilização, proteção e implementação). Assim sendo, todo SO precisa de um sistema de arquivos para lhe fornecer a estrutura que permita ler, gravar, executar, nomear e apagar arquivos (HD, cartão de memória, pen drive, CD, etc). Portanto, toda e qualquer manipulação de dados em uma mídia (memória não-volátil) necessita de um sistemas de arquivos para que essas ações sejam possíveis. 24 Linux Filesystems: - Para que um sistema de arquivos seja manipulado por um SO é necessário uma preparação que consiste na formatação física. Este processo, divide os discos em trilhas (caminhos circulares) e setores (blocos físicos, ou seja, subdivisão de cada trilha, com normalmente 512 bytes). Em seguida deve-se realizar uma formatação lógica que consiste na instalação do sistemas de arquivos no dispositivo de armazenamento. - Os arquivos são salvos no disco em partes aleatórias, ou seja, os blocos lógicos (clusters) estão em posições diferentes (clusters variam de 512 bytes a 64 KB). Portanto, é necessário uma tabela para indicar cada bloco lógico. Dessa forma, quando for acessado um setor, primeiramente é descoberto em qual cluster esse setor se encontra. - Arquivo: menor unidade do sistema de arquivos. Contém a organização lógica para armazenamento de dados e de programas. - Diretório: contém a organização e informações sobre arquivos. - Partição: disco lógico obtido a partir de um disco físico. 25 Linux Filesystems: - Atualmente, o NTFS (New Technology File System) é o sistema de arquivos padrão do Windows, enquanto o EXT4 é o do Linux. - Uma forma de verificar quais os sistemas de arquivos que o seu Linux suporta, basta verificar o conteúdo do arquivo /proc/filesystems. - Já o suporte para sistemas de arquivos pode ser obtido através de módulos de kernel carregáveis no diretório /lib/modules/XXX/kernel/fs, onde XXX é a versão do kernel. - O filesystem é criado durante a “formatação” da partição de disco (Ex: o comando mkfs.ext3). Após a formatação toda a estrutura para leitura/gravação/permissões de arquivos e diretórios pelo SO estará pronta para ser usada. Normalmente este passo é feito durante a instalação de uma distribuição GNU/Linux. - O superbloco é um bloco especial (contido em cada partição) que contém informações sobre o filesystem, tais como: tipo, status, tamanho e as estruturas de metadados. 26 Linux INODE: Essa estrutura é responsável por conter informações sobre seus arquivos e diretórios: - Permissões de acesso; - Identificação dos donos dos arquivos; - Data e hora do último acesso e alterações; - Tamanho; e - Ponteiros para o arquivo em si (links). Ao ler qualquer arquivo ou diretório, o kernel trata de ler primeiramente o INODE do arquivo para depois chegar ao arquivo propriamente dito. Ao ler essa estrutura, são checadas as permissões e em caso de negada é retornada a famosa mensagem de "Permission Denied", caso contrário o procedimento segue normalmente. Para visualizar os inodes dos seus arquivos, basta usar o parâmetro -i no comando ls. Exemplo: $ ls -i 231362 exerc.txt 274305 guardar.log 27 Linux INODE: - Quando usamos o comando "ln -s" estamos criando um link simbólico para um determinado arquivo. Nesse tipo de link é criado um tipo de arquivo especial que contém somente o caminho ou o nome do arquivo original (atalho). - Vamos criar um link simbólico para o arquivo exerc.txt que chamaremos de exercicio1: $ ln -s exerc.txt exercicio1 $ ls -lhi 231362 -rw-r--r-- 1 slaypher slaypher 293 2007-06-11 19:58 exerc.txt 257637 lrwxrwxrwx 1 slaypher slaypher 9 2007-06-19 00:28 exercicio1 -> exerc.txt 274305 -rw-r--r-- 1 root root 1.1K 2007-05-04 02:23 guardar.log - A letra "l" está definida no nosso exercício1, indicando que ele é um link. O tamanho desse link é apenas 9 bytes. Esse link possui um inode diferente do arquivo original, ou seja, trata-se oficialmente de um arquivo diferente, mas que serve como "apontador" para aquele que está descrito dentro dele. 28 Linux INODE: - Agora vamos criar um hard link usando o seguinte comando: $ ln exerc.txt exercicio2 $ ls -lhi 282450 -rw-r--r-- 2 slaypher slaypher 293 2007-06-19 00:35 exerc.txt 257637 lrwxrwxrwx 1 slaypher slaypher 9 2007-06-19 00:28 exercicio1 -> exerc.txt 282450 -rw-r--r-- 2 slaypher slaypher 293 2007-06-19 00:35 exercicio2 274305 -rw-r--r-- 1 root root 1.1K 2007-05-04 02:23 guardar.log - Observe agora que o link exercicio2 e o nosso arquivo original exerc.txt possuem o mesmo inode, então trata-se exatamente do mesmo arquivo. - Com isso podemos criar em diretórios distintos hard links para um mesmo arquivo, mas que tenham permissões diferentes para cada usuário, definindo políticas bem específicas sobre um determinado arquivo sem ter que ficar enviando cópias para cada usuário após uma mudança, por exemplo. 29 Linux Journaling: Características - Consiste em recursos avançados de recuperação de dados em casos de desastres e falhas (registro de ações). Sistemas que não possuem "journal" são mais suscetíveis à falhas e perdas de dados. - Os sistemas de arquivos com suporte a "journal" são recomendados por aumentarem a disponibilidade (High Availability - HA) em servidores GNU/Linux. - O sistema de journaling grava qualquer operação que será feita no disco em uma área especial chamada “journal”, assim se acontecer algum problema durante alterações no disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operação. - Após uma falha de energia, por exemplo, o journal é analisado durante a montagem do sistema de arquivos e todas as operações que estavam sendo feitas no disco são verificadas. Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas. O retorno do servidor é praticamente imediato, garantindo o rápido retorno dos serviços da máquina. 30 Linux Journaling: Modos de Operação - Há três modos de operação de journaling disponíveis: 1) Journal: grava em jornal todas as alterações nos metadados e nos dados, sendo o maislento de todos. O jornal é atualizado antes da escrita dos dados no filesystem, permitindo a plena recuperação em casos de queda de energia. Aumenta a confiabilidade, porém, afeta o desempenho. 2) Ordered: ao contrário do Journal, não faz jornal dos dados, mas somente dos metadados. Ainda, escreve os dados no disco ANTES de atualizar os metadados no jornal. Com isso, o ordered tenta ser mais rápido, liberando a memória antes de fazer o jornal. Esse método é menos seguro do que o Journal. É o modo padrão de operação do filesystem na maioria das distribuições GNU/Linux. 3) Writeback: haverá o jornal somente para os metadados. É o método mais rápido; no entanto, é muito inseguro. Os dados são escritos no disco DEPOIS dos metadados serem registrado no jornal. 31 Linux EXT2: Second Extended Filesystem - Vantagens: é o mais rápido (melhor desempenho) devido ao não uso de journaling, reduz a fragmentação interna permitindo um tamanho de blocos pequeno (gera impacto negativo no desempenho), usa a pré-alocação de blocos (até 8 blocos) quando um arquivo é aberto para gravação, e sempre que possível aloca blocos de forma a reduzir o movimento da cabeça de leitura e gravação. - Desvantagens: baixa tolerância a falhas e quantidade pré-determinada de i-nodes. - FSCK (File System Check) utilitário que permite checar a integridade dos dados em uma partição (efetua correções caso encontre problemas). - Suporta Arquivos até 2 TB e Partições até 4 TB. 32 Linux EXT3: Third Extended File System - O sistema de arquivos EXT3 é uma versão do EXT2. Ou seja, tem as mesmas características do EXT2, mas com suporte journaling. - A evolução tornou o EXT3 um sistema de arquivos muito estável e robusto. Suporte a arquivos de até 2 TB e partições de até 4 TB. - É possível converter um sistema de arquivos EXT2 para EXT3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos EXT3 para EXT2, removendo o suporte a journaling. - Suporta os três modos de operação de journaling: Journal, Ordered ou Writeback. - Quantidade ilimitada de i-nodes (auto incremento). 33 Linux EXT4: Fourth Extended File System - Apresenta aprimoramentos quanto a desempenho, escalabilidade e confiabilidade. Mais especificamente, o EXT4 suporta arquivos de até 16 TB e partições de até 1EB. - Alocação tardia: a postergação de escrita é um recurso que melhora a alocação de blocos com base no tamanho do arquivo. Isso reduz a fragmentação e melhora o desempenho. Porém, apresenta riscos de ocorrência de perda de dados. - Jornal checksumming: usa validação (verificação da integridade de dados) do journaling melhorando a confiabilidade (mais rápida verificação). - Uso de extensões: utilização de um conjunto de blocos contíguos físicos visando melhorar o desempenho e reduzir a fragmentação (fragmentação reduzida). - Compatibilidade com versões anteriores: ext2 e ext3. - Desfragmentação em tempo de execução. 34 Linux Formatando uma partição de disco: - Você pode formatar uma partição de disco usando o comando mkfs. mkfs.[filesystem] [opções] [dispositivo] mkfs –t [filesystem] [opções] [dispositivo] filesystem = ext2, ext3, ext4, msdos, etc. opções = -F[num] especifica o tipo de FAT 12, 16, e 32. -n[nome] atribui um nome de volume ao dispositivo. -c faz a pesquisa por bad blocks antes da criação do sistema de arquivo. Os setores defeituosos serão automaticamente marcados para não serem utilizados. dispositivo = identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes). • Formatando um pendrive com FAT16: mkfs.msdos -F 16 /dev/sdc • Formatando uma partição com EXT3: mkfs.ext3 –n AULAS -c /dev/sda1 35 Linux Montando e acessando uma partição de disco: - Você pode acessar uma partição de disco usando o comando mount. mount [dispositivo] [ponto de montagem] [opções] dispositivo = identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes). ponto de montagem = diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para montagem de um sistema de arquivo. opções = -t tipo do filesystem usado pelo dispositivo. Ex: Ext3, Ext4, NTFS, ReiserFS, etc. -r monta a partição somente para leitura. -w monta a partição como leitura/gravação. • Montando uma partição Windows (vfat) de /dev/sda1 em /mnt somente para leitura: mount /dev/sda1 /mnt -r -t vfat • Montando um pendrive detectado em /dev/sdc em /media: mount /dev/sdc /media -t ext4 36 Linux FSTAB: - Mostra os dispositivos disponíveis no sistema (isto não significa que estejam montados) e é usado pelo swapon e mount durante o processo de inicialização. O arquivo /etc/fstab permite que as partições sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem. O fstab tem a seguinte forma: Sistema_de_arquivos Ponto_de_Mont. Tipo Opções dump ordem /dev/sda1 / ext3 defaults 0 1 /dev/sda2 /boot ext3 defaults 0 2 /dev/sda3 /dos msdos defaults,noauto,rw 0 0 /dev/hdg /cdrom iso9660 defaults,noauto 0 0 • noauto: não monta os sistemas de arquivos durante a inicialização (útil para CD-ROM). • ro: monta como somente leitura. • user: permite que usuários montem o sistema de arquivos (não recomendado por motivos de segurança). 37 Linux FSTAB: • sync: recomendado para uso com discos removíveis (disquetes, zip drives, etc). • defaults: utiliza valores padrões de montagem que são rw, exec, auto, nouser, async. • dump: especifica a frequência de backup feita com o programa dump no sistema de arquivos. 0 desativa o backup. • ordem: define a ordem que os sistemas de arquivos serão verificados na inicialização do sistema. Se usar 0, o sistema de arquivos não é verificado. Após configurar o /etc/fstab, basta digitar o comando: mount /cdrom para que a unidade de CD-ROM seja montada. 38 Linux DF: Mostra o espaço livre/ocupado de cada partição. df [opções] -a: inclui sistemas de arquivos com 0 blocos. -h: mostra o espaço livre/ocupado em MB, KB, GB ao invés de blocos. -H: idêntico a -h mas usa 1000 ao invés de 1024 como unidade de cálculo. -k: lista em Kbytes. -l: somente lista sistema de arquivos locais. -m: lista em Mbytes. -T: lista o tipo de sistema de arquivos de cada partição -t tipo: lista somente sistema de arquivos do tipo definido. -x tipo: Não lista sistemas de arquivos do tipo definido. Exemplos: df, df -h, df -t vfat. 39 Linux DU: Mostra o espaço ocupado por arquivos e subdiretórios do diretório atual. du [opções] -a, --all: mostra o espaço ocupado por todos os arquivos. -b, --bytes: mostra o espaço ocupado em bytes. -c, --total: faz uma totalização de todo espaço listado. -D: não conta links simbólicos. -h, --human: mostra o espaço ocupado em formato legível por humanos (Kb, Mb) ao invés de usar blocos. -H: como o anterior mas usa 1000 e não 1024 como unidade de cálculo. -k: mostra o espaço ocupado em Kbytes. -m: mostra o espaço ocupado em Mbytes. -S, --separate-dirs: não calcula o espaço ocupado por subdiretórios. -x: não faz a contagem de diretórios em sistemas de arquivos diferentes do atual. Exemplo: du -h, du -hc. 40 Linux Questão 06: O sistema de arquivos ext2 utilizado no Linux para o armazenamento de dados em discos e partições contém, nativamente, o recurso de journally que assegura a integridade dos dados na gravação. Certo. Errado. 41 Linux Questão 07: O ext4 suporta sistema de arquivos superior a 16 terabytes. Certo. Errado. 42 Linux Questão 08: O Linux pode ser instalado na configuração dual boot com o Windows. Nesse caso, os arquivos da partição Windows podem ser lidos dentro do Linux. Certo. Errado. 43 Linux Questão 09: Os inodes armazenam informações sobre objetos no sistema de arquivo. Entre essas, incluem-se o tipo de objeto, a localização do conteúdo do objeto no disco, seu tamanho (se for o caso),a modificação mais recente feita no inode, a modificação mais recente no conteúdo do objeto, o último acesso ao objeto, o proprietário, o grupo e os privilégios de acesso. Certo. Errado. 44 Linux Questão 10: Há instalações do sistema Linux em que, no arquivo fstab, encontra-se uma relação de nomes de dispositivos e pontos de montagem. No Linux, um sistema de arquivos pode ser montado após a carga do sistema, usando-se o comando mount. Ao se montar um sistema de arquivos, pode-se restringir o acesso apenas à leitura. Certo. Errado. 45 Linux Questão 11: Assinale a opção correspondente ao comando que retira um sistema de arquivos da hierarquia de arquivos, no Linux. a) kill b) umount c) fdisk d) ps e) cfdisk 46 Linux Questão 12: No Linux, o sistema de arquivos utiliza uma estrutura hierárquica de diretórios. Uma outra característica desse sistema de arquivos é que dispositivos de hardware e diretórios também podem ser mapeados em nomes de arquivos. Certo. Errado. 47 Linux Questão 13: Ao ser realizada a formatação do sistema de arquivos para a instalação do sistema operacional, a área de swap apresenta um padrão próprio de sistema de arquivo. Certo. Errado. 48 Linux Questão 14: A criação de um link simbólico para um diretório é conveniente no caso de utilização frequente de um subdiretório que esteja vários níveis distante da raiz na árvore de diretórios. Certo. Errado. 49 Linux Questão 15: O comando $ ln -s /usr/doc/g77/DOC g77manual.txt cria um link simbólico e permite ao usuário do sistema referir- se a g77manual.txt em vez de /usr/doc/g77/DOC. Certo. Errado. 50 Linux Questão 16: Para criar o sistema de arquivos do tipo ext3 no dispositivo /dev/sdd1, deve-se executar o comando mkfs -t ext3 /dev/sdd1. Certo. Errado. 51 Linux Questão 17: O EXT4 suporta sistema de arquivos de um exabyte e possui checksum de jornal. Certo. Errado. 52 Linux Permissões: - Todo arquivo e diretório possui um conjunto próprio de permissões que determina quais tipos de ações são permitidas aos usuários do sistema. - Permissões padrões de sistemas Unix: Leitura (r) = 4 Gravação ou modificação do conteúdo (w) = 2 Execução (x) = 1 - As permissões são atribuídas individualmente ao(s): Dono do arquivo/diretório = u Grupo do arquivo/diretório = g Outros usuários do sistema que não se encaixam nos conjuntos anteriores = o - Permissões de um arquivo/diretório são atribuídas pelo seu dono ou super-usuário. - Arquivos/diretórios pertencem ao usuário/grupo que os criou. - Contudo, usuário/grupo dono de um arquivo pode mudar. 53 Linux Permissões: - As permissões de acesso protegem o sistema de arquivos Linux do acesso indevido de pessoas ou programas não autorizados. - Também impede que um programa mal intencionado apague um arquivo que não deve, envie arquivos especiais para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema. Dono: - É a pessoa que criou o arquivo ou o diretório. O nome do dono do arquivo/diretório é o mesmo do usuário usado para entrar no sistema GNU/Linux. Somente o dono e o root podem modificar as permissões de acesso do arquivo/diretório. - A identificação do dono também é chamada de UID (user id). 54 Linux Grupo: - Permite 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). - A identificação do grupo é chamada de GID (group id). Outros: - É a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo. Obs: A identificação de usuário ao qual o arquivo pertence é armazenada no arquivo /etc/passwd e do grupo no arquivo /etc/group. Estes são arquivos textos comuns e podem ser editados em qualquer editor de texto. 55 Linux Permissões: Obs: No conjunto de permissões, ‘-’ significa que aquele conjunto de usuários NÃO possui aquela permissão. No tipo de arquivo, ‘-’ significa arquivo regular. - Permissões tem significado distinto para arquivos e diretórios. 56 Linux Permissões: r: Permissão de leitura para arquivos. Caso for um diretório, permite listar seu conteúdo (através do comando ls, por exemplo). w: Permissão de gravação para arquivos. Caso for um diretório, permite a gravação de arquivos ou outros diretórios dentro dele. Para que um arquivo/diretório possa ser apagado, é necessário o acesso a gravação. x: Permite executar um arquivo (caso seja um programa executável). Caso seja um diretório, permite que seja acessado através do comando cd. 57 Linux Permissões: - As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do comando ls -la. As 3 letras (rwx) são agrupadas da seguinte forma: -rwxr-xr-- 1 linus Alunos 500 Sep 10 14:12 carta.txt Obs: A primeira letra diz qual é o tipo do arquivo. Caso tiver um "d" é um diretório, um "l" um link a um arquivo no sistema ou um "-" quer dizer que é um arquivo comum. drwxr-x--- 2 romulo user 1024 nov 4 17:55 exemplo 1) O dono do diretório (no caso romulo) tem a permissão para listar arquivos do diretório (r), gravar arquivos no diretório (w) e entrar no diretório (x). 2) Os usuários que pertencem ao grupo (user) tem a permissão somente para listar arquivos do diretório (r) e entrar no diretório (x) exemplo. 3) Os outros não tem a permissão para acessar o diretório. 58 Linux CHMOD: Modifica conjunto de permissões de arquivos e diretórios. chmod [opções] mode arquivo - O usuário precisa ser dono do arquivo para modificar suas permissões, a não ser que seja o root. Dono do arquivo pode mudar qualquer valor de permissão para qualquer conjunto de usuários (dono, grupo e outros) O conjunto de permissões pode ser representado de forma numérica ou simbólica através de letras e sinais. Opção ‘-R’ executa alteração das permissões recursivamente. - [quem] operação de permissão: representação simbólica 1) ‘quem’ pode conter os valores u (user), g (group), o (other) ou a (all). Na ausência de um valor, ‘a’ será o padrão (= combinação ugo). 2) ‘operação de permissão’ pode assumir os valores + (adicionar permissão), - (proibir permissão) ou = (igualar permissão). As permissões representam qualquer combinação dos tipos de acesso: r (leitura), w (escrita) e x (execução). 59 Linux CHMOD: Exemplos: chmod g+rw /tmp/programa.c chmod go-wx /home/joao/trabalho.sxw chmod u=rx /home/joao/projeto/* chmod u=rwx,go=rx /tmp/aquivos-joao/* chmod a=rwx /tmp/arquivos-joao/* - [quem] operação de permissão: representação numérica 1) Cada conjunto de permissões é representado por um número octal. Valores de 0 a 7 representam todas as combinações possíveis dos valores de leitura, escrita e execução. Cada dígito é a soma dos valores: 4 (leitura), 2 (escrita) e 1 (execução). Obs: o bit 1 ativa o valor do tipo de acesso e o bit 0 desativa. Exemplos: chmod 750 /tmp/carta.txt chmod 700 /home/linus/linux.sxw chmod 644 /usr/src/programa chmod 770 /projeto/fibonacci.c 60 Linux CHMOD: Qualquer usuário que tenha permissão de escrita para um diretório pode apagar todos os arquivos no diretório, independentemente de quem o possui. Obs: com o sticky bit ativado, apenas o proprietário de um arquivo poderá apagá-lo. 1) Incluir sticky bit: chmod +t NOME_DIRETORIO ou chmod 1777 2) Remover o sticky bit: chmod -t NOME_DIRETORIO 61 Linux SUID: Esse bit só pode ser aplicado em arquivos executáveis. Basicamente, quando esse bit está ativado o arquivo é executado com as permissões do dono dele e não com as permissões de quem executou. Por exemplo, um arquivo executável onde o dono é o root e o bit SUID está ativado, sempre roda com as permissões do root, ou seja, qualquer usuário pode executa-lo com privilégios de administrador. Obs: para ativar o SUID você digita o comando: chmod 4777 SGID: O bit SGID quando é aplicado em um arquivo executável, funciona de formaparecida com o SUID, mas é usada a permissão do grupo do arquivo e não do dono. Além disso, esse bit pode ser aplicado em diretórios, quando isso acontece, tudo que for criado dentro desse diretório terá o grupo dele, ou seja, se o diretório pai tem o bit SGID ativado, tudo que for criado dentro dele terá o seu grupo e não o do usuário que criou. Obs: para ativar o SGID você digita o comando: chmod 2777 62 Linux UMASK: Determina a máscara padrão que será utilizada na criação de novos arquivos/diretórios. umask valor Quando utilizado sem parâmetros, exibe o valor atual da máscara padrão. Em geral, sistemas Unix criam diretórios com as permissões 777 e arquivos com permissões 666. Sobre estes conjuntos o valor da máscara é aplicado. Comando determina as permissões que devem ser, obrigatoriamente negadas para o arquivo e/ou diretório criado. Exemplos umask 066 ls -l -rw------- 1 linus alunos 0 Sep 14 20:00 arq.txt 63 Linux CHOWN: Permite que o dono de determinado arquivo/diretório seja alterado. chown [opções] dono [arq1] [arq2] ... - Na maioria dos sistemas, alteração do dono somente pode ser feita pelo root. - A opção ‘-R’ executa a alteração de maneira recursiva. Exemplos: ls -l /tmp/documentos/Linux.sxw -rw------- 1 stallman alunos 0 Sep 14 20:00 Linux.sxw chown linus /tmp/documentos/Linux.sxw ls -l /tmp/documentos/Linux.sxw -rw------- 1 linus alunos 0 Sep 14 20:00 Linux.sxw 64 Linux CHGRP: Permite que o grupo de determinado arquivo/diretório seja alterado. chgrp [opções] grupo [arq1] [arq2] ... - A opção ‘-R’ executa a alteração de maneira recursiva. Exemplos: ls -l /tmp/documentos/Linux.sxw -rw------- 1 linus alunos 0 Sep 14 20:00 Linux.sxw chgrp progs /tmp/documentos/Linux.sxw ls -l /tmp/documentos/Linux.sxw -rw------- 1 linus progs 0 Sep 14 20:00 Linux.sxw 65 Linux GPASSWD e GROUPS: Permite adicionar ou remover de forma segura um usuário de um grupo. gpasswd -a / -d [usuário] [grupo] Exemplos: 1. Para adicionar o usuário "apolo" ao grupo "vendas": gpasswd -a apolo vendas 2. Para remover (deletar) o usuário "apolo" do grupo "infra": gpasswd -d apolo infra 3. Para consultar os grupos de um usuário: groups usuário 66 Linux Questão 18: Em sistemas Unix, a proteção de arquivos é efetuada pelo controle dos campos dono, grupo e universo, compostos de três bits (rwx), que definem se um usuário pode ler, escrever ou executar o arquivo. Certo. Errado. 67 Linux Questão 19: No Linux, quando um arquivo tem as permissões dr--rw-rwx, significa que ele é um diretório, o proprietário tem permissão de escrita, leitura e execução, os membros de seu grupo não possuem permissão de execução e todos os demais usuários podem somente ler. Certo. Errado. 68 Linux Questão 20: Por meio do comando chmod 600 notas.txt, atribui-se permissão de leitura e gravação para o usuário do arquivo notas.txt e permissão apenas de leitura para o grupo e outros usuários. Certo. Errado. 69 Linux Questão 21: No Linux, o comando chmod g+w *.java faz que todos os arquivos com extensão .java, no diretório corrente, sejam modificados com a permissão de escrita para os usuários com inicial g. Certo. Errado. 70 Linux Questão 22: No Linux, o comando chmod u+w xyz permite a escrita no arquivo xyz pelo proprietário, enquanto o comando chmod ug=rw,o=r xpto permite a leitura e a escrita no arquivo xpto pelo proprietário e pelo grupo, além de permitir a leitura aos demais usuários. Certo. Errado. 71 Linux Questão 23: Considere que o resultado a seguir tenha sido obtido após a execução do comando $ ls -ld ch3 test. -rw-rw-r-- 1 corr vend 4983 Jan 18 22:13 ch3 drwxr-xr-x 2 corr vend 1024 Jan 24 13:47 test Nesse caso, é correto afirmar que o arquivo ch3 tem permissão de leitura para todos os usuários do sistema operacional e de escrita apenas para os usuários owner e group; e que, para o diretório test, o usuário owner pode adicionar, mudar e apagar arquivos. Certo. Errado. 72 Linux Questão 24: No Linux, setar o sticky bit de um diretório em que todos podem escrever faz com que todos possam criar arquivos, mas apenas os proprietários possam alterá-los. Certo. Errado. 73 Sumário Introdução1 Desenvolvimento2 Conclusão3 74 Otimização dos Estudos 1) Faz-se necessárias “revisões” dos assuntos tratados ao longo da aula e caso necessário, consultas pontuais as referências sugeridas. Tudo isso visa aumentar a “curva de aprendizado”. 2) Treine os comandos vistos em aulas. Caso não tenha um ambiente utilize (mesmo que de forma limitada) o site https://bellard.org/jslinux/ para simular os comandos. 3) Será liberado em breve uma lista de questões relacionadas ao tema e que contempla questões de concursos em anos anteriores (MB, EB e FAB). 4) As dúvidas que ainda persistirem deverão ser retiradas por intermédio de fóruns ou e-mail do professor (romulodba@gmail.com). https://bellard.org/jslinux/ 75 Gabarito 01 Errado 02 Certo 03 Certo 04 Certo 05 Errado 06 Errado 07 Certo 08 Certo 09 Certo 10 Certo 11 B 12 Certo 13 Certo 14 Certo 15 Certo 16 Certo 17 Certo 18 Certo 19 Errado 20 Errado 21 Errado 22 Certo 23 Certo 24 Certo