Sistemas Operacionais Aula 4 – Comandos Básicos do Linux – Final Prof.: Roberto Franciscatto Unidade 8: Controle de Acesso • 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 - forneça acesso da rede para que outros usuários invadam o sistema. Unidade 8: Controle de Acesso • Permissões de Acesso O sistema de arquivos do Linux possibilita que sejam atribuídos direitos de acesso diferenciados para usuários do 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. Unidade 8: Controle de Acesso • Donos, grupos e outros usuários • O princípio da segurança no sistema de arquivos GNU/Linux é definir o acesso aos arquivos por 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). Unidade 8: Controle de Acesso dono – 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 é preciso 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). Unidade 8: Controle de Acesso 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). Um usuário pode pertencer a um ou mais grupos. Unidade 8: Controle de Acesso outros •É a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo. Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso – 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: – -rwxrwxrwx roberto users teste – Virou uma bagunça? Vamos ver o que quer dizer as 10 letras acima (da esquerda para a direita): Unidade 8: Controle de Acesso -rwxrwxrwx roberto users teste 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 gleydson ele tem a permissão de ler (r - read), gravar (w - write) e executar (x - execute) o arquivo teste. Unidade 8: Controle de Acesso -rwxrwxrwx roberto users 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. Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso Etapas para acesso a um 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). – O que isto que dizer é que mesmo que você seja o dono do arquivo e definir o acesso do dono (através do comando chmod) como somente leitura (r) mas o acesso dos outros usuários como leitura e gravação, você somente poderá ler este arquivo mas os outros usuários poderão ler/graválo. – 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. Lembre-se: Somente o dono pode modificar um arquivo/diretório! Unidade 8: Controle de Acesso Exemplo de acesso a um arquivo – Abaixo um exemplo e explicação das permissões de acesso a um arquivo no GNU/Linux (obtido com o comando ls -la, explicarei passo a passo cada parte: – -rwxr-xr-- 1 roberto user 8192 nov 4 16:00 teste – -rwxr-xr– • Estas são as permissões de acesso ao arquivo teste. Um conjunto de 10 letras que especificam o tipo do arquivo, permissão do dono do arquivo, grupo do arquivo e outros usuários. Veja a explicação detalhada sobre cada uma abaixo: -rwxr-xr– A primeira letra (do conjunto das 10 letras) determina o tipo do arquivos. Se a letra for um d é um diretório, e você poderá acessa-lo usando o comando cd. Caso for um l é um link simbólico para algum arquivo ou diretório no sistema. Um - significa que é um arquivo normal. Unidade 8: Controle de Acesso Exemplo de acesso a um arquivo -rwxr-xr– Estas 3 letras (da segunda a quarta do conjunto das 10 letras) são as permissões de acesso do dono do arquivo teste. O dono (neste caso roberto) tem a permissão para ler (r), gravar (w) e executar (x) o arquivo teste. – -rwxr-xr– – Estas 3 letras (da quinta a sétima do conjunto das 10 letras) são as permissões de acesso dos usuários que pertencem ao grupo user do arquivo teste. Os usuários que pertencem ao grupo user tem a permissão somente para ler (r) e executar (x) o arquivo teste não podendo modifica-lo ou apaga-lo. – -rwxr-xr– – Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários que não são donos do arquivo teste e que não pertencem ao grupo user. Neste caso, estas pessoas somente terão a permissão para ver o conteúdo do arquivo teste. Unidade 8: Controle de Acesso Exemplo de acesso a um arquivo – roberto • Nome do dono do arquivo teste. – user • Nome do grupo que o arquivo teste pertence. – teste • Nome do arquivo. Unidade 8: Controle de Acesso Exemplo de acesso a um diretório – Abaixo um exemplo com explicações das permissões de acesso a um diretório no GNU/Linux: – drwxr-x--- 2 roberto user 1024 nov 4 17:55 exemplo – drwxr-x--• Permissões de acesso ao diretório exemplo. É um conjunto de 10 letras que especificam o tipo de arquivo, permissão do dono do diretório, grupo que o diretório pertence e permissão de acesso a outros usuários. Veja as explicações abaixo: drwxr-x--A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso é um diretório porque tem a letra d. Unidade 8: Controle de Acesso Exemplo de acesso a um diretório drwxr-x--Estas 3 letras (da segunda a quarta) são as permissões de acesso do dono do diretório exemplo. O dono do diretório (neste caso roberto) tem a permissão para listar arquivos do diretório (r), gravar arquivos no diretório (w) e entrar no diretório (x). drwxr-x--Estas 3 letras (da quinta a sétima) são as permissões de acesso dos usuários que pertencem ao grupo user. 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. Unidade 8: Controle de Acesso Exemplo de acesso a um diretório drwxr-x--Estas 3 letras (da oitava a décima) são as permissões de acesso para usuários que não são donos do diretório exemplo e que não pertencem ao grupo user. Com as permissões acima, nenhum usuário que se encaixe nas condições de dono e grupo do diretório tem a permissão de acessa-lo. Unidade 8: Controle de Acesso Exemplo de acesso a um diretório – roberto • Nome do dono do diretório exemplo. – user • Nome do grupo que diretório exemplo pertence. – exemplo • Nome do diretório Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso chmod opções – -v, --verbose • Mostra todos os arquivos que estão sendo processados. – -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 sub-diretórios. Unidade 8: Controle de Acesso chmod ugoa+-=rwxXst ugoa - Controla que nível de acesso será mudado. Especificam, em ordem, 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). Unidade 8: Controle de Acesso 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). Unidade 8: Controle de Acesso Exemplos de permissões de acesso: – 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. Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso 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 subdiretórios. O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID). Unidade 8: Controle de Acesso Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo. – Exemplos: – 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). Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso – 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. Unidade 8: Controle de Acesso – 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). Unidade 8: Controle de Acesso 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. Unidade 8: Controle de Acesso Exemplos: "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 usemos 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!). Unidade 8: Controle de Acesso Exemplos: "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). Unidade 8: Controle de Acesso 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. – Veja a tabela a seguir para ver qual é a mais adequada a sua situação: Unidade 8: Controle de Acesso – Um arquivo texto criado com o comando umask 012;touch texto.txt receberá as permissões -rw-rw-r--, pois 0 (dono) terá permissões rw, 1 (grupo), terá permissões rw- e 2 (outros usuários) terão permissões r--. – Um arquivo binário copiado com o comando umask 012;cp /bin/ls /tmp/ls receberá as permissões -r-xr--r-x (confira com a tabela acima). Unidade 8: Controle de Acesso – Por este motivo é preciso um pouco de atenção antes de escolher a umask, um valor mal escolhido poderia causar problemas de acesso a arquivos, diretórios ou programas não sendo executados. – O valor padrão da umask na maioria das distribuições atuais é 022. A umask padrão no sistema Debian é a 022 . – A umask é de grande utilidade para programas que criam arquivos/diretórios temporários, desta forma pode-se bloquear o acesso de outros usuários desde a criação do arquivo, evitando recorrer ao chmod. Unidade 9: Gerenciamento de Pacotes Na grande maioria dos casos, um aplicativo não é formado apenas por um único arquivo executável, mas sim por um grande número de executáveis e arquivos de configuração e documentação. No caso de uma atualização de um aplicativo, alguns arquivos deixam de ser necessários, ficam obsoletos, e outros assumem sua atividade. Isso faz com que a manutenção de um aplicativo fique muito difícil. Unidade 9: Gerenciamento de Pacotes Para solucionar isto usamos pacotes de instalação, o qual possui uma base de dados de todas as suas dependências e alterações em diretórios e arquivos, para que o aplicativo funcione após a instalação e até mesmo após uma atualização. Para cada distribuição temos um padrão de pacotes próprio. É muito comum ouvirmos falar de dependências de pacotes. Isto é apresentado quando um pacote necessita de outro para que ele funcione. Unidade 9: Gerenciamento de Pacotes dpkg – O dpkg (Debian Package) é o programa responsável pelo gerenciamento de pacotes em sistemas Debian. – Sua operação é feita em modo texto e funciona através de comandos, assim caso deseje uma ferramenta mais amigável para a seleção e instalação de pacotes, prefira o dselect (que é um front-end para o dpkg) ou o apt. – dpkg é muito usado por usuários avançados da Debian e desenvolvedores para fins de instalação, manutenção e construção de pacotes. Unidade 9: Gerenciamento de Pacotes Pacotes – Pacotes Debian são programas colocados dentro de um arquivo identificados pela extensão .deb – Incluem arquivos necessários para a instalação do programa, um sistemas de listagem/checagem de dependências, scripts de automatização para remoção parcial/total do pacote, listagem de arquivos, etc. – Um nome de pacote tem a forma nome-versão_revisão.deb Unidade 9: Gerenciamento de Pacotes Instalar pacotes – Use o comando: dpkg -i [NomedoPacote] (ou -install) para instalar um pacote em seu sistema. – Talvez ele peça que seja instalado algum pacote que depende para seu funcionamento. – É preciso especificar o nome completo do pacote (com a versão e revisão). Unidade 9: Gerenciamento de Pacotes Dependências – Dependências são pacotes requeridos para a instalação de outro pacote.No Debian cada pacote contém um programa com uma certa função. – Por exemplo, se você tentar instalar o pacote de edição de textos supertext que usa o programa sed, você precisará verificar se o pacote sed está instalado em seu sistema antes de tentar instalar o supertext, Unidade 9: Gerenciamento de Pacotes Dependências – caso contrário, o pacote supertext pedirá o sed e não funcionará corretamente. – Note que o pacote supertext é apenas um exemplo e não existe (pelo menos até agora :-). – O programa dselect faz o trabalho de checagem de dependências automaticamente durante a instalação dos pacotes. Unidade 9: Gerenciamento de Pacotes Listar pacotes existentes no sistema – Use o comando: dpkg -l [pacote] (--list) para isto. – Na listagem de pacotes também será mostrado o "status" de cada um na coluna da esquerda, acompanhado do nome do pacote, versão e descrição básica. Caso o nome do [pacote] seja omitido, todos os pacotes serão listados. – É recomendado usar "dpkg -l|less" para ter um melhor controle da listagem (pode ser longa dependendo da quantidade de programas instalados). Unidade 9: Gerenciamento de Pacotes Removendo pacotes do sistema – Use o comando: dpkg -r NomedoPacote (-remove) para remover um pacote do sistema completamente. Somente é necessário digitar o nome e versão do pacote que deseja remover, não sendo necessário a revisão do pacote. – O comando dpkg -r não remove os arquivos de configuração criados pelo programa. Unidade 9: Gerenciamento de Pacotes Removendo completamente um pacote – Use o comando: dpkg -P [NomedoPacote|-a] (--purge) para remover um pacote e todos os diretórios e arquivos de configuração criados. Não é necessário especificar a revisão do pacote. O comando dpkg--purge pode ser usado após uma remoção normal do pacote (usando dpkg -r). – Caso você usar diretamente o comando dpkg --purge, dpkg primeiro removerá o pacote normalmente e após removido apagará todos os arquivos de configuração. – – Caso especifique a opção -a (ou sua equivalente --pending) no lugar do nome do pacote, todos os pacotes marcados para remoção serão removidos completamente do sistema. Unidade 9: Gerenciamento de Pacotes Mostrar descrição do pacote – Use o comando: dpkg -I NomedoPacote (--info) para mostrar a descrição do pacote. – Entre a descrição são mostradas as dependências do pacote, pacotes sugeridos, recomendados, descrição do que o pacote faz, tamanho e número de arquivos que contém Unidade 9: Gerenciamento de Pacotes Procura de pacotes através do nome de um arquivo – Use o comando: dpkg -S arquivo (--search) para saber de qual pacote existente no sistema o arquivo pertence Unidade 9: Gerenciamento de Pacotes Status do pacote – Use o comando: dpkg -s pacote (--status) para verificar o status de um pacote em seu sistema, se esta ou não instalado, configurado, tamanho, dependências, maintainer, etc. – Se o pacote estiver instalado no sistema, o resultado será parecido com o do comando dpkg -c [pacote] (--contents). Unidade 9: Gerenciamento de Pacotes Procurando pacotes com problemas de instalação – A checagem de pacotes com este tipo de problema pode ser feita através do comando: dpkg -C (--audit) – Será listado todos os pacotes com algum tipo de problema, verifique os detalhes do pacote com "dpkg s" para decidir como corrigir o problema Unidade 9: Gerenciamento de Pacotes Mostrando a lista de pacotes do sistema – Use o comando: dpkg --get-selections – para obter uma lista de seleção dos pacotes em seu sistema. A listagem é mostrada na saída padrão, que pode ser facilmente redirecionada para um arquivo usando dpkg --get-selections > dpkg.lista. – A listagem obtida com este comando é muito útil para repetir os pacotes usados no sistema usando o dpkg --set-selections. Unidade 9: Gerenciamento de Pacotes Obtendo uma lista de pacotes para instalar no sistema Use o comando: dpkg --set-selections <arquivo – para obter a lista de pacotes que serão instalados no sistema. O uso do dpkg --get-selections e dpkg --set-selections é muito útil durante uma necessidade de reinstalação do sistema GNU/Linux ou repetir a instalação em várias máquinas sem precisar selecionar algumas dezenas entre os milhares de pacotes no dselect. – Após obter a lista com dpkg --get-selections, use dpkg --setselections <arquivo e então entre no dselect e escolha a opção INSTALL, todos os pacotes obtidos via dpkg --set-selections serão automaticamente instalados. Unidade 9: Gerenciamento de Pacotes Configurando pacotes desconfigurados – Pacotes estão desconfigurados quando, por algum motivo, a instalação do mesmo não foi concluída com sucesso. – Pode ter faltado alguma dependência, acontecido algum erro de leitura do arquivo de pacote, etc. – Quando um erro deste tipo acontece, os arquivos necessários pelo pacote podem ter sido instalados, mas os scripts de configuração pós-instalação não são executados. Use o comando: dpkg --configure [NomedoPacote] – Para configurar um pacote. O NomedoPacote não precisa conter a revisão do pacote e extensão. Unidade 9: Gerenciamento de Pacotes Listando arquivos de um pacote – Use o comando: dpkg -c arquivo (--contents) para obter a listagem dos arquivos contidos no pacote. É necessário digitar o nome completo do pacote. – O comando dpkg -c é útil para listarmos arquivos de pacotes que não estão instalados no sistema. – Para obter a listagem de arquivos de pacotes já instalados no sistema, use o comando: dpkg -L arquivo. É necessário digitar somente o nome do pacote (sem a revisão e extensão). Unidade 9: Gerenciamento de Pacotes APT O apt é um sistema de gerenciamento de pacotes de programas que possui resolução automática de dependências entre pacotes, método fácil de instalação de pacotes, facilidade de operação, permite atualizar facilmente sua distribuição, etc. Ele funciona através de linha de comando sendo bastante fácil de usar. Mesmo assim, existem interfaces gráficas para o apt como o synaptic (modo gráfico) e o aptitude (modo texto) que permitem poderosas manipulações de pacotes sugeridos, etc. – O apt pode utilizar tanto com arquivos locais como remotos na instalação ou atualização, desta maneira é possível atualizar toda a sua distribuição Debian via ftp ou http com apenas 2 simples comandos! Unidade 9: Gerenciamento de Pacotes APT – É recomendável o uso do método apt no programa dselect pois ele permite a ordem correta de instalação de pacotes e checagem e resolução de dependências, etc. – Devido a sua facilidade de operação, o apt é o método preferido para os usuários manipularem pacotes da Debian. – O apt é exclusivo da distribuição Debian e distribuições baseadas nela e tem por objetivo tornar a manipulação de pacotes poderosa por qualquer pessoa e tem dezenas de opções que podem ser usadas em sua execução ou configuradas no arquivo /etc/apt/apt.conf. Unidade 9: Gerenciamento de Pacotes O arquivo /etc/apt/sources.list – Este arquivo contém os locais onde o apt encontrará os pacotes, a distribuição que será verificada (stable, testing, unstable, Woody, Sarge) e a seção que será copiada (main, non-free, contrib, non-US). – Woody(Debian 3.0) e Sarge(Debian 3.1) são os nomes das versões enquanto stable e unstable são links para as versões estável e testing respectivamente. – Se desejar usar sempre uma distribuição estável (como a Woody), modifique o arquivo sources.list e coloque Woody como distribuição. – Caso você desejar estar sempre atualizado mas é uma pessoa cuidadosa e deseja ter sempre a última distribuição estável da Debian, coloque stable como versão. Unidade 9: Gerenciamento de Pacotes Endereços de servidores e mirrors nacionais da Debian – Segue abaixo uma relação de servidores que podem ser colocados em seu arquivo sources.list: – Endereço Diretório Principal ---------------------- ----------ftp://ftp.debian.org.br /debian ftp://ftp.br.debian.org /debian ftp://ftp.debian.org /debian ftp://download.sourceforge.net /debian ftp://ftp.quimica.ufpr.br /debian ftp://download.unesp.br /linux/debian Unidade 9: Gerenciamento de Pacotes Um modelo de arquivo sources.list – Você pode copiar o modelo do sources.list abaixo para ser usado em sua distribuição Stable ou personaliza-lo modificando a distribuição utilizada e servidores: Unidade 9: Gerenciamento de Pacotes O arquivo /etc/apt/apt.conf – Você pode especificar opções neste arquivo que modificarão o comportamento do programa apt durante a manipulação de pacotes (ao invés de especificar na linha de comando). – Se estiver satisfeito com o funcionamento do programa apt, não é necessário modifica-lo. Para detalhes sobre o formato do arquivo, veja a página de manual do apt.conf. Na página de manual do apt-get são feitas referências a parâmetros que podem ser especificados neste arquivo ao invés da linha de comando. Unidade 9: Gerenciamento de Pacotes Copiando a lista de pacotes disponíveis – O apt utiliza uma lista de pacotes para verificar se os pacotes existentes no sistema precisam ou não ser atualizados. A lista mais nova de pacotes é copiada através do comando apt-get update. – Este comando pode ser usado com alguma freqüência se estiver usando a distribuição stable e sempre se estiver usando a unstable (os pacotes são modificados com muita freqüência). Sempre utilize o apt-get update antes de atualizar toda a distribuição. Unidade 9: Gerenciamento de Pacotes Instalando novos pacotes – Use o comando apt-get install [pacotes] para instalar novos pacotes em sua distribuição. Podem ser instalados mais de um pacotes ao mesmo tempo separando os nomes por espaços. Somente é preciso especificar o nome do pacote (sem a versão e revisão). – Se preciso, o apt instalará automaticamente as dependências necessárias para o funcionamento correto do pacote. – Quando pacotes além do solicitado pelo usuário são requeridos para a instalação, o apt mostrará o espaço total que será usado no disco e perguntará ao usuário se ele deseja continuar. – Após a instalação, o pacote será automaticamente configurado pelo dpkg para ser executado corretamente em seu sistema. Unidade 9: Gerenciamento de Pacotes Removendo pacotes instalado – Use o comando apt-get remove [pacotes] para remover completamente um pacote do sistema. Podem ser removidos mais de um pacote ao mesmo tempo separando os nomes dos pacotes com espaços. – O apt-get remove remove completamente o pacote mas mantém os arquivos de configuração, exceto se for adicionada a opção --purge. – É preciso especificar somente o nome do pacote (sem a versão e revisão). Unidade 9: Gerenciamento de Pacotes Verificando pacotes corrompidos – Use o comando apt-get check para verificar arquivos corrompidos. A correção é feita automaticamente. A lista de pacotes também é atualizada quando utiliza este comando. Corrigindo problemas de dependências e outros erros – Use o comando apt-get -f install (sem o nome do pacote) para que o apt-get verifique e corrija problemas com dependências de pacotes e outros problemas conhecidos. Unidade 9: Gerenciamento de Pacotes RPM O RPM é um sistema de instalação de programas criado pela Red Hat. O que é um pacote RPM? Um pacote RPM nada mais é do que os arquivos do programa, scripts e regras para sua instalação. Unidade 9: Gerenciamento de Pacotes Comandos usados pelo RPM Instalar um pacote: rpm –i nome_do_pacote.rpm Atualizar para uma versão mais recente de pacote já instalado rpm –U nome_do_pacote.rpm Remover um pacote já instalado: rpm –e nome_do_pacote Unidade 9: Gerenciamento de Pacotes Para ver a lista de pacotes instalado no sistema rpm –qa Para ver se algum pacote já está instalado no sistema rpm –qa | grep nome_do_pacote Para obter informações sobre um pacote instalado no sistema rpm –qi nome_do_pacote Obter informações sobre um pacote não instalado rpm –qip nome_do_pacote.rpm Unidade 10: Editores de Textos Vi O editor de textos Vi foi originalmente criado pelo presidente da SUN, Bill Joy, a partir do ed, enquanto ele ainda estudava em Stanford. – O Vi simples serve apenas para editar, enquanto que suas variantes servem até para programar, compilar e debugar programas. – Anos e anos de experiência ensinam que o melhor meio de se aprender a usar algum aplicativo é praticando, por isso, primeiramente listaremos os comandos mais importantes e logo em seguida partiremos para um exemplo onde se utilizam esse comandos. Existem dois modos no Vi: Edição e Comando; Unidade 10: Editores de Textos No modo de edição, podemos digitar a vontade como se fosse um editor de textos comum. Esse modo é iniciado no editor - a partir do shell digitando-se vi entra-se no editor - através de um dos seguintes comandos: – – – – – – i : insere texto a partir do cursor atual a : insere texto depois do cursor atual I : insere texto no início da linha A : insere texto no final da linha s : substitui texto no cursor atual S : substitui texto depois do cursor atual – o : abre uma linha abaixo do cursor atual Unidade 10: Editores de Textos No modo de comando, você pode executar comandos. O modo de comando começa quando se aperta a tecla ESC. Alguns desses comandos são: substituição, inserção e procura de texto, gravação e abertura de arquivos entre outros, além de recorte, cópia e colagem de texto. Os comandos mais usados são: Unidade 10: Editores de Textos Outros editores de textos mais utilizados no Linux O sistema Linux possui um infinidade de editores de textos desenvolvidos tanto para modo gráfico, como para modo texto. Os editores de textos mais utilizados no Linux são: – – – – - emacs - vi - joe - mcedit Unidade 10: Editores de Textos emacs Este editor de textos tem algumas características um pouco diferentes daquelas dos editores que conhecemos, mas adota uma filosofia muito utilizada no Linux. Ele trabalha com uma janela onde é digitado o texto e outra onde são digitados comandos específicos para o editor de textos. – Para iniciar o editor digite na linha de comando: – [usuario@spaceghost usuario]$ emacs Unidade 10: Editores de Textos joe Para os saudosistas do Wordperfect, esse editor implementa uma aparência semelhante ao seu predecessor. Tendo uma linha de status que fica no topo da janela, com as informações de status do arquivo, nome do arquivo, linha, coluna, hora e as teclas para se obter a ajuda, é um editor muito leve e prático. Seu sistema consiste basicamente em iniciar o editor e começar a digitar. Tem uma "janela" de ajuda que pode ficar visível durante todo o tempo ou oculta, bastando para isso pressionar Ctrl-H, alternando-se o modo de exibição da "janela". Unidade 10: Editores de Textos mcedit – De modo semelhante ao joe, este editor de textos também possui uma linha de status no topo da tela, mas, além disso, tem uma linha com as teclas de atalho de seus comandos principais no rodapé da tela. – Grande parte de suas funções são acessadas via menu, que aparece ao se pressionar a tecla F9. Observe no topo da tela a linha de status: ela muda para um menu que abre as opções do editor, pelas quais você pode navegar facilmente com as setas de direção. – A grande atração deste editor é que as teclas de atalho principais estão associadas às teclas Fn, onde n varia de 1 até 12. – Para iniciar o editor digite na linha de comando: mcedit. – Agora você está na tela inicial do mcedit; Unidade 11: Documentação Páginas de Manual O GNU/Linux possui uma vasta documentação em todas as distribuições. Esta documentação está disponível para qualquer usuário, de forma rápida e prática. Temos como principal meio de consulta o comando man. man O comando man é o principal meio de consulta off-line dos sistemas Unix. Nele você pode encontrar informações em todo o sistema operacional Linux. O man formata e apresenta as documentações que contém os programas que fazem parte do sistema operacional. Cada projeto é responsável por sua documentação. Unidade 11: Documentação info Da mesma forma que o man, o info formata e apresenta os manuais produzidos pelos projetos. Ele é uma atualização do man, onde é possível utilizar links dentro do documento, por exemplo. Sintaxe: info [comando] help Para facilitar mais a execução de comando e a pesquisa sobre o funcionamento deles, cada comando insere seu binário as principais funções de seu programa. Para que tenhamos acesso a esta informação devemos digitar: [comando] –-help O help da mesma forma que o man e o info, é mantido pelo projeto que produziu o programa, o qual o mantém. Unidade 11: Documentação Internet Certamente o melhor suporte ao GNU/Linux é via Internet, veja abaixo alguns locais úteis de onde pode obter ajuda ou se atualizar. http://debian-br.cipsga.org.br/ Projeto Debian-Br. A Debian é uma distribuição de Linux conhecida por sua qualidade, grande número de pacotes, estabilidade, facilidade de atualização, desenvolvimento aberto, segurança, ferramentas de gerenciamento de servidores e comprometimento com o software livre. http://www.linux.trix.net/ Boletim diário com as noticias mais recentes sobre GNU/Linux, testes, redes, descrição/configuração/ avaliação de programas, entrevistas, downloads, dica do dia, mecanismo de busca no site, links, etc. Em Português. Unidade 11: Documentação Internet http://www.olinux.com.br/ Trata o GNU/Linux com o foco jornalístico e tem a intenção de prover informações eficazes e esclarecedoras capazes de instruir, reciclar e tornar acessível aos usuários o conhecimento e aprofundamento de temas relacionados a plataforma GNU/Linux. http://www.linuxsecurity.com.br/ Boletins de segurança, publicações de textos nacionais, traduções de sites especializados em segurança, programas relacionados com criptografia e segurança no ambiente Linux. A página requer um navegador com suporte a Java. Unidade 11: Documentação http://www.tldp.org/ Projeto de documentação do GNU/Linux no Brasil. Toda a documentação traduzida para o Português do Brasil pode ser encontrada lá. http://www.guiadohardware.net/ Site de Hardware, conta com notícias diárias, cursos on-line, artigos, tutoriais, análises de equipamentos, fórum, dicionário de termos, dicas sobre overclock, palm pilot e sessão FAQ com mais de 300 dúvidas respondidas. Unidade 11: Documentação http://www.noticiaslinux.com.br/ Notícias diárias sobre GNU/Linux e Software Livre no site, por e-mail ou RSS. http://www.linux.org/ Página oficial do GNU/Linux mantida pela Transmeta (a empresa que Linus Torvalds vem trabalhando atualmente). Muita referência sobre GNU/Linux, distribuições, hardwares, softwares, downloads, etc. http://counter.li.org/ Este é um serviço que tem o objetivo de contar os usuários, máquinas, grupos de usuários Linux existentes ao redor do mundo. Te encorajo a se registrar neste site e indica-lo aos seus amigos, é de graça, você estará contribuindo para o aumento das estatísticas do número de usuários no mundo, país, sua cidade, etc. Unidade 11: Documentação http://www.vivaolinux.com.br Site completo, 100% brasileiro, como diversos tutoriais, artigos, etc... http://www.linuxclube.com.br Muita informação sobre tecnologia além de noticias atualizadas e recentes. http://www.linuxmagazine.com.br Revista sobre Linux, que está em sua 26ª edição. Unidade Especial: Lista de Programas para Linux Acessem este site e veremos juntos a lista de programas... http://focalinux.cipsga.org.br/guia/inic_interm/ch-aplic.htm Exercícios • Crie cinco arquivos dentro de cada subpasta num total de 5 subpastas • Utilize para cada um destes arquivos uma configuração de permissão diferente – Modo alfanumerico – Modo octal Exercícios • Acesse o guia foca linux e tente instalar um programa de sua preferência. • Pesquise sobre comandos APT – Instalação – Atualização – Remoção Exercícios • Pesquise sobre os seguintes itens e descreva seu funcionamento: – Emuladores – Firewall – Sistemas de Arquivos Linux • Leia o material da disciplina sobre comandos Linux e identifique qual comando você tem maior dificuldade Dúvidas, sugestões, questionamentos ??? “Podemos vencer pela fé, pela habilidade, talvez até pela sorte, mas nunca sem trabalho”