APOSTILA LINUX USUÁRIO PARTE 1 - LINUX 1 Sumário 1. Linux........................................................................................................................................03 1.2 – Características..........................................................................................................03 1.3 – GPL..........................................................................................................................04 1.4 – Distribuições............................................................................................................04 1.5 – Diferenças entre o Windows e o Linux....................................................................06 2 – Sistema de Arquivos no Linux..............................................................................................08 2.1 – Arquivos....................................................................................................................08 2.2 – Sistema de Arquivos..................................................................................................08 2.3 – Estrutura básica de diretórios do Sistema Linux.......................................................09 2.4 – Conta.........................................................................................................................10 2.5 – Tipos de arquivos......................................................................................................10 2.6 – Acesso a arquivos......................................................................................................10 3 – Identificação de discos e partições em sistemas Linux......................................................11 4 – Permissões de acesso a arquivos e diretórios.......................................................................12 4.1 – Donos, grupos e outros usuários................................................................................12 4.2 - Tipos de Permissões de acesso...................................................................................12 4.3 - Etapas para acesso a um arquivo/diretório.................................................................13 4.4 – chmod........................................................................................................................13 4.4.1 - Exemplos de permissões de acesso:............................................................14 4.5 – chgrp..........................................................................................................................14 4.6 – chown........................................................................................................................15 4.7 - Modo de permissão octal...........................................................................................15 4.8 – umask........................................................................................................................16 5 – Comandos básicos do Sistema...............................................................................................17 5.1 – Ajuda e Documentação..............................................................................................17 5.2 – Instalação de pacotes via APT...................................................................................17 5.3 – Usuários e Grupos.....................................................................................................18 5.4 – Data e Hora................................................................................................................19 5.5 – Informações do Sistema.............................................................................................19 5.6 – Arquivos e Diretórios.................................................................................................20 5.7 – Sistema de Arquivos...................................................................................................23 5.8 Utilitários de Texto........................................................................................................23 5.9 Monitoramento de Acesso.............................................................................................24 5.10 – Administração de Usuários.......................................................................................25 2 1 – O Linux O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela Internet. Seu código fonte é liberado como Free Software (software livre), sob licença GPL, o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele não pode fechar o sistema para que seja usado apenas comercialmente. Isto quer dizer que você não precisa pagar nada para usar o Linux, e não é crime fazer cópias para instalar em outros computadores, nós inclusive incentivamos você a fazer isto. Ser um sistema de código aberto pode explicar a performance, estabilidade e velocidade em que novos recursos são adicionados ao sistema. O código fonte aberto permite que qualquer pessoa veja como o sistema funciona (útil para aprendizado), corrija alguma problema ou faça alguma sugestão sobre sua melhoria, esse é um dos motivos de seu rápido crescimento, do aumento da compatibilidade de periféricos (como novas placas sendo suportadas logo após seu lançamento) e de sua estabilidade. Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de última geração e mais antigos (a maioria deles já ultrapassados e sendo completamente suportados pelo sistema operacional). Este é um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com as máquinas que possui. 1.2 – Características – – – – – – – – – – – – – É livre e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste sistema operacional. Convivem sem nenhum tipo de conflito com outros sistemas operacionais instalados no mesmo computador. Multiusuário . Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS. Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM. Proteção entre processos executados na memória RAM Suporte a mais de 63 terminais virtuais (consoles) Modularização - O Linux somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado . Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware (queima do processador, placa mãe, etc. Não precisa de um processador potente para funcionar. O sistema roda bem em computadores 386Sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 32MB de RAM). Já pensou no seu desempenho em um Pentium, Xeon, ou Athlon? Suporte nativo a dispositivos SATA, PATA, Fiber Channel Suporte nativo a virtualização, onde o Linux se destaca como plataforma preferida para execução de outros sistemas operacionais. Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. 3 1.3 – GPL GPL, sigla de General Public License (Licença Pública Geral), é uma licença de software livre publicada pelo Projeto GNU com a intenção de permitir que software possa ser distribuído de maneira livre, utilizando a filosofia de deixar copiar tudo o que é software livre. As licenças do Projeto GNU têm o respaldo legal da constituição dos EUA, por terem sido publicadas pela Free Software Foundation, e são válidas em todos os países que aceitam o acordo internacional de respeito a patentes e direitos autorais. A GPL permite que programas sejam distribuídos e reaproveitados, mantendo, porém, os direitos do autor, e sem permitir que essa informação seja usada de maneira indevida. A licença não permite, por exemplo, que o código seja apoderado por outra pessoa, ou que sejam impostos sobre ele restrições que impeçam que ele seja distribuído da mesma maneira. Em termos gerais, a GPL baseia-se nas 4 liberdades: 1. A liberdade de executar o programa, para qualquer propósito (liberdade no. 0) 2. A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade numero 1). Acesso ao código-fonte é um pré-requisito para esta liberdade. 3. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade numero 2). 4. A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade numero 3). 1.4 – Distribuições Conectiva É a distribuição brasileira de maior destaque e com certeza a distribuição brasilira mais usada. Não é difícil encontrar o pacote Conectiva Desktop ou Servidor em uma loja de software. Até mesmo em outros países da América Latina essa distribuição tem seu destaque. Existem escolas que são credenciadas a darem cursos e certificados reconhecidos pela Conectiva SA, o que ajuda muito na hora de procurar um emprego. Toda sua documentação está em Português. Red Hat É a distribuição mais famosa de todas, o que fez com que várias distribuições pelo mundo se baseassem nela, inclusive a principal distribuição brasileira, a Conectiva, que em seu início era apenas uma recompilação do Red Hat. A Red Hat criou o o sistema de empacotamento rpm, que é mais ou menos como o setup do Windows e tem a denominação Red Hat Package Manager. Sendo assim, se você observar o CD da sua distribuição e ele for composto por ícones denominados RPMs, significa que você está usando uma distribuição baseada no Red Hat. Essa distribuição também foi responsável por criar ferramentas que o auxiliam na detecção de placas de som, como o sndconfig, configuração de placas de vídeo, como Xconfigurator e configuração geral, com o Setup incluindo configuração de vídeo, som, mouse, teclado, timer, impressoras, tudo em uma única ferramenta. 4 Também possui um ótimo gerenciador do sistema chamado linuxconf, seria mais ou menos como o painel de controle do Windows, você cria usuários, administra sua estação, seu servidor web, e muito mais. Mandrake É a distribuição preferida e a mais indicada para quem está iniciando em Linux. A empresa Francesa MandrakeSoft aposta num sistema com muitas ferramentas que vão auxiliar quem está iniciando em Linux. Esta distribuição é baseada no Red Hat e tem um grande número de adeptos. Se diferencia das outras distribuições por ter suas próprias ferramentas de configuração, como Harddrake, para configuração de dispositivos, DrakX, para configuração de vídeo e DrakFont, para buscar fontes do Windows. Slackware É uma distribuição muito usada por quem já adquiriu uma certa experiência com o Linux. Os profissionais adoram esse Linux, por ele ser praticamente todo configurado em modo texto, o que faz com o que as pessoas conheçam a fundo o seu sistema. Se destaca também por ser um ou se não o mais estável dos Linux atuais. Debian É uma das únicas distribuições que não é mantida por uma empresa. O Debian é todo desenvolvido por voluntários e estudantes de uma universidade. Foi inovador criando uma ferramenta chamada apt-get, que atualiza o sistema resolvendo todas as dependências de pacotes. Esta ferramenta inclusive está presente na distribuição brasileira Conectiva. Kurumin É uma distribuição linux baseada no Knoppix e que mantém o mesmo sistema de detecção de hardware desta distribuição. Todavia, o Kurumin foi projetado para que fosse bem mais compacto, cabendo, assim, em suas versões iniciais, em um miniCD de 80 mm. Inicialmente o seu desenvolvedor, Carlos E. Morimoto, deu início ao projeto apenas para fins de uso pessoal; porém, ao anunciar a sua criação no seu site, muita gente demonstrou interesse pelo projeto, o que incentivou Morimoto a levar o projeto adiante. Segundo o sítio DistroWatch, Kurumin é a distribuição Linux mais popular no Brasil. O nome kurumin vêm da Língua tupiguarani, onde "curumim" significa “menino”, “criança”, em uma alusão a uma distribuição Linux mais leve e simples, para iniciantes no sistema. A letra k no início da palavra é uma referência ao Knoppix. O logotipo do Kurumin é um pingüim com aspecto infantil: pequeno, simpático e mais magro do que o Tux, o pingüim que representa o Linux em si. Outras características notáveis são o cocar e suas cores, que representam a Bandeira do Brasil. Ubuntu O Ubuntu é uma distribuição Linux baseada em Debian, com edições regulares (a cada seis meses), com uma grande atenção nos utilizadores e na facilidade de uso e um comprometimento com suporte e actualizações de segurança durante 18 meses para cada edição. O Ubuntu usa as versões mais recentes do Gnome e uma selecção de software (para desktop e servidores) num simples CD (ou DVD) de instalação. Estão também disponíveis outros ambientes de trabalho, em 5 geral suportados pela comunidade como é o caso do KDE. Existem também CD/DVD de instalação focados para um ou outro segmento de utilizadores, como é o caso do Edubuntu. Com uma instalação base Ubuntu pode facilmente converter entre diferentes ambientes de trabalho ou aplicações instaladas por omissão. 1.5 – Diferenças entre o Windows e o Linux Acesso completo versus Sem acesso Provavelmente, a maior diferença entre o Windows e o Linux, é que no Linux você tem acesso completo ao código fonte. Isso ocorre porque o Linux está sob a GNU Public License (GPL), e todos os usuários, de todos os tipos, podem acessar (e alterar) o código do kernel do sistema. Você quer fazer o mesmo com o Windows? Boa sorte. A menos que você faça parte de um seleto grupo de pessoas, você nunca irá botar os olhos no código do Windows. Liberdade de licença versus Restrições de licença Com um sistema Linux, licenciado sob a GPL, você é livre para modificar, lançar novamente e até vender os aplicativos que você usa (desde que mantenha o código fonte disponível). Além disso, com a GPL, você pode baixar uma simples cópia de uma distribuição Linux e instalar em quantas máquinas você queira. Com a licença Microsoft, você não pode fazer nenhum dos dois. Você é obrigado a usar apenas o número de licenças compradas. Se comprou 10 licenças do Windows para sua empresa, por exemplo, só pode instalar o Windows legalmente, em 10 máquinas. Linha de comando versus Sem linha de comando Não importa onde a evolução do Linux chegue, ou quão fantástico o ambiente desktop possa se tornar, a linha de comando será sempre uma ferramenta imprescindível para propósitos administrativos. É difícil imaginar uma máquina com Linux sem a linha de comando. Entretanto, para o usuário final, já é algo bastante próximo da realidade. Você pode usar o Linux por anos sem jamais tocar na linha de comando, assim como você faz no Windows. E embora você possa utilizar a linha de comando no Windows, ela não será tão poderosa quanto é no Linux. A Microsoft tende a esconder o prompt de comando do usuário. A menos que você acesse o “executar” e entre com “cmd”, o usuário provavelmente nem saberá que a linha de comando existe no Windows. E mesmo que ele consiga acessá-la, qual é a sua real utilidade? Instalação centralizada de aplicativos vs. Instalação descentralizada Com qualquer distribuição Linux atual, você tem um local onde é possível procurar, adicionar ou remover softwares. São os gerenciadores de pacotes, como o Synaptic. Com ele, você pode abrir uma única ferramenta, procurar por uma aplicação (ou um grupo de aplicações) e instalar sem fazer qualquer busca na internet. O Windows não tem nada parecido com isso. No Windows, você precisa saber onde encontrar o software que você pretende instalar, baixar o software (ou colocar o CD no drive), e executar setup.exe ou install.exe. Por muitos anos pensamos que instalar aplicativos no Windows era mais fácil que no Linux, e por muitos anos estavamos certos. Não agora. Instalar aplicativos no Linux é simples, indolor e centralizado. 6 Flexibilidade versus Rigidez É comum compararmos Linux e Windows a outros hábitos do cotidiano. Carros e motos, casas e apartamentos… mas vamos tentar nos ater ao desktop em si. A não ser que você pretenda pagar para instalar um aplicativo de terceiros, para alterar a aparência, por exemplo, no Windows você terá que se contentar com o que a Microsoft decidiu que é bom pra você. No Linux, você pode confortavelmente fazer seu desktop ter o “look and feel” que é a sua cara. Você pode ter exatamente o que você quer. Desde um ambiente gráfico simples, como o Fluxbox, até uma experiência 3D completa com o Compiz. Custo por software No linux a maioria distribuições estão disponíveis gratuitamente, já no Windows entre R$ 300,00 e R$ 700,00, de acordo com a versão desejada. Muitos dos softwares, utilitários e jogos disponíveis no Linux são freeware e/ou código-fonte aberto. Mesmo programas complexos como o Gimp, OpenOffice, StarOffice, e o Wine estão disponíveis gratuitamente ou a baixo custo. Embora o Windows tenha softwares, utilitários e jogos de graça, a maioria dos programas custam entre US$ 20,00 e US$ 200,00+ por cópia. Segurança Linux é e sempre foi um sistema operacional muito seguro. Embora ele ainda possa ser atacado, quando comparado ao Windows é muito mais seguro. Embora a Microsoft tenha feito grandes melhorias ao longo dos anos com a segurança em seu sistema operacional, o Windows continua a ser mais vulnerável a vírus e outros ataques. 7 2 – Sistema de Arquivos no Linux 2.1 – Arquivos Conceitualmente, arquivos são mecanismos de abstração que fornece uma forma de armazenar e recuperar informações em disco. A característica mais importante de qualquer mecanismo abstração é a forma de identificar os objetos como os quais o mecanismo trata. Quando um processo cria um arquivo, é preciso que tal arquivo receba um nome, normalmente dado pelo processo. Quando tal processo termina sua execução, o arquivo continua a existir, podendo ser acessado por outros processos, usando para tanto o nome atribuído ao arquivo. O Linux faz distinção entre nome maiúsculos e minúsculos. Normalmente um nome de arquivo é composto de nome e uma extensão, separada por ponto no Linux, o tamanho da extensão, se houver, fica a critério do usuário, e uma arquivo pode até ter duas ou mais extensões, exemplo: prog.c.Z. Não há limite de números de caracteres utilizados para dar nome a arquivos. O Sistema Operacional Linux, olha o arquivo como uma sequência de byte, sem nenhuma estrutura, isto dá uma flexibilidade espantosa ao sistema de arquivo. Os programas de usuários, podem colocar o que desejarem nos arquivos e identificá-los da forma que lhe for mais conveniente, o Linux não influência em nada nesta processo de identificação. 2.2 – Sistemas de Arquivos - ext2 : é um sistema de arquivos muito rápido pelo fato de não possuir um journal, sendo assim os dados são gravados diretamente. Quando ocorre algum crash, o fsck é acionado para averificação do sistema, sendo às vezes um processo lento e nem sempre com boas expectativas ocasionado quase sempre perda de dados. - ext3 : foi desenvolvido pelo doutor Stephen Tweedie e colaboradores na Red Hat, ele seria um ext2 com recurso de journaling e passou a ser suportado na versão 2.4 do Linux. No ext3 o journal usa uma camada chamada JDB (Journaling Block Device), que utiliza um método diferente na recuperação de dados, ao invés de armazenar bytes que devem ser gravados, ele armazena blocos modificados do sistema de arquivos na memória para poder rastrear as operações que ficaram pendentes, a vantagem é que ele não precisa lidar com a complexidade de gravar bytes no journal e a desvantagem é que o journal acaba ficando maior. - ReiserFS : criado por Hans Reiser especialmente para o Linux, atualmente ela é patrocinada pela SuSe e mantida pela empresa NameSys (sendo o filesystem padrão das distribuições GNU/Linux da SuSe), o ReiserFS não utiliza blocos de tamanho fixo, mas ajusta o tamanho de acordo com o arquivo, ele e muito rápido ao ler arquivos menores. O ReiserFS possui suporte a arquivos maiores que 2GB, o acesso a árvore de diretórios é mais rápido que o ext3, utiliza uma eficiente estrutura de dados chamada "balanced tree" ou árvore equilibrada pois, trata toda a partição como se fosse uma única tabela de banco de dados contendo diretórios, arquivos e arquivos de metadata, isso aumenta o desempenho de aplicativos que trabalham com arquivos pequenos (são lidos em apenas um I/O do HD), em um sistema de arquivo como ext2 o espaço no disco e alocado em blocos que variam de 512 a 4096 bytes ou até maior, se o arquivo exceder um múltiplo exato do tamanho do bloco ocorrerá desperdício de espaço no disco o ReiserFS não aloca em espaços fixos ou blocos ele aloca o tamanho exato que o arquivo precisa. O ReiserFS infelizmente não trabalha perfeitamente com o sistema de arquivos de rede NFS (Network File System), existem alguns patches para resolver o problema, mas eles 8 não o resolvem completamente. - JFS (Journaling File System) : criado pela IBM para uso em servidores corporativos, teve seu código liberado. O sistema de arquivos JFS também usa a estrutura Inode para armazenar a localização dos blocos de cada arquivo nas estruturas físicas do disco, a versão JFS2 armazena esses Inodes em uma árvore binária para acelerar o acesso a essas informações, esses blocos podem variar de 512 a 4096 bytes, a alocação dos Inodes é feita conforme vai sendo necessário. - XFS: desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte, o XFS possui vários patches e alguns bugs, mas é um sistema de arquivos muito rápido na gravação, possui um desfragmentador para arquivos. 2.3 – Estrutura básica de diretórios do Sistema Linux O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS (Filesystem Hierarchy Standard): /bin Contém arquivos programas do sistema que são usados com freqüência pelos usuários. /boot Contém arquivos necessários para a inicialização do sistema. /cdrom Ponto de montagem da unidade de CD-ROM. /media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em distribuições mais novas). /dev Contém arquivos usados para acessar dispositivos (periféricos) existentes no computa dor. /etc Arquivos de configuração de seu computador local. /floppy Ponto de montagem de unidade de disquetes /home Diretórios contendo os arquivos dos usuários. /lib Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel. /lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck.ext2. Cada partição possui seu próprio diretório lost+found. /mnt Ponto de montagem temporário. /proc Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos. /root Diretório do usuário root. /sbin Diretório de programas usados pelo superusuário (root) para administração e controle do 9 funcionamento do sistema. /tmp Diretório para armazenamento de arquivos temporários criados por programas. /usr Contém maior parte de seus programas. Normalmente acessível somente como leitura. /var Contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema, e-mails, spool de impressora, cache, etc. 2.4 – Conta É uma senha que é aberta pelo administrador do sistema (denominado de root) onde o usuário identificasse para o computador, que então dá acesso ao seu diretório de entrada, onde você pode executar os comandos permitidos a sua senha. No S.O padrão Unix, a conta é obrigatória para todos. 2.5 - Tipos de arquivos O Linux suporta arquivos regulares, arquivos de diretório, arquivos especiais de caracteres e arquivos especiais blocados. Os arquivos regulares são aqueles que contém informações de usuários. Arquivos diretórios são arquivos usado na manutenção do sistema de arquivo. Arquivos especiais de caracteres estão diretamente ligado à entrada/saída e são usados para dispositivos seriais de entrada/saída, tais como terminais, impressoras e rede. Os arquivos especiais blocados são usado modelar dispositivos. 2.6 – Acesso a arquivos O Sistema Operacional Linux, bem como os demais SO, trata o acesso a arquivos de forma radômica, ou seja, seus byte ou registros podem ser lidos em qualquer ordem. 10 3 – Identificação de discos e partições em sistemas Linux No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, usb, portas de impressora, modem, etc) são identificados por um arquivo referente a este dispositivo no diretório /dev. A identificação de discos rígidos no GNU/Linux é feita da seguinte forma: /dev/hd a 1 | | | | | | | |_Número que identifica o número da partição no disco rígido. | | | | | |_Letra que identifica o disco rígido (a=primeiro, b=segundo, etc...). | | | |_Sigla que identifica o tipo do disco rígido (hd=ide, sd=SCSI, xt=XT). | |_Diretório onde são armazenados os dispositivos existentes no sistema. Abaixo algumas identificações de discos e partições em sistemas Linux: • /dev/hda - Primeiro disco rígido na primeira controladora IDE do micro (primary master). • /dev/hda1 - Primeira partição do primeiro disco rígido IDE. • /dev/hdb - Segundo disco rígido na primeira controladora IDE do micro (primary slave). • /dev/hdb1 - Primeira partição do segundo disco rígido IDE. • /dev/sda - Primeiro disco rígido na primeira controladora SCSI ou SATA. • /dev/sda1 - Primeira partição do primeiro disco rígido SCSI ou SATA. • /dev/sdb - Segundo disco rígido na primeira controladora SCSI ou SATA. • /dev/sdb1 - Primeira partição do segundo disco rígido SCSI ou SATA. • /dev/sr0 - Primeiro CD-ROM SCSI. • /dev/sr1 - Segundo CD-ROM SCSI. 11 4 – Permissões de acesso a arquivos e diretórios A permissão de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas não autorizados. A permissão de acesso do GNU/Linux também impede que um programa mal intencionado, por exemplo, apague um arquivo que não deve, envie arquivos para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema. O sistema GNU/Linux é muito seguro e como qualquer outro sistema seguro e confiável impede que usuários iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversíveis em seus arquivos, seu micro ou sua empresa. 4.1 – Donos, grupos e outros usuários 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 pode modificar as permissões de acesso do arquivo. As permissões de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretório. A identificação do dono também é chamada de user id (UID). A identificação de usuário e o nome do grupo que pertence são armazenadas respectivamente nos arquivos /etc/passwd e /etc/group. Estes são arquivos textos comuns e podem ser editados em qualquer editor de texto, mas tenha cuidado para não modificar o campo que contém a senha do usuário encriptada (que pode estar armazenada neste arquivo caso não estiver usando senhas ocultas). grupo - Para permitir que vários usuários diferentes tivessem acesso a um mesmo arquivo (já que somente o dono poderia ter acesso ao arquivo), este recurso foi criado. 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). Por padrão, quando um novo usuário é criado, o grupo ele pertencerá será o mesmo de seu grupo primário. 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. Cada um dos tipos acima possuem três tipos básicos de permissões de acesso que serão vistas na próxima seção. 4.2 - Tipos de Permissões de acesso Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos 3 permissões básicas: 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. 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: 12 -rwxrwxrwx jose users teste Virou uma bagunça não? Vou explicar cada parte para entender o que quer dizer as 10 letras acima (da esquerda para a direita): - 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, um “-” quer dizer que é um arquivo comum, etc. - Da segunda a quarta letra (rwx) dizem qual é a permissão de acesso ao dono do arquivo. Neste caso “jose” ele tem a permissão de ler (r - read), gravar (w - write) e executar (x - execute) o arquivo teste. - Da quinta a sétima letra (rwx) diz qual é a permissão de acesso ao grupo do arquivo. Neste caso todos os usuários que pertencem ao grupo users tem a permissão de ler (r), gravar (w), e também executar (x) o arquivo teste. - Da oitava a décima letra (rwx) diz qual é a permissão de acesso para os outros usuários. Neste caso todos os usuários que não são donos do arquivo teste tem a permissão para ler, gravar e executar o programa. 4.3 - Etapas para acesso a um arquivo/diretório O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao arquivo/diretório. Após verificar aonde o usuário se encaixa nas permissões de acesso do arquivo (se ele é o dono, pertence ao grupo, ou outros usuários), é verificado se ele terá permissão acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso não tenha, o acesso é negado, mostrando uma mensagem do tipo: “Permission denied” (permissão negada). As permissões de acesso (leitura, gravação, execução) para donos, grupos e outros usuários são independentes, permitindo assim um nível de acesso diferenciado. 4.4 - chmod Muda a permissão de acesso a um arquivo ou diretório. Com este comando você pode escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu grupo é o grupo do usuário (exceto para diretórios configurados com a permissão de grupo “s”, será visto adiante). chmod [opções] [permissões] [diretório/arquivo] Onde: diretório/arquivo Diretório ou arquivo que terá sua permissão mudada. Opções: -v, –verbose Mostra todos os arquivos que estão sendo processados. 13 -f, –silent Não mostra a maior parte das mensagens de erro. -c, –change Semelhante a opção -v, mas só mostra os arquivos que tiveram as permissões alteradas. -R, –recursive Muda permissões de acesso do diretório/arquivo no diretório atual e subdiretórios. ugoa - Controla que nível de acesso será mudado. Especificam, em orugoa+-=rwxXst dem, usuário (u), grupo (g), outros (o), todos (a). • +-= - + coloca a permissão, - retira a permissão do arquivo e = define a permissão exatamente como especificado. • rwx - r permissão de leitura do arquivo. w permissão de gravação. x permissão de execução (ou acesso a diretórios). Observações: chmod não muda permissões de links simbólicos, as permissões devem ser mudadas no arquivo alvo do link. Também podem ser usados códigos numéricos octais para a mudança das permissões de acesso a arquivos/diretórios. 4.4.1 - Exemplos de permissões de acesso: chmod g+r * Permite que todos os usuários que pertençam ao grupo dos arquivos (g) tenham (+) permissões de leitura (r) em todos os arquivos do diretório atual. chmod o-r teste.txt Retira (-) a permissão de leitura (r) do arquivo teste.txt para os outros usuários (usuários que não são donos e não pertencem ao grupo do arquivo teste.txt). chmod uo+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono e outros usuários do arquivo. chmod a+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e outros usuários. chmod a=rw teste.txt Define a permissão de todos os usuários exatamente (=) para leitura e gravação do arquivo teste.txt. 4.5 - chgrp Muda o grupo de um arquivo/diretório. chgrp [opções] [grupo] [arquivo/diretório] Onde: grupo - Novo grupo do arquivo/diretório. arquivo/diretório - Arquivo/diretório que terá o grupo alterado. Opções: -c, –changes Somente mostra os arquivos/grupos que forem alterados. -f, –silent Não mostra mensagens de erro para arquivos/diretórios que não puderam ser alterados. -v, –verbose Mostra todas as mensagens e arquivos sendo modificados. 14 -R, –recursive Altera os grupos de arquivos/sub-diretórios do diretório atual. 4.6 - chown Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo. chown [opções] [dono.grupo] [diretório/arquivo] Onde: dono.grupo Nome do dono.grupo que será atribuído ao diretório/arquivo. O grupo é opcional. diretório/arquivo Diretório/arquivo que o dono.grupo será modificado. Opções: -v, –verbose Mostra os arquivos enquanto são alterados. -f, –supress Não mostra mensagens de erro durante a execução do programa. -c, –changes Mostra somente arquivos que forem alterados. -R, –recursive Altera dono e grupo de arquivos no diretório atual e sub-diretórios. O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID). Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo. chown joao teste.txt - Muda o dono do arquivo teste.txt para joao. chown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para users. chown -R joao.users * - Muda o dono/grupo dos arquivos do diretório atual e sub- diretórios para joao/users (desde que você tenha permissões de gravação no diretórios e sub-diretórios). 4.7 - Modo de permissão octal Ao invés de utilizar os modos de permissão +r, -r, etc, pode ser usado o modo octal para se alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada número define um tipo de acesso diferente. É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum, pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal: • 0 - Nenhuma permissão de acesso. Equivalente a -rwx. • 1 - Permissão de execução (x). • 2 - Permissão de gravação (w). • 3 - Permissão de gravação e execução (wx). • 4 - Permissão de leitura (r). • 5 - Permissão de leitura e execução (rx). • 6 - Permissão de leitura e gravação (rw). • 7 - Permissão de leitura, gravação e execução. Equivalente a +rwx. O uso de um deste números define a permissão de acesso do dono, grupo ou outros usuários. Um modo fácil de entender como as permissões de acesso octais funcionam, é através da seguinte 15 tabela: 1 = Executar 2 = Gravar 4 = Ler * Para Dono e Grupo, multiplique as permissões acima por x100 e x10. Basta agora fazer o seguinte: • Somente permissão de execução, use 1. • Somente a permissão de leitura, use 4. • Somente permissão de gravação, use 2. • Permissão de leitura/gravação, use 6 (equivale a 2+4 / Gravar+Ler). • Permissão de leitura/execução, use 5 (equivale a 1+4 / Executar+Ler). • Permissão de execução/gravação, use 3 (equivale a 1+2 / Executar+Gravar). • Permissão de leitura/gravação/execução, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler). Vamos a prática com alguns exemplos: "chmod 764 teste" Os números são interpretados da direita para a esquerda como permissão de acesso aos outros usuários (4), grupo (6), e dono (7). O exemplo acima faz os outros usuários (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permissão de leitura e gravação (w), e o dono (7) ter permissão de leitura, gravação e execução (rwx) ao arquivo teste. "chmod 40 teste" O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita para a esquerda!). Para detalhes veja a lista de permissões de acesso em modo octal no inicio desta seção. "chmod 751 teste" O exemplo acima define a permissão de acesso dos outros usuários (1) para somente execução (x), o acesso do grupo (5) como leitura e execução (rx) e o acesso do dono (7) como leitura, gravação e execução (rwx). 4.8 - umask A umask (user mask) são 3 números que definem as permissões iniciais do dono, grupo e outros usuários que o arquivo/diretório receberá quando for criado ou copiado. Digite umask sem parâmetros para retornar o valor de sua umask atual. A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binário (um programa executável) ou texto (‘Arquivo texto e binário’) . Veja a tabela a seguir para ver qual é a mais adequada a sua situação: 16 5 – Comandos básicos do Sistema Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um interpretador de comandos também é conhecido como terminal, shell ou modo texto. Ele é o programa responsável por interpretar essas instruções enviadas pelo usuário e seus programas para o kernel. Para abrir o modo texto: Vá ao menu Aplicativos > Acessórios > Terminal ou pressione simultaneamente as teclas Alt+F2, e na caixa de texto digite “gnome-terminal” e tecle Enter. 5.1 – Ajuda e Documentação man: Exibe uma página do manual interno do Unix, para um dado comando ou ou recurso (isto é, qualquer utilitário do sistema que não seja comando, por exemplo, uma função de biblioteca). É como um "help" interno ao sistema. Sintaxe: man <comando> Onde "comando" é o nome do comando ou recurso que se deseja obter a ajuda. Para sair é só apertar “q”. help: Exibe informações sobre comandos internos do Bash. Sintaxe: help <comando> Onde "comando" é o nome do comando ou recurso que se deseja obter a ajuda. 5.2 – Instalação de pacotes via APT apt-get update - Atualizar o banco de dados local do apt-get. Deve-se executar este comando frequentemente (eu executo diariamente) para que o apt-get busque sempre a lista de pacotes DEB mais recente. apt-get upgrade - Atualiza todos os pacotes que estão instalados no sistema. apt-get upgrade <nome_do_pacote> - Atualiza apenas o pacote especificado. apt-get check - Checa a integridade dos pacotes do sistema, ou seja, verifica se não há dependências quebradas. apt-get install <pacote> - Instala um novo pacote solucionando automaticamente os pacotes dos quais o aplicativo a ser instalado depende. Caso o pacote algum-pacote já esteja instalado, o apt-get tentará atualizá-lo. apt-get install --reinstall <nome_do_pacote> - Para reinstalar um pacote. apt-cache stats - Saber status do cache, como versões distintas, dependências. apt-cache search <nome_do_pacote> - Para procurar um pacote. apt-cache show <nome-do-pacote> - Faz uma busca pelo pacote e exibe alguns dados relacionados com o pacote. 17 apt-get dist-upgrade - Instala os pacotes básicos e tenta atualizar todo o sistema. apt-get remove <nome-do-pacote> - Remove o pacote e todas as suas dependências criadas. apt-get remove --purge <nome-do-pacote> - Remove o pacote e todas as suas dependencias criadas incluindo arquivos de configuração. apt-get -s upgrade - Visualiza os pacotes que voce poderá atualizar. apt-get -f install - Verifica as dependências automaticamente. apt-get install --reinstall <nome_do_pacote> - Para reinstalar um pacote. apt-get clean apt-get autoclean - Para remover arquivos de pacotes baixados pelo apt-get ou aptitude (que serão armazenados no diretório /var/cache/apt/archives/). 5.3 – Usuários e Grupos adduser: Cria um novo usuário. Sintaxe: adduser <nome do usuário> userdel: Usado para remover uma conta de usuário do sistema, deletando todas entradas deste usuário nos arquivos. Sintaxe: userdel <nome do usuário> finger: Exibe informações dos usuários do sistema. Se um usuário não for passado ao comando o mesmo apresentará informações de todos usuários atualmente logados. Sintaxe: finger <nome do usuário> passwd: Altera a senha de um usuário exibindo um prompt para que a nova senha seja fornecida, e logo depois repetida para confirmação. O usuário logado pode alterar a própria senha digitando apenas “passwd”. passwd fulano” para alterar a senha do usuário “fulano”. passwd -l fulano” para bloquear a conta do usuário “fulano”. passwd -u fulano” para desbloquear a conta do usuário “fulano”. passwd -d fulano” para desativar a senha do usuário “fulano” deixando-o sem uma senha de acesso. groupadd: Cria um novo grupo no sistema. groupadd “novogrupo” para criar um novo grupo no sistema chamado novogrupo. groupadd -g 200 “novogrupo” para atribuir ao grupo “novogrupo” o GID 200. groupdel: Exclui um grupo no sistema. groupdel novogrupo para excluir o grupo chamado “novogrupo”. groupmod: Altera as informações de um grupo do sistema. groupmod -n velho_grupo novo_grupo” para alterar o nome do grupo velho_grupo para novo_grupo. 18 id: Exibe os identificadores (Ids) reais e efetivos de usuário e de grupo de um usuário. Se não for especificado ao comando será exibido as informações do usuário atual. id “fulano” para exibir os Ids de usuário e grupo do usuário fulano. 5.4 – Data e Hora date: Exibe e edita a data e a hora atuais do sistema, segue o formato mês, dia, hora e ano. date - para exibir a data e hora atual. date 032914502007 - para alterar a data e hora para 14:50 h de 29/03/2007. cal: Exibe um simples calendário. hwclock: Consulta ou define o relógio do hardware (Hardware Clock). hwclock – exibe a data e hora da do hardware (BIOS). hwclock -s" para atribuir ao sistema a data e hora do hardware (BIOS). hwclock --set –date=032914502007 – para definir a data e hora do hardware como 14:50 h de 29/03/2007. 5.5 – Informações do Sistema df: Mostra o espaço em disco do sistema de arquivos usado por todas as partições. df -h - é provavelmente o mais útil, usa megabytes (M) e gigabytes (G), em vez de blocos para relatar o tamanhos, significa "human-readable. du: Exibe o tamanho de arquivos e/ou diretórios. Se nenhum diretório for passado como argumento, será assumido o diretório atual. arquivo ou du <arquivo ou diretório> du -h - O uso da opção du -h tornará a apresentação mais simples de ser interpretada. free: Este comando exibe a quantidade de memória livre e usada no sistema. free -m - fornece a informação usando megabytes lspci: Exibe informações sobre os barramentos PCI do computador e sobre os dispositivos a ele conectados. lsusb: Lista informações sobre os barramentos USB do computador e sobre os dispositivos a eles conectados. uname: Este comando exibe várias informações sobre o sistema, incluindo o nome da maquina, nome e versão do Kernel e alguns outros detalhes. É muito útil para verificar qual é o Kernel usado por você. 19 uname uname -a para exibir todas as informações. uname -m para exibir a arquitetura da maquina. (Equivale ao ”arch”). uname -r para exibir o release do sistema operacional. top: Este comando exibe em tempo real informações sobre seu sistema Linux, processos em andamento e recursos do sistema, incluídos CPU, memória RAM e uso do swap, além do número total de tarefas sendo executadas. ps: Apresenta um quadro atual, porém estático dos processos que estão sendo executados no sistema. ps ps aux – para apresentar todos processos que estão sendo executados, de todos usuários, incluído o nome do usuário a qual o processo pertence. kill: Finaliza, ou no popular, “mata” processos sendo executados pelo seu PID, lhes enviando um sinal. kill kill -9 1345” para finalizar o processo de PID número 1345. Para saber qual PID de determinado processo que esta sendo executado pode ser utilizado o comando ps. killall: Finaliza processos pelo nome ao invés do PID como faz o comando kill. Também assim como o comando kill, o killall envia um sinal para o processo. killall mozilla-firefox para finalizar o processo mozilla-firefox, fechando com isso o navegador web Mozilla Firefox. O nome dos processos ativos pode ser observado com uso do comando ps. Halt, reboot, shutdown - Respectivamente encerra, reinicializa e encerra ou reinicializa o sistema. halt - para encerrar o sistema. sudo reboot - para reiniciar imediatamente o sistema. Este comando equivale aos comandos ”sudo init 6” e ”sudo shutdown -r now”. sudo shutdown -h now - para encerra o sistema imediatamente. sudo shutdown -h +15 - para encerrar o sistema daqui a 15 minutos. sudo shutdown -r 20:30 - ''O sistema será reiniciado as 20:30 horas!'' para reiniciar o sistema as 20:30 horas enviando a mensagem "O sistema será reiniciado as 20:30 horas!" a todos usuários logados. NOTA: O comando ”sudo init 0” também pode ser usado para encerramento do sistema. O comando shutdown é a forma mais segura de reiniciar e finalizar o sistema, advertindo os usuários logados e bloqueando novos logons. 5.6 Arquivos e Diretórios pwd: O comando pwd lhe permite saber em qual diretório você está no momento, onde pwd significa "print working directory". 20 cd: Este comando nos permite se deslocar entre a árvore de diretórios do sistema. Quando abrimos um terminal ou seção shell, você entra direto no seu diretório pessoal. cd / - para ir ao diretório raiz. cd - para ir ao seu diretório pessoal. cd .. - para acessar um diretório de nível acima do atual. cd- - para voltar ao diretório que se encontrava antes de mudar. Para navegar através múltiplos níveis de diretórios em só comando, use por exemplo, "cd /var/www", que o levará diretamente ao sub-diretório /www do diretório /var. cp: Copia arquivos e diretórios. cp file teste - para fazer uma cópia exata do arquivo "file" dando-lhe o nome de “teste”. cp /etc/X11/xorg.conf /etc/X11/xorg.conf-bkp - para gerar uma cópia de segurança exata do arquivo "/etc/X11/xorg.conf" dando-lhe o nome de "/etc/X11/xorg.conf-bkp". cat: Mostra o conteúdo de um arquivo binário ou texto. cat [opções] [diretório/arquivo] diretório/arquivo Localização do arquivo que deseja visualizar o conteúdo. Opções: -n, –number Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado. -s, –squeeze-blank Não mostra mais que uma linha em branco entre um parágrafo e outro. mv: Este comando move arquivos e diretórios, sendo muito usado também para renomear um determinado arquivo. mv arquivo1 arquivo2” para renomear o arquivo “arquivo1” localizado no diretório pessoal do usuário para “arquivo2” no mesmo local. mv teste ~/Desktop moverá o arquivo "teste" para seu diretório Desktop sem alterar seu nome. Você deve especificar um novo nome se quiser renomear um arquivo. ls: Comando utilizado para listar o conteúdo de um diretório. Usado com certas opções, é possível ver o tamanho dos arquivos, quando foram criados, e as permissões de cada um. ls - para mostrar os arquivos que estão em seu diretório pessoal. ls -hal ~” para mostrar os arquivos que estão em seu diretório pessoal, inclusive os ocultos (-a) em forma de uma listagem (-l) e com as informações de tamanho mais amigável a nós seres humanos (-h). rm: Utilize este comando para remover (deletar) arquivos e opcionalmente diretórios. Por padrão o comando rm exibe um prompt onde o usuário deve confirmar a exclusão de cada arquivo, digitando a letra “y” seguido de “Enter”. rm arquivo1 - para remover o arquivo chamado “arquivo1” do diretório corrente após confirmação no prompt. rm teste.txt - Apaga o arquivo teste.txt no diretório atual. rm *.txt - Apaga todos os arquivos do diretório atual que terminam com .txt. rm *.txt teste.novo - Apaga todos os arquivos do diretório atual que terminam com .txt e também o arquivo teste.novo. rm -rf /tmp/teste/* - Apaga todos os arquivos e sub-diretórios do diretório /tmp 21 /teste mas mantém o sub-diretório /tmp/teste. rm -rf /tmp/teste - Apaga todos os arquivos e sub-diretórios do diretório /tmp /teste, inclusive /tmp/teste. rm -f -- --arquivo-- - Remove o arquivo de nome -arquivo-. mkdir: Comando cuja finalidade é permitir a criação de um ou mais diretórios. mkdir musicas - para criar um diretório chamado “musicas” dentro do diretório corrente. diff: Usado para comparar o conteúdo de dois arquivos, exibindo a diferença entre eles. diff file foo - para ver a diferença entre o conteúdo do arquivo “file” e o arquivo “foo”. find: Comando utilizado para procurar por arquivos na arvore de diretórios. Se um caminho não for passado ao comando find a busca será feita no diretório corrente. find /home/teste.txt - para procurar pela ocorrência de um arquivo chamado “teste” no sub-diretório /temp do diretório pessoal do usuário. tar: Usado para armazenar ou extrair arquivos TAR (Tape ARchive). Estes arquivos TAR são os chamados “tarfile” ou “tarball”. tar cvf teste.tar *.ogg - para criar um arquivo TAR chamado teste.tar contendo todos os arquivos de extensão “.ogg” do diretório corrente. Notar que a extensão “.tar” não é obrigatória, mais aconselhável para facilitar a identificação do arquivo. tar tvf teste.tar - para exibir todo o conteúdo do arquivo TAR chamado teste.tar. tar xvf teste.tar - para extrair todo conteúdo do arquivo “teste.tar” no diretório corrente. tar xvf teste.tar musica1.ogg - para extrair apenas o arquivo chamado “musica1.ogg” do tarball “teste.tar” no diretório corrente. gzip - Compacta e opcionalmente descompacta arquivos regulares. Os arquivos compactados com o comando são substituídos por outro de menor tamanho com a extensão .gz porém preservando o dono, as permissões e datas de acesso e modificação. gzip arq1 arq2 - para compactar os arquivos “arq1” e “arq2” gerando os arquivos “arq1.gz” e “arq2.gz” em substituição aos originais. gzip -d arq1 - para descompactar o arquivo “arq1.gz” trazendo de volta o arquivo original “arq1”. A presença da opção -d equivale ao uso do comando gunzip. bzip2 - Compacta e opcionalmente descompacta arquivos regulares. Assim como o gzip, os arquivos compactados com este comando são substituídos por outro de menor tamanho com a extensão .bz2 porém preservando o dono, as permissões e datas de acesso e modificação. O algoritmo empregado por este comando permite uma maior compressão e também segurança dos arquivos gerados, porém o processo se torna um tanto quanto mais demorado. bzip2 arq1 - para compactar o arquivo “arq1” gerando em substituição o arquivo “arq1.bz2”. bzip2 -9 arq2 - para compactar o arquivo “arq2” pelo processo de máxima compressão gerando em substituição o arquivo “arq2.bz2”. bzip2 -d arquivo.bz2 - para descompactar o arquivo “arquivo.bz2” trazendo de volta o(s) arquivo(s) original(is) que tinham sido previamente compactados. 22 5.7 – Sistema de Arquivos mount – Monta um sistema de arquivos tornando-o disponível para as operações de E/S (Entrada/Saída) em arquivos, ou exibe uma lista dos sistemas de arquivos atualmente montados. mount - para listar os sistemas de arquivos atualmente montados. mount -t ext3 /dev/hda3 /media/hda3 - para montar a terceira partição primária do disco hda (IDE1) formatado em EXT3 no diretório /media/hda3. É necessário que o diretório /media/hda3 tenha sido previamente criado para que o comando tenha sucesso. umount – Desmonta um sistema de arquivos previamente montado que não esteja em uso. umount /dev/hda3” para desmontar o dispositivo /dev/hda3. Para que o comando seja executado com sucesso é importante que o dispositivo não esteja em uso, como por exemplo com arquivos abertos ou mesmo estando dentro do diretório onde o mesmo se encontra montado. fdisk – Gerencia por meio de uma simples interface de texto orientada por menus as partições de um disco. Ao executar o comando fdisk dispositivo basta pressionar a tecla “m” no prompt para ter acesso ao menu de opções que é bastante auto-explicativo, devendo se usar as setas de direção para movimentar-se pelo mesmo. fdisk -l - para listar as tabelas de partições para todos dispositivos. mkfs – Formata um dispositivo (geralmente uma partição de disco) criando um novo sistema de arquivos. mkfs -t ext3 /dev/hda3 - para formatar o dispositivo /dev/hda3 em um sistema de arquivos EXT3. O dispositivo deve obrigatoriamente estar desmontado para execução desta operação. badblocks – Procura por blocos ruins em um dispositivo, geralmente uma partição de disco. badblocks /dev/hda3” - para verificar se o dispositivo /dev/hda3 se encontra com blocos ruins. Normalmente, dependendo do tipo e tamanho do dispositivo este procedimento é um tanto demorado, sendo que se nenhuma informação for retornada é porque blocos ruins não foram encontrados. badblocks -o /tmp/file -n /dev/hda3 - onde o parâmetro -n forçaria um teste de leitura e escrita não-destrutivo e o “-o /tmp/file” geraria o arquivo /tmp/file com todas mensagens de saída do comando. 5.8 Utilitários de Texto cat – Utilizado para concatenar arquivos exibindo o resultado na tela, sendo também utilizado para exibir o conteúdo de arquivos. cat arq - para exibir o conteúdo do arquivo chamado “arq”. cat -n arq -para exibir o conteúdo do arquivo chamado “arq” numerando as linhas. cat /etc/passwd /etc/group – para exibir na tela o conteúdo dos arquivos “/etc/passwd” e “/etc/group”. cat file1 file2 |less - para exibir na tela o conteúdo dos arquivos “file1” e “file2” porém fazendo a paginação das telas. Neste caso a opção “|less”, onde “|” é o chamado pipe, pode ser substituída também por “|more”, sendo que ambos comandos serão vistos posteriormente. cat arq arq1 arq2 > arq_final - para concatenar os arquivos “arq”, “arq1” e “arq2” e colocar o resultado em outro arquivo chamado “arq_final”. Notar que neste comando é feito uso do caractere “>” chamado de redirecionador de saída. cat arq3 >> arq_final – para inserir o conteúdo do arquivo “arq3” ao final do 23 arquivo “arq_final”. NOTA: O comando cat também pode ser usado para criar arquivos quando usado em conjunto com o “>” redirecionador de saída. Para criar um arquivo execute o comando ”cat > novo_arq” e digite o conteúdo desejado, usando a tecla “Enter” como separador de linhas e “Ctrl+D” para finalizar. less – Faz a paginação de saídas muito extensas exibindo uma tela por vez. less arq - para exibir o conteúdo do arquivo “arq” de forma paginada. Para navegação e gerenciamento do comando use as teclas abaixo: - Para sair do aplicativo digite q (quit); - Use as teclas Page-Down, Ctrl+F ou Space para avançar nas páginas; - Use as teclas Page-Up ou Ctrl+B para voltar as páginas; - Use Enter para avançar apenas uma linha por vez; - Digite h para ver a lista das teclas disponíveis para navegação no comando. NOTA: Para redirecionar a saída de outro comando para o less efetuar a paginação, use o “|” (pipe) conforme exemplo ”ls-hl |less”. more – Semelhante ao comando less também faz a paginação de uma saída muito grande na tela. A sintaxe deste comando é semelhante ao do less, inclusive as teclas de navegação e o redirecionamento com uso do “|” (pipe). grep – Usado para procurar por linhas em um arquivo que contenham expressões que satisfaçam um determinado padrão de busca. grep termo arq - para procurar por entradas no arquivo “arq” que correspondam a expressão “termo”. grep 'termo1' termo2' arq” - para procurar por entradas no arquivo “arq” que correspondam as expressões “termo1” e “termo2”. Notar que quando a expressão é composta de mais de uma palavra deve ser usado aspas simples. NOTA: Este comando comumente é utilizado em conjunto com outros comandos canalizados com o “|” () conforme abaixo exemplificado. cat /etc/passwd |grep fulano - para procurar por uma entrada que corresponda a expressão “fulano” no arquivo “/etc/passwd”. tail – Exibe as últimas linhas da saída de um arquivo. Por padrão se nenhum parâmetro diferente for passado ao comando será exibido as últimas 10 linhas do arquivo. tail -50 arq - para exibir as últimas 50 linhas do arquivo chamado “arq”. tail -f /var/log/messages - para continuar exibindo indefinidamente as últimas 10 linhas (padrão) do arquivo “/var/log/messages ”. Conforme o exemplo, esta opção “-f” é muito usada para verificar arquivos de log do sistema que estão sendo constantemente atualizados. NOTA: Assim como o tail que exibe as últimas linhas de um arquivo, existe o comando head que faz exibir as primeiras linhas de saída de um arquivo. 5.9 Monitoramento de Acesso w – Mostra quem esta logado no sistema e o que esta fazendo. Se não for especificado um usuário ao comando, será exibido informações de todos usuários logados. w - para exibir todos usuários logados e o que estão executando neste momento. 24 w fulano - para mostrar informações do usuário “fulano” se o mesmo estiver logado no sistema. who – Semelhante ao comando w mostra quais usuários estão logados no sistema. who -m - para mostrar o nome do usuário logado no sistema. who -q - para mostrar a quantidade total e nomes dos usuário conectados ao sistema. last – Mostra todas informações referente as entradas (login) e saídas (logout) de usuários do sistema. last -a - para exibir estas informações mostrando o nome da maquina de onde foi efetuado os logins. last -d - para exibir estas informações mostrando o endereço IP da maquina de onde foi efetuado os logins. last reboot - para exibir um registro de todas as reinicializações efetuadas no sistema. lastlog – Exibe informações referente ao último login de cada usuário cadastrado no sistema. Caso nenhum argumento seja passado, o comando lastlog exibe todas as informações armazenadas no arquivo “/var/log/lastlog” de todos os usuários do sistema. lastlog -u fulano - para exibir informações referentes apenas ao último login do usuário “fulano”. lastlog -t 5 - para exibir a lista dos usuários que logaram no sistema nos últimos 5 dias informando o dia e a hora do último acesso de cada um desses usuários. 5.10 – Administração de Usuários login - Permite a um usuário efetuar o logon (estabelecer uma conexão) no sistema, bem como ser utilizado para efetuar o logon com um usuário diferente do atual. login fulano - para efetuar o login do usuário “fulano”. login -p fulano - para efetuar o login do usuário “fulano” sem destruir o ambiente do atual usuário. logout - Finaliza um login shell no console ou terminal. No modo gráfico, este comando encerra a sessão do usuário podendo fechar a janela do terminal, e em modo texto encerra a sessão do usuário levando-o de volta ao prompt de login do sistema. su - Permite alternar entre os usuários cadastrados do sistema, alterando o ID de usuário e grupo do atual usuário para outro usuário especificado. su fulano - permite alternar para o usuário “fulano” após senha de login correta. su fulano -c 'vim /home/fulano/arq1' - permite executar o comando vim abrindo o arquivo “/home/fulano/arq1” como sendo o usuário “fulano”. O uso desta opção -c não começa um novo shell, apenas executa um comando como sendo o outro usuário especificado. sudo - Permite a um usuário autorizado conforme configurado no arquivo “/etc/sudoers”, a executar comandos como se fosse o super-usuário (root) ou outro usuário qualquer. uname - Exibe várias informações sobre o sistema. Caso nenhuma opção seja fornecida junto ao comando, apenas o nome do sistema operacional será exibido, equivalente a opção -s. uname -a - para exibir todas informações sobre o sistema. 25