Prévia do material em texto
O QUE É LINUX? UM BREVE HISTÓRICO - COMO SURGIRAM O GNU E O LINUX No ano de 1984, Richard Stallman iniciou o Projeto GNU, que tinha por objetivo criar um sistema operacional que fosse totalmente livre. Esse sistema operacional deveria ser compat´ıvel com outro sistema operacional - o UNIX (daı o nome GNU - GNU is Not Unix). No ano seguinte, Stallman fundou a FSF (Free Software Foundation), com o propo sito de eliminar restriço es de uso, co pia e distribuiça o de software. Por volta de 1991, o sistema GNU estava quase pronto, exceto pelo kernel. Stallman estava trabalhando no desenvolvimento de um kernel chamado Hurd. Ao mesmo tempo, o finlande s Linus Torvalds havia criado um kernel compatı vel com as aplicaço es do projeto GNU. A esse kernel foi dado o nome de Linux. SOFTWARE LIVRE E LICENÇA GPL Na Seça o anterior, foi dito que Stallman pretendia criar um sistema operacional livre e que o GNU/Linux era um exemplo de Software Livre. A definiça o de Software Livre, dada pela FSF e : Um software e considerado livre se atende as seguintes liberdades: 1. Executar o software com qualquer propo sito (liberdade nº 0). 2. Estudar o funcionamento do software e adapta -lo a s suas necessidades (liberdade nº 1). 3. Redistribuir (inclusive vender) co pias do software (liberdade nº 2). 4. Melhorar o programa e tornar as modificaço es pu blicas para que a comunidade inteira se beneficie da melhoria (liberdade nº 3). Ao contra rio do que as pessoas pensam, Software Livre (do ingle s Free Software) na o e sino nimo Figura 1.2: Richard Stallman de gratuito. O que ocorre e uma confusa o envolvendo a palavra “free” em ingle s, que significa tanto gratuito como livre. Mas o sentido que Stallman queria dar era de “livre”. De qualquer forma, a maioria dos softwares livres e distribuı da de forma gratuita. Grande parte dos projetos de software livre (incluindo o GNU/Linux) e distribuı da sob a GPL (General Public License - Licença Pu blica Geral), que e a licença idealizada por Stallman e que se baseia nas quatro liberdades citadas anteriormente. Com a garantia destas liberdades, a GPL permite que os programas sejam distribuı dos e reaproveitados, mantendo, pore m, os direitos do autor por forma a na o permitir que essa informaça o seja usada de uma maneira que limite as liberdades originais. DISTRIBUIÇÕES LINUX Distribuiço es Linux (tambe m chamadas Distribuiço es GNU/Linux ou simplesmente distros) consistem em “pacotes” de software baseados no kernel Linux que incluem determinados tipos de software para satisfazer as necessidades de um grupo especı fico de usua rios, dando assim origem a verso es dome sticas, empresariais e para servidores. Exemplos de Distribuiço es Linux: Ubuntu, Debian, Slackware, Fedora, Red Hat, Arch, Gentoo, Mandriva, openSUSE etc. Qual ´e a melhor distribuiça o ´e uma questa o de necessidade e gosto. CARACTERÍSTICAS DO LINUX • Núcleo do Sistema Operacional: Kernel • É Preemptivo – permite a interrupção de processos. • Sistemas de Arquivos: EXT3, EXT4, XFS, JFS • É um sistema Multiusuário • É um sistema Monolítico • O sistema é case sensitive; • Interpretadores de comandos: bash, ash, csh, tcsh, sh, etc • Interoperabilidade Linux x Windows: Samba • Gerenciadores de Arquivos: Dolphin, Konqueror, Nautilus, etc • Navegadores: Firefox e Google Chrome • Edição de imagem: GIMP; • Cliente de E-Mail: Thunderbird • Compactador e Descompactador: File Roller • Máquina Virtual: VirtualBox SHELL E BASH Em resumo, o shell do Linux e a interface onde o usua rio se comunica com o sistema, seja diretamente via comandos ou indiretamente por meio de scripts, facilitando a administraça o, automaça o e controle das funcionalidades do sistema. O principal shell do Linux e o Bash (Bourne Again Shell). Ele e o shell padra o na maioria das distribuiço es Linux e e amplamente utilizado devido a sua flexibilidade, poder e compatibilidade com uma vasta gama de scripts. AMBIENTES LINUX O terminal de comando, tambe m conhecido como CLI (Command Line Interface), permite que o usua rio interaja com o sistema por meio de texto, digitando comandos especı ficos para realizar aço es. Ele oferece uma maior flexibilidade e controle, ja que praticamente todas as operaço es podem ser executadas diretamente atrave s de comandos. Para usua rios experientes, o terminal e mais eficiente e ra pido, pois tarefas que poderiam exigir va rios passos em uma interface gra fica podem ser realizadas com alguns comandos. Ale m disso, o terminal exige menos recursos do sistema, uma vez que na o ha sobrecarga gra fica. No entanto, pode ser desafiador para iniciantes, pois requer conhecimento pre vio dos comandos e da sintaxe correta. Ja a interface gra fica, ou GUI (Graphical User Interface), e o modo em que o usua rio interage com o sistema por meio de elementos visuais, como janelas, ı cones e boto es, utilizando o mouse ou toques em telas sensı veis. Esse tipo de interaça o e geralmente mais intuitivo e acessı vel para usua rios com menos experie ncia, oferecendo uma experie ncia de uso mais amiga vel. Por outro lado, a interface gra fica exige mais recursos do sistema, ja que e necessa rio processar os elementos visuais. Embora seja mais fa cil de usar, pode ser mais lenta para realizar algumas tarefas em comparaça o ao terminal de comando. Ale m disso, as interfaces gra ficas permitem uma maior personalizaça o visual, com diferentes temas e ajustes este ticos. Atualmente, algumas das principais interfaces gra ficas utilizadas no Linux sa o o GNOME, que se destaca por sua simplicidade e facilidade de uso, sendo uma das mais populares e usada em distribuiço es como o Ubuntu; o KDE Plasma, conhecido por ser altamente personaliza vel e repleto de funcionalidades; o XFCE, uma interface leve e ra pida, ideal para ma quinas com hardware mais limitado; e o LXDE, que tambe m se destaca por ser muito leve e eficiente. Outras interfaces incluem o Cinnamon, que surgiu no Linux Mint e oferece uma experie ncia de desktop mais tradicional; o MATE, um fork do GNOME 2 que combina leveza com uma abordagem cla ssica de desktop; e o Pantheon, a interface gra fica do Elementary OS, conhecida por seu design minimalista e elegante, inspirada no macOS. Essas interfaces sa o amplamente compatı veis com a maioria das distribuiço es Linux, e o usua rio pode escolher a que melhor atende a s suas necessidades em termos de funcionalidade e performance. USUÁRIOS DO LINUX No Linux, a diferença entre um usua rio comum e o superusua rio esta relacionada ao nı vel de permisso es e controle que cada um possui sobre o sistema. O usua rio comum tem permisso es limitadas, o que significa que ele so pode acessar e modificar arquivos e direto rios que pertencem a ele ou que foram explicitamente compartilhados com ele. Esse tipo de usua rio na o tem permissa o para fazer mudanças que afetem o sistema como um todo, como instalar ou remover programas, alterar configuraço es de segurança ou acessar arquivos de outros usua rios, a menos que essas permisso es tenham sido concedidas. Por outro lado, o superusua rio, geralmente conhecido como root, tem controle total sobre o sistema. Esse usua rio pode fazer qualquer alteraça o, como instalar ou remover software, alterar arquivos de configuraça o do sistema, gerenciar outros usua rios, e acessar ou modificar qualquer arquivo no sistema. O superusua rio pode executar qualquer comando, o que lhe da poder absoluto, mas tambe m exige cuidado, pois um erro pode comprometer a integridade do sistema. No terminal, o usua rio comum e representado pelo caractere "$" ao final do prompt, enquanto o superusua rio (root) e representado pelo caractere "#". Esses caracteres indicam o nı vel de permisso es do usua rio que esta interagindo com o sistema. Para se tornar um superusua rio temporariamente, um usua riocomum pode usar o comando sudo antes de um comando, o que permite executar tarefas administrativas sem mudar permanentemente para o usua rio root. ESTRUTURA DE DIRETÓRIOS A estrutura de direto rios do Linux segue um padra o hiera rquico em formato de a rvore, com o direto rio raiz, representado por " / ", no topo. Todos os arquivos e direto rios do sistema esta o organizados sob esse direto rio raiz. Essa organizaça o e padronizada para facilitar a navegaça o e a gesta o dos arquivos do sistema, tanto para usua rios quanto para administradores. Aqui esta o os principais direto rios do Linux e suas funço es de forma resumida: • / (raiz ou root): É o diretório raiz do sistema, de onde todos os outros diretórios se ramificam. Tudo no sistema Linux começa a partir daqui. • /bin: Contém binários essenciais, ou seja, programas executáveis que são necessários para o funcionamento básico do sistema, como os comandos básicos (ls, cp, mv, etc.). • /boot: Armazena os arquivos de inicialização do sistema, como o kernel do Linux e o carregador de boot (por exemplo, GRUB). • /dev: Contém arquivos especiais que representam dispositivos de hardware, como discos, unidades de CD-ROM, e dispositivos de entrada e saída. • /etc: Armazena arquivos de configuração do sistema. Qualquer configuração global do sistema ou de serviços geralmente é encontrada aqui. • /home: É o diretório onde ficam os diretórios pessoais dos usuários comuns. Cada usuário tem um subdiretório dentro de /home, onde ficam seus arquivos pessoais e configurações. • /lib: Contém bibliotecas essenciais compartilhadas por binários do sistema que estão no diretório /bin e /sbin. • /media e /mnt: Diretórios usados para montar dispositivos externos, como unidades USB, discos rígidos externos e CDs/DVDs. O /media é mais usado para montagens automáticas. • /opt: Diretório para instalação de pacotes opcionais, ou seja, programas e pacotes de software adicionais que não fazem parte do sistema base. • /root: Diretório pessoal do superusuário (root). É similar ao /home, mas é exclusivo para o administrador do sistema. • /sbin: Contém binários essenciais de administração do sistema, usados principalmente por superusuários para tarefas de manutenção, como fdisk, ifconfig, etc. • /tmp: Diretório temporário usado pelo sistema e pelos aplicativos para armazenar arquivos temporários. É esvaziado regularmente pelo sistema. • /usr: Contém a maioria dos arquivos de programas de usuário, como binários, bibliotecas e documentação. Subdiretórios importantes incluem /usr/bin (binários de usuários), /usr/lib (bibliotecas) e /usr/share (arquivos compartilhados, como ícones e manuais). • /var: Armazena dados variáveis, que mudam frequentemente, como arquivos de log, e-mails, e diretórios para impressão. Essa estrutura e organizada de forma padronizada, o que facilita a navegaça o e administraça o em qualquer sistema Linux, independentemente da distribuiça o. COMANDOS DO LINUX Os comandos do Linux sa o instruço es que os usua rios digitam no terminal para interagir com o sistema operacional. Esses comandos permitem realizar diversas tarefas, como gerenciar arquivos, processos, usua rios, redes, entre outras funço es administrativas. O terminal no Linux e uma ferramenta poderosa, e os comandos sa o usados para automatizar tarefas, executar programas e configurar o sistema. Aqui esta o alguns dos principais comandos do Linux e suas funço es de forma resumida: 1. ls (listar arquivos e diretórios) Funça o: Exibe o conteu do de um direto rio. Exemplo: ls /home Exibe a lista de arquivos e pastas dentro do direto rio /home. 2. cd (mudar de diretório) Funça o: Navega entre direto rios. Exemplo: cd /var/log Altera o direto rio atual para /var/log, onde geralmente ficam os arquivos de log do sistema. 3. pwd (imprimir diretório de trabalho atual) Funça o: Exibe o caminho completo do direto rio em que voce esta atualmente. Exemplo: pwd Exibe algo como /home/user, indicando o caminho completo do direto rio atual. 4. cp (copiar arquivos ou diretórios) Funça o: Copia arquivos ou direto rios de uma localizaça o para outra. Exemplo: cp arquivo.txt /home/user/Documentos Copia o arquivo arquivo.txt para o direto rio /home/user/Documentos. 5. mv (mover ou renomear arquivos ou diretórios) Funça o: Move ou renomeia arquivos ou direto rios. Exemplo: mv arquivo.txt /home/user/Documentos Move o arquivo arquivo.txt para o direto rio /home/user/Documentos. Para renomear: mv arquivo.txt novo_nome.txt Renomeia arquivo.txt para novo_nome.txt. 6. rm (remover arquivos ou diretórios) Funça o: Remove arquivos ou direto rios. Exemplo: rm arquivo.txt Remove o arquivo arquivo.txt. Para remover um direto rio e seu conteu do: rm -r /home/user/Documentos Remove o direto rio Documentos e todo o seu conteu do. 7. mkdir (criar diretório) Funça o: Cria novos direto rios. Exemplo: mkdir /home/user/novo_diretorio Cria o direto rio novo_diretorio dentro de /home/user. 8. rmdir (remover diretório vazio) Funça o: Remove um direto rio vazio. Exemplo: rmdir /home/user/novo_diretorio Remove o direto rio novo_diretorio, desde que esteja vazio. 9. touch (criar arquivos vazios ou atualizar timestamp) Funça o: Cria arquivos vazios ou atualiza a data e hora de um arquivo. Exemplo: touch arquivo_novo.txt Cria um arquivo vazio chamado arquivo_novo.txt. 10. cat (exibir o conteúdo de arquivos) Funça o: Exibe o conteu do de um arquivo. Exemplo: cat arquivo.txt Exibe o conteu do de arquivo.txt diretamente no terminal. 11. nano (editor de texto no terminal) Funça o: Abre o editor de texto nano para editar arquivos diretamente no terminal. Exemplo: bash Copiar co digo nano arquivo.txt Abre arquivo.txt no editor de texto nano para ediça o. 12. chmod (alterar permissões de arquivos) Funça o: Altera as permisso es de arquivos ou direto rios. Exemplo: chmod 755 script.sh Define permisso es para que o arquivo script.sh seja executa vel pelo dono e legı vel por outros. 13. chown (alterar o dono de um arquivo ou diretório) Funça o: Altera o proprieta rio de arquivos ou direto rios. Exemplo: chown user:user arquivo.txt Altera o proprieta rio e grupo do arquivo arquivo.txt para o usua rio user. 14. ps (listar processos) Funça o: Exibe uma lista dos processos em execuça o. Exemplo: ps aux Lista todos os processos em execuça o no sistema com informaço es detalhadas. 15. kill (encerrar processos) Funça o: Encerra um processo usando seu ID. Exemplo: kill 1234 Encerra o processo com o ID 1234. 16. df (mostrar o uso do disco) Funça o: Exibe o espaço em disco usado e disponı vel nas partiço es. Exemplo: df -h Mostra o uso de disco em um formato mais legı vel (human- readable). 17. du (mostrar o uso de espaço por diretórios) Funça o: Mostra o uso de espaço em disco de um direto rio e seus subdireto rios. Exemplo: du -sh /home/user Exibe o espaço total utilizado pelo direto rio /home/user. 18. grep (procurar padrões em arquivos) Funça o: Pesquisa por padro es especı ficos dentro de arquivos. Exemplo: grep "palavra_chave" arquivo.txt Procura por todas as ocorre ncias de "palavra_chave" dentro de arquivo.txt. 19. find (localizar arquivos e diretórios) Funça o: Localiza arquivos e direto rios com base em crite rios de pesquisa. Exemplo: find /home/user -name arquivo.txt Procura por um arquivo chamado arquivo.txt dentro do direto rio /home/user. 20. tar (arquivar e desarquivar arquivos) Funça o: Agrupa e comprime arquivos em um u nico arquivo de arquivamento. Exemplo: tar -czvf arquivo.tar.gz /home/user/Documentos Compacta o direto rio /home/user/Documentos em um arquivo arquivo.tar.gz. SISTEMA DE PERMISSÕES No Linux, as permisso es de arquivos controlam quem pode ler, escrever ou executar arquivos e direto rios. O sistema de permisso es e essencial para garantira segurança e o controle de acesso dentro de um ambiente multiusua rio. Cada arquivo e direto rio tem permisso es atribuı das a tre s tipos de usua rios: o dono (owner), o grupo (group) e outros (others). Estrutura das Permissões As permisso es no Linux sa o representadas por um conjunto de 10 caracteres. Quando voce usa o comando ls -l para listar arquivos, vera algo como isto: -rwxr-xr-- Aqui esta a estrutura dessa saı da: 1. Tipo do arquivo: O primeiro caractere indica o tipo do arquivo: -: Arquivo comum d: Direto rio l: Link simbo lico 2. Permissões: Os pro ximos nove caracteres sa o divididos em tre s conjuntos, representando as permisso es para o dono, grupo e outros. Eles sa o organizados em grupos de tre s: r: Leitura (read) w: Escrita (write) x: Execuça o (execute) Exemplo de leitura: rwx: O dono do arquivo pode ler, escrever e executar o arquivo. r-x: O grupo pode ler e executar o arquivo, mas na o pode modifica -lo. r--: Outros podem apenas ler o arquivo, sem poder modifica -lo ou executa -lo. Neste exemplo: -rwxr-xr-- O dono tem permissa o de leitura, escrita e execuça o. O grupo tem permissa o de leitura e execuça o. Outros te m apenas permissa o de leitura. Como Funcionam as Permissões Permisso es de Arquivos: • Leitura (r): Permite ver o conteúdo de um arquivo. • Escrita (w): Permite modificar ou apagar o arquivo. • Execução (x): Permite executar o arquivo como um programa ou script. Permisso es de Direto rios: • Leitura (r): Permite listar o conteúdo do diretório. • Escrita (w): Permite criar, renomear ou apagar arquivos dentro do diretório. • Execução (x): Permite acessar (entrar) no diretório e, se combinado com leitura, listar os arquivos. Alterando Permissões Voce pode alterar as permisso es de arquivos e direto rios com o comando chmod. As permisso es podem ser alteradas de duas formas: notaça o simbo lica e notaça o nume rica. Notaça o Simbo lica: Usa letras para representar as permisso es que voce quer conceder ou remover. Exemplo 1: Adicionar permissa o de execuça o para o dono (u), grupo (g), e outros (o) de um arquivo: chmod ugo+x arquivo.txt Exemplo 2: Remover permissa o de escrita para o grupo: chmod g-w arquivo.txt Notação Numérica: Usa um sistema nume rico baseado em valores bina rios para definir permisso es. Cada permissa o tem um valor: r = 4 (leitura) w = 2 (escrita) x = 1 (execuça o) Esses valores sa o somados para formar as permisso es: 0: Sem permissa o 1: Execuça o 2: Escrita 3: Escrita e execuça o 4: Leitura 5: Leitura e execuça o 6: Leitura e escrita 7: Leitura, escrita e execuça o Exemplo: chmod 755 arquivo.txt: 7 (rwx) para o dono 5 (r-x) para o grupo 5 (r-x) para outros Proprietário e Grupo O dono e o grupo associados a um arquivo podem ser alterados com o comando chown (alterar dono) e chgrp (alterar grupo): chown: chown user arquivo.txt Altera o dono do arquivo arquivo.txt para user. chgrp: chgrp grupo arquivo.txt Altera o grupo associado ao arquivo arquivo.txt. Alteração das permissões através de letras: Para a definiça o de permisso es atrave s do modo “amiga vel” e necessa rio recorrer a letras e mais alguns sı mbolos. Para isso, produzi uma tabela auxiliar com tudo o que precisam de saber. Por exemplo, a letra ‘u’ indica que e dono, ‘g’ refere-se ao grupo, etc. Depois temos as permisso es de leitura, escrita e execuça o que sa o definidas atrave s das letras r,w e x respectivamente. Depois ha os operadores que nos permitem definir uma permissa o (‘+’) ou remover uma permissa o (‘-). Segue abaixo alguns exemplos de mudança de permissa o de um arquivo criado com o nome “pplware”. Para ver as permisso es do ficheiro podem usar o comando ls –l pplware • chmod u+rw pplware - dá permissões ‘r/w’(leitura e escrita) ao dono do ficheiro • chmod o-rwx pplware - retira todas as permissões aos “outros” • chmod a+rw pplware - dá permissões ‘r/w’ a todos (ugo) • chmod go-r pplware - retira a permissão ‘r’(leitura) ao grupo e outros As permisso es de arquivos sa o fundamentais para manter a segurança e o controle de acesso no Linux, garantindo que somente usua rios autorizados possam ler, modificar ou executar arquivos e direto rios.