sistema operacional gnu/linuxmauricio.severich.com.br/teaching/redes/guia_basico_linux.pdf · 1...

26
Faculdade SENAI Fatesg Especialização em Banco de Dados e Big Data Workshop Linux Básico Prof. M. e Maurício Severich Agenda 1 Sistema Operacional GNU/Linux 1.1 HISTÓRICO................................................................................................................................................................................2 1.2 DISTRIBUIÇÕES.........................................................................................................................................................................2 1.3 OBJETIVO..................................................................................................................................................................................3 2 Instalação do Ubuntu Server Linux 2.1 P-REQUISITOS.......................................................................................................................................................................5 2.2 INICIANDO A INSTALAÇÃO........................................................................................................................................................5 2.3 INSTALAÇÃO EM AMBIENTE DE VIRTUALIZAÇÃO.....................................................................................................................5 2.4 RECOMENDAÇÕES DE INSTALAÇÃO..........................................................................................................................................5 2.5 INICIANDO O UBUNTU SERVER ATRAVÉS DO GRUB...............................................................................................................8 2.6 DESLIGANDO O LINUX..............................................................................................................................................................9 3 Comandos básicos 3.2 MANIPULANDO ARQUIVOS E DIRETÓRIOS...............................................................................................................................11 3.3 EDITOR DE TEXTO EM UM SHELL............................................................................................................................................15 3.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................15 4 Gerenciamento de software 4.1 TIPOS DE PACOTES..................................................................................................................................................................18 4.2 FERRAMENTAS DE GERENCIAMENTO DE PACOTES.................................................................................................................18 4.3 ADVANCED PACKAGE TOOL (APT)....................................................................................................................................... 19 4.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................21 5 Administração de usuários 5.1 INTRODUÇÃO..........................................................................................................................................................................22 5.2 INCLUSÃO DE USUÁRIOS.........................................................................................................................................................24 5.3 REMOÇÃO DE USUÁRIOS.........................................................................................................................................................25 5.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................25 6 Referências

Upload: others

Post on 25-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Faculdade SENAI FatesgEspecialização em Banco de Dados e Big Data

Workshop Linux BásicoProf. M.e Maurício Severich

Agenda

1 Sistema Operacional GNU/Linux

1.1 HISTÓRICO................................................................................................................................................................................21.2 DISTRIBUIÇÕES.........................................................................................................................................................................21.3 OBJETIVO..................................................................................................................................................................................3

2 Instalação do Ubuntu Server Linux

2.1 PRÉ-REQUISITOS.......................................................................................................................................................................52.2 INICIANDO A INSTALAÇÃO........................................................................................................................................................52.3 INSTALAÇÃO EM AMBIENTE DE VIRTUALIZAÇÃO.....................................................................................................................52.4 RECOMENDAÇÕES DE INSTALAÇÃO..........................................................................................................................................52.5 INICIANDO O UBUNTU SERVER ATRAVÉS DO GRUB...............................................................................................................82.6 DESLIGANDO O LINUX..............................................................................................................................................................9

3 Comandos básicos

3.2 MANIPULANDO ARQUIVOS E DIRETÓRIOS...............................................................................................................................113.3 EDITOR DE TEXTO EM UM SHELL............................................................................................................................................153.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................15

4 Gerenciamento de software

4.1 TIPOS DE PACOTES..................................................................................................................................................................184.2 FERRAMENTAS DE GERENCIAMENTO DE PACOTES.................................................................................................................184.3 ADVANCED PACKAGE TOOL (APT).......................................................................................................................................194.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................21

5 Administração de usuários

5.1 INTRODUÇÃO..........................................................................................................................................................................225.2 INCLUSÃO DE USUÁRIOS.........................................................................................................................................................245.3 REMOÇÃO DE USUÁRIOS.........................................................................................................................................................255.4 EXERCÍCIOS PROPOSTOS.........................................................................................................................................................25

6 Referências

Page 2: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

1 Sistema Operacional GNU/LinuxDe maneira simples pode-se dizer que o Linux é um sistema operacional multiusuário, multitarefa e

multiprocessado, de livre distribuição, baseado no sistema operacional UNIX - o nome Linux vem do nomede seu criador, o finlandês Linus Torvalds. Ser multiusuário significa que várias pessoas podem utilizar omesmo computador ao mesmo tempo, através de conexões remotas ou de terminais.

O termo multitarefa significa que o Linux é capaz de executar diversos programas ou serviços aomesmo tempo. Já o termo multiprocessado se refere ao fato de que ele pode ser instalado em máquinascom mais de um processador e é capaz de utilizar simultaneamente esses vários processadores, obtendo omelhor desempenho possível.

Uma das características que o tornou mais popular é ser de livre distribuição, o que significa que oLinux pode ser copiado e distribuído sem que se tenha que comprar licenças ou pagar por isso. O código-fonte do sistema está ao alcance de quem quiser vê-los e modificá-los.

Tecnicamente, o termo Linux representa apenas o kernel do sistema. Muitos dos aplicativos queacompanham o kernel, como compiladores e editores de texto foram criados pela GNU, por isso, alguns sereferem ao sistema como GNU/Linux.

Embora o kernel seja uma parte importante do Linux, ele sozinho não constitui um sistema operacional.O kernel é o “núcleo” do sistema e é responsável pelas funções de mais baixo nível, como o gerenciamentode memória, gerenciamento de processos e da CPU. O kernel também é o responsável pelo suporte aossistemas de arquivos, dispositivos e periféricos conectados ao computador, como placas SCSI, placas derede, de som, portas seriais, e outros.

1.1 HistóricoNo ano de 1991 um dos estudantes da Universidade de Helsinki na Finlândia chamado Linus Benedict

Torvalds, na época com 21 anos, queria rodar o UNIX em casa, mas pelo alto custo do hardware e dasversões comerciais do UNIX, ele resolveu escrever o seu próprio sistema operacional UNIX para rodar emum PC, o Linux.

Após escrever o primeiro kernel (núcleo do sistema operacional) com base no Minix1, ele percebeu queele não conseguiria fazer tudo sozinho. Então para resolver o problema, utilizou a Inzternet para publicarsuas intenções juntamente com o código-fonte do LINUX, convocando todos aqueles que se interessassempara juntar-se a ele.

mensagem enviada por Linus em 5 de outubro de 1991 para o grupo comp.os.minix:Você suspira pelos melhores dias do Minix-1.1, quando homens eram homens e escreviam seus próprios drivers

de dispositivos? Você está sem um bom projeto e está morrendo por colocar as mãos em um S.O. que possa sermodificado de acordo com suas necessidades? Você está achando frustrante quando tudo funciona no Minix? Nãoestá atravessando noites para deixar programas interessantes funcionando? Então esta mensagem pode serexatamente para você.

Como eu mencionei, há um mês atrás, estou trabalhando em uma versão independente de um S.O. similar aoMinix para computadores AT-386. Ele finalmente chegou em um estágio em que pode ser utilizado (embora possanão ser o que você esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuição. Ele está naversão 0.02... contudo eu tive sucesso rodando bash, gcc, gnu-make, gnu-sed, compress, etc. nele.

Com essa mensagem Linus Torvalds anunciou a primeira versão oficial do Linux, versão 0.02. Desdeentão muitos programadores têm respondido ao seu chamado, e têm contribuído não somente ajudando comas novas versões do kernel, mas também com programas das mais diversas áreas, todos de livre distribuição(free software). Apesar das contribuições de vários programadores ao redor do mundo, as novas versõesestáveis do kernel são somente liberadas pelo próprio Linus após sua revisão.

1.2 DistribuiçõesUma distribuição Linux é o conjunto dos vários programas que compõem o Linux, o kernel e, com

frequência, um sistema gerenciador de software e um instalador. As distribuições Linux podem ser tão

1 Minix: um pequeno sistema operacional UNIX desenvolvido por Andrew S. Tanenbaum,

Page 3: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

pequenas a ponto de caber em apenas alguns disquetes ou grandes e completas a ponto de utilizar váriosCDs.

1.2.1 ConectivaFoi a distribuição brasileira de maior destaque e com certeza a distribuição brasileira mais usada. Até

mesmo em outros países da América Latina essa distribuição marcou presença. Existiam centros deformação credenciados a darem cursos e certificados reconhecidos pela Conectiva SA. Com documentaçãointeira em Português, parte dela ainda está presente nos manuais de utilitários de várias distribuições atuais.

1.2.2 DebianÉ uma das únicas distribuições que não é mantida por uma empresa. O Debian é todo desenvolvido e

mantido por voluntários. Foi inovador criando uma ferramenta chamada APT (abordado na seção 4.3), queatualiza o sistema resolvendo todas as dependências de pacotes. Esta ferramenta esteve presente, inclusive,na distribuição brasileira Conectiva.

1.2.3 UbuntuDerivada do Debian, é uma das distribuições mais populares da atualidade, por entregar um conjunto

razoavelmente bem-acabado e com grande variedade de pacotes, sem exigir qualquer tipo de registro oupagamento. No site da distribuição, é possível obter a filosofia sobre a qual o projeto é mantido:

“Ubuntu é uma palavra africana antiga que significa 'humanidade para os outros'. É frequentemente descritacomo um lembrete de que "sou o que sou por causa de quem todos somos". Trazemos o espírito do Ubuntu para omundo dos computadores e software. A distribuição Ubuntu representa o melhor do que a comunidade desoftware do mundo compartilhou com o mundo”

1.2.4 GentooO site do projeto desta distribuição a descreve como: “uma distribuição baseada em código fonte,

altamente flexível”. Para se tornar viável, recorre à automatização dos processos envolvidos em otimizaçãoe flexibilidade.

Por exemplo, a otimização é obtida através da compilação do código-fonte do software. Como estapode não ser uma tarefa intuitiva para o usuário iniciante, o Gentoo Linux compila automaticamente osoftware usando opções (que podem ser modificadas) voltadas para a sua arquitetura/preferência.

A “flexibilidade” é obtida através de uma ferramenta de gerenciamento de software eficiente, bemcomo a disponibilidade de um conjunto abrangente de softwares.

1.2.5 RedHat (Fedora)Distribuição tradicional e provavelmente a mais utilizada do Linux. Sempre buscou conquistar usuários

iniciantes através de sua instalação facilitada, bem como sua administração. Praticamente quase tudo é feitoautomaticamente na instalação.

O RedHat também serviu como modelo para várias distribuições, como Conectiva, SUSE, etc. No finalde 2003 a distribuição RedHat tornou-se estritamente comercial, impossibilitando o uso não licenciado dosoftware. Entretanto um braço aberto denominado Fedora, ainda é mantido pela comunidade de usuáriosRedHat.

1.2.6 SlackwareÉ a mais antiga e purista2 distribuição Linux em atividade. Ao contrário de muitas distribuições

(Ubuntu/RedHat), o Slackware não é recomendado para iniciantes. A instalação é um pouco maiscomplicada e a administração também (instalação de softwares, configurações de hardware, etc.).Entretanto você tem um sistema enxuto e sob seu controle.

1.3 ObjetivoO objetivo final de todos os exercícios propostos neste documento é ambientar o aluno com o uso de

utilitários básicos do Linux e sua instalação.

2 purista: no sentido de se manter o mais fiel possível ao ambiente UNIX tradicional

Page 4: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Os exercícios estão organizados de forma gradual, permitindo execução parcial das tarefas, as quaiscompreendem:

• Instalar sistema operacional;• Estudar comandos básicos;

• Instalação e remoção de pacotes de software;• Inserção e remoção de usuários;

Page 5: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

2 Instalação do Ubuntu Server Linux

2.1 Pré-requisitosSerão necessários para instalação do sistema operacional os seguintes itens:

• Arquivo ISO do instalador do Ubuntu Server Linux 18.04.3 LTS• Computador (PC Compatível) com software de virtualização VirtualBox

• Mínimo de 10 GB de espaço livre em disco rígido• Opcional: Guia do Ubuntu Server (ver tópico 6)

• Opcional: Inventário do hardware com os dados de alguns componentes do computador ondea instalação será efetuada. Isto inclui especificação de: tipo de placa de rede (chip principal),modelo do monitor (frequências horizontal e vertical suportadas), tipo de placa de vídeo(chip principal)

2.1.1 Hardware mínimo recomendado• Processador: Compatível com AMD64 1 GHz ou superior

• Memória: 1 GB• Disco rígido: SATA de 7200 rpm ou superior

• Placa de rede: PCI 10/100/1000 Mbps• Placa de vídeo: PCI SVGA 4MB

2.2 Iniciando a instalaçãoInsira o CD com o ISO do instalador do Ubuntu Server na unidade de CD-ROM e inicialize a máquina

com boot pelo CD. Para configurar o boot pelo CD entre no BIOS Setup assim que ligar o computador,pressionando a tecla <Delete> (alguns computadores podem utilizar outras teclas como F2, F8, F12).Dentro do BIOS Setup, procure por parâmetros relacionados à dispositivos de Boot (Boot Device, BootOrder).

2.3 Instalação em ambiente de virtualizaçãoNesse tipo de ambiente é necessário disponibilizar os arquivos com ISOs de instaladores às máquinas

virtuais. Para fazer isso no virtualizador Oracle VirtualBox, acesse no menu Arquivo a opção “Gerenciadorde Mídias Virtuais...” e utilize a aba “Discos Ópticos” para selecionar o arquivo ISO que deseja tornardisponível para suas máquinas virtuais.

2.4 Recomendações de instalaçãoApós a inicialização, o menu do GRUB mínimo pode ser expandido usando as teclas de movimentação

do cursor, a decisão inicial pelo idioma “Português do Brasil” é interessante para que o instalador tomedecisões adequadas ao configurar o sistema.

Page 6: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Figura 1: A seleção do idioma aqui orienta decisões doinstalador

Ainda que o kernel HWE não seja a opção padrão do instalador é recomendado a escolha do mesmopara viabilizar aos componentes do seu sistema acesso a funcionalidades disponíveis somente em versõesmais recentes do kernel.

Figura 2: A segunda opção seleciona a instalação com kernelHWE

Como a versão 18.04 LTS do Ubuntu Server traz um instalador totalmente novo, o Subiquity, oprocesso de instalação ainda não está disponível em português, sendo o Inglês (English) o idioma padrãopara esta etapa, ainda há vários outros idiomas disponíveis, que podem ser escolhidos caso tenhapreferência. Importante destacar que essa escolha não altera a opção que foi feita na tela inicial do GRUB,quanto ao idioma do sistema depois de instalado.

Ao escolher o modelo e layout de seu teclado, considere que essa opção afeta somente o uso doperiférico diretamente acoplado ao servidor e não as sessões de terminal remoto (SSH) que venham aacontecer após a instalação.

Page 7: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

2.4.1 Configurando as interfaces de redePara oferecer serviços em rede, é comum vincular um IP fixo à interface de enlace, nesse caso, na tela

“Network connections”, no menu de opções de uma interface de enlace, selecione a opção “Edit IPv4” edepois em “IPv4 Method:” escolha “Manual” para configurar o IP fixo durante a instalação.

Figura 3: Editando a configuração IPv4 de um interface de rede

Caso não tenha as informações necessárias disponíveis, essa configuração pode ser realizada após ainstalação do sistema. Nesse caso, mantenha o padrão (DHCPv4 - a rede deve oferecer este tipo deserviço).

Figura 4: Parâmetros para configuração IPv4 manual Para as atividades de laboratório, escolha DHCPv4 na 1ª interface de rede e para a 2ª interface de rede

use os valores a seguir para os campos referentes à configuração manual:Subnet: 192.168.0.0/24Address: 192.168.0.1Gateway: vazioName servers: 192.168.0.1Search domains: uselinux.org

Page 8: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Caso o servidor tenha que trafegar através de um proxy na rede, para instalação e atualização depacotes, é possível realizar essa configuração durante a instalação, sendo que a mesma será mantida nosistema com efeito somente sobre o gerenciador de pacotes APT.

Adicionalmente, é possível especificar um endereço de espelho (Mirror address) alternativo aorepositório padrão do Ubuntu, isso pode tornar o download dos pacotes mais rápido uma vez que sejautilizado um repositório mais próximo do seu acesso.

2.4.2 Configurando áreas de armazenamentoO instalador permite definir quais dispositivos e particionamento serão utilizados como área de

armazenamento para abrigar o sistema operacional. Por exemplo, se o disco acoplado ao sistema serádedicado ao Ubuntu Server, na tela “Filesystem setup”, a opção “Use An Entire Disk” pode ser selecionadapara que o instalador realize automaticamente os procedimentos de particionamento/formatação.

Após o término da formatação das partições criadas, serão instalados os softwares fundamentais parauso do sistema.

2.4.3 Softwares adicionais durante a instalaçãoEspecialmente em ambientes de virtualização o uso de serviço de shell remoto seguro (SSH) é uma

grande facilidade, desde que a política de segurança permita o seu uso. Provavelmente por isso, o UbuntuServer propõe a instalação do OpenSSH Server durante a instalação.

Figura 5: Instale o servidor OpenSSH para habilitar shell remoto

Adicionalmente, outras opções de softwares podem ser selecionadas na tela de SNAPs, que traz umconjunto de softwares disponíveis através de pacotes SNAP, que é um formato comum de pacotes,compatíveis com outras distribuições Linux.

2.4.4 Definir senha do usuário de instalação (superusuário)Por padrão o Ubuntu Server desativa o superusuário root. Ainda que seja possível reativar o mesmo, é

recomendável fazer uso da estratégia /etc/sudoers, garantido assim uma melhor condição de auditoriaposterior.

2.5 Iniciando o Ubuntu Server através do GRUBNo menu de inicialização do GRUB, selecione a opção “Ubuntu” para verificar se a instalação foi bem-

sucedida. As primeiras mensagens que surgem na inicialização correspondem ao hardware que é detectadopelo kernel. Na sequência, o Ubuntu Server prossegue com o carregamento de alguns módulos (drivers)

Page 9: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

que dão suporte a vários dispositivos, bem como inicia alguns serviços do Linux. O sucesso nestesprocessos é evidenciado na mensagem [OK] em cor verde.

2.6 Desligando o LinuxSe não houver problemas na inicialização, o Linux concluirá o seu carregamento exibindo a tela de

login. Dependendo do processo de instalação utilizado, o login do sistema poderá vir em modo gráfico, enesse caso desligar o sistema é tarefa trivial.

Para desligar o sistema no modo texto, você deve fazer login com o usuário/senha da instalação, se ologin foi efetuado com sucesso o prompt aluno@servidor:~$ deve aparecer, digite então o comandosudo poweroff.

Caso necessite reiniciar um servidor físico pode-se utilizar as teclas <Ctrl>+<Alt>+<Del> emcojunto para disparar o reboot.

Page 10: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

3 Comandos básicosNesta seção serão abordados alguns comandos essenciais para operação de um sistema Linux, que

como qualquer sistema operacional oferece várias alternativas para executar tarefas básicas de ambiente,manipulação de arquivos e diretórios.

Para posicionar o leitor cabe uma explanação do termo shell que será utilizado diversas vezes nestetexto. Pode-se denominar shell todo interpretador de comandos e/ou ambiente para acessar facilidades deum sistema. O termo está mais relacionado com a interface textual/comandos de um sistema operacional,um exemplo bem conhecido é o “Prompt de comando” no Windows, no Linux temos bash, csh, zsh,tcsh entre outros.

Quando este texto utilizar a expressão “em um shell”, deve-se considerar que os comandos/ferramentasdevem ser executados “dentro” de um shell (e.g.: bash) quer seja na interface textual ou na interfacegráfica. Outra forma de representar esta expressão neste texto será: root@servidor:~#

Onde, root é o usuário, servidor é o nome do host e ~ indica que a pasta de trabalho é a pasta padrãodo usuário de login.

Para o leitor que já possui traquejo com o ambiente e comandos do MS-DOS ou equivalente, éinteressante utilizar a Tabela 3-1 como uma referência rápida. Ainda que não represente uma equivalênciatotal entre comandos do MS-DOS e do Linux, certamente será um facilitador da assimilação/uso destescomandos no Linux.

Tabela 3-1: Exemplos de similaridade entre comandos MS-DOS e Linux

Comandono MS-DOS

Similarno Linux

Função no Linux

ATTRIB chmod Alterar restrições de acesso a arquivos e diretóriosCD cd Caminhar entre diretóriosCLS clear Limpar a telaCOPY cp Copiar arquivos e diretóriosDATE date Mostrar/alterar data do sistemaDEL rm Remover arquivosDELTREE rm -r Remover diretórios recursivamenteDIR ls Listar arquivos/diretóriosECHO echo Imprimir texto na saída padrãoEDIT mcedit, vi, pico Editores de textoHELP man Consulta manuais disponíveis no sistemaMD mkdir Criar diretórioMORE more, less Visualizar arquivos, pausa na saída de comandosMOVE mv Mover arquivos/diretóriosPRINT lp, lpr Mandar arquivos para fila de impressãoRD rmdir Remover diretório vaziosREN mv Renomear arquivosSORT sort Ordenar entrada padrão, arquivosTIME date DateTYPE cat Listar conteúdo de arquivosVER uname –a Mostrar versão do sistema em usoXCOPY /S cp –r Copiar diretórios recursivamente

Por convenção, na descrição da sintaxe de comandos, foram utilizados alguns caracteres para envolver parâmetros de um comando. Estes caracteres somente agregam significado à descrição da sintaxe, portanto não devem ser incluídos na digitação do comando:

<param> : a presença de param é obrigatória em um comando.

[param]: a presença de param é opcional em um comando.

Importante

Page 11: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

3.1.1 Ajuda do sistemaPara obter ajuda sobre comandos, serviços, dispositivos, arquivos de configuração, entre outras

informações, pode-se utilizar em um shell o comando man ou no ambiente gráfico a ferramenta xman paracaminhar entres as diferentes seções de manuais, que são tradicionalmente divididas em 8 seções principais,como mostra a Tabela 3-2.

Tabela 3-2: Seções de manuais do UNIX

Número Descrição1 Comandos de usuário2 Chamadas de sistema3 Sub-rotinas (programação)4 Dispositivos5 Formatos de arquivos6 Jogos7 Miscelânea8 Administração do sistema

man – Consulta os manuais on-line do sistema

Sintaxe: man [-adfkwP] [seção] <nome>

Opções Descrição

-a Encontra todas as páginas que coincidam com o padrão-f Equivalente ao comando whatis-k Equivalente ao comando apropos-P paginador Indica um programa alternativo a ser usado para mostrar as páginas-w Mostra a localização física das páginasseção Especifica em qual seção dos manuais buscar a informaçãonome O man mostrará ajuda referente a um nome

No exemplo: root@servidor:~# man ls, o manual do comando ls será consultado. Nestecaso, a palavra ls foi utilizada no parâmetro <nome> presente na sintaxe do comando.

Outra forma de obter ajuda é acessar a documentação disponível no diretório /usr/share/doc.Muitos pacotes de software instalam documentação adicional (não somente páginas do man) neste local.

3.2 Manipulando arquivos e diretórioscd – Muda o diretório de trabalho, ou diretório corrente

Sintaxe: cd [diretório]

Sem parâmetros, o diretório HOME (casa) do usuário será acessado. Se usarmos “~user” odiretório HOME de user será acessado. Se ao invés disso utilizarmos o caractere “-“, seráretornado ao último diretório acessado.

chgrp – Muda o grupo de um arquivo ou diretório

Sintaxe: chgrp [-Rcvf] <grupo> <arquivo> [arquivo ...]

A mudança pode ser efetuada pelo administrador do sistema (um super-usuário) ou pelodono do arquivo. O grupo pode ser especificado pelo seu número de identificação (ID) ou pelo seunome.

Opções Descrição-c Mostra informações sobre os arquivos modificados-f Não mostra mensagens de erro-R Muda o grupo de arquivos nos subdiretórios (recursivamente)-v Descreve detalhadamente as alterações de atributos

chmod – Muda as permissões de acesso de arquivos ou diretórios especificados

Sintaxe: chmod [-Rcvf] <modo> <arquivo> [arquivo...]

Page 12: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Esse comando pode ser usado pelo administrador do sistema ou pelo proprietário do arquivo.As permissões podem ser especificadas numericamente (formato octal) ou por uma string. Essastring consiste na designação do proprietário (owner – u), grupo (group – g), ou outros (other – o),se (all - a) for utilizado as permissões para dono, grupo e outros serão alteradas. Para isso usa-se osinal de + para marcar um atributo ou – para desmarcar um atributo. Ainda existe o sinal = quedefine as permissões para os arquivos, zerando as outras.

Opções Descrição-c Mostra o nome dos arquivos que estão com a permissão sendo alterada-f Não mostra mensagens de erromodo Pode assumir modo simbólico ou absoluto-R Altera a permissão em subdiretórios (recursivamente)-v Descreve cada mudança, de maneira detalhada

Modo simbólico: O modo simbólico é uma lista de expressões na forma [identificador...] operando[valor], separadas por vírgula.

Identificador Descriçãou Permissões para o dono do arquivog Permissões para o grupo do arquivoo Permissões para outros gruposa Todos os anteriores (all). Padrão se o identificador for omitido

Operando Descrição+ Adiciona permissão às permissões existentes no arquivo- Retira permissão das permissões existentes no arquivo= Marca uma permissão zerando as demais

Valor Descriçãor Permissão para leituraw Permissão para escritax Permissão para execução (ou acesso para diretórios)X Permissão para execução se o arquivo for um diretório ou já houver

permissão para o usuários Bit setgid se atribuído ao grupo, setuid se atribuído ao donot Bit sticky

Modo absoluto: As permissões neste modo são representadas por um número octal de quatrodígitos, na forma EUGO.

Dígito Significado

E Atributos especiaisU Permissões para o dono do arquivoG Permissões para o grupo do arquivoO Permissões para outros grupos

Para os dígitos UGO temos a seguinte interpretação:

Permissões Valor octal

R – permissão de leitura 4W – permissão de gravação 2X – permissão de execução 1

Para o dígito E temos a seguinte representação:

Significado Valor octal

Nenhum atributo ligado 0Bit sticky ligado 1Bit setgid ligado 2Bit setuid ligado 4

Page 13: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Atributos especiais:

Bit Significado

setuid O arquivo é executado como se fosse invocado pelo proprietário; não faz sentidopara diretórios

setgid O arquivo é executado sob seu grupo, mesmo que o usuário invocador nãoparticipe do dele; todo arquivo criado em um diretório setgid é criado com o mesmogrupo do diretório

sticky Um arquivo criado sob um diretório com o bit sticky ligado pode ser removido ourenomeado apenas pelo proprietário (ou o root). Em arquivos executáveis o bitsticky faz com que estes arquivos sejam mantidos na área de swap do sistema

chown – Muda o proprietário e opcionalmente o grupo de um arquivo ou diretório

Sintaxe: chown [-Rcvf] [dono][[:.]grupo] arquivos

Dono e o grupo podem ser especificados por seu ID ou por seus nomes.

Opções Descrição-c Mostra o nome dos arquivos que o dono está sendo alterado-f Não mostra mensagens de erro-R Altera o dono dos arquivos nos subdiretórios (recursivamente)-v Descreve cada mudança de maneira detalhada

cp – Copia um ou vários arquivos

Sintaxe: cp [-abdfilprsuxvPS] <arquivo> [arquivo...] <destino>

Quando vários arquivos estiverem sendo copiados, destino deve se referir a um diretório.

Opções Descrição-a Preserva as características originais do arquivo sempre que possível-b Cria um backup dos arquivos antes de sobrescrevê-los-d Copia o link, não o arquivo ao qual foi feita referência-f Força a cópia e sobrescrita de arquivos-i Pede a confirmação antes de sobrescrever um arquivo existente-l Cria hard links e não cópias dos arquivos-P Copia arquivos criando também os elementos (diretórios) intermediários do

caminho (path)-p Também copia as permissões e data de modificação dos arquivos-r, -R Copia o conteúdo do diretório e seus subdiretórios (recursivamente)-s Cria links simbólicos em vez de copiar arquivos. O caminho até os arquivos fonte

deve ser absoluto-S sufixo Anexa no nome dos arquivos de backup a extensão definida por sufixo-u Previne a sobrescrita de arquivos com o mesmo nome quando o destino tem data

mais recente-v Mostra o nome de cada arquivo antes de copiá-lo-x Copia somente os arquivos que estiverem no mesmo sistema de arquivos do

diretório corrente

ls – lista o conteúdo do diretório

Sintaxe: ls [opções] [arquivo...]

Opções Descrição

-C Lista arquivos em colunas, ordenados verticalmente.-F Sufixa o nome de cada diretório com '/', cada nome de FIFO com '|', e cada nome de

executável com '*'.-R Lista os diretórios encontrados, recursivamente.-a Inclue os arquivos com o nome iniciando com '.' na listagem.-c Usa o tempo de alteração ao invés do tempo de modificação para ordenar (com -t)

ou listar (com -l).-i Precede a saída para o arquivo pelo seu número serial (número do inode).-l Lista no formato longo o tipo e modo de acesso do arquivo, o número de ligações

para o arquivo, o nome do proprietário, o nome do grupo, o tamanho do arquivo (embytes), o rótulo de tempo, e o nome do arquivo.Os tipos de arquivos podem ser: ‘-‘ para um arquivo comum, ‘d’ para um diretório, ‘b’para um dispositivo de bloco, ‘c’ para um dispositivo de caractere, ‘l’ para uma

Page 14: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

ligação simbólica, ‘p’ para um FIFO, ‘s’ para um socket.Por padrão, o rótulo de tempo exibido é aquele da última modificação; as opções -ce -u selecionam outros dois rótulos de tempo. Para arquivos de dispositivosespeciais o tamanho do campo é geralmente substituído pelos números dedispositivos maior e menor.

-r Inverte a ordem da ordenação.-t Ordena a exibição pelo rótulo de tempo.-u Usa o tempo do último acesso no lugar do tempo de modificação para ordenar (com -

t) ou listar (com -l).-1 Para saída em coluna simples.

mkdir – Cria diretórios

Sintaxe: mkdir [-pm] <diretório> [diretório...]

Opções Descrição-m mode Cria um novo diretório com as especificações de permissões-p Se um caminho de diretórios for especificado onde algum subdiretório não existir, ele

então também será criado.

mount – Monta novos sistemas de arquivos na árvore de diretórios

Sintaxe: mount [opções] [origem] [ponto_montagem]

Um sistema de arquivos é anexado no diretório definido por ponto_montagem.Parâmetros não especificados serão lidos de /etc/fstab.

Opções Descrição-a Monta todos os sistemas de arquivos especificados em /etc/fstab-f Efetua uma montagem falsa. Para efeito de testes-n Suprime entradas em /etc/mtab-r O sistemas de arquivos é montado com o status de somente leitura-t tipo Define o tipo do sistema de arquivos (ext4, nfs, vfat, cifs, ntfs)-v Mostra mensagens de saída

mv – Move ou renomeia arquivos ou diretórios

Sintaxe: mv [-bfiuSv] <arquivo> [arquivo...] <destino>

Opções Descrição

-b Cria uma cópia de segurança dos arquivos que serão sobrescritos-f Não pede confirmação antes de sobrescrever um arquivo já existente-i Pede confirmação antes de mover um arquivo que irá sobrescrever outro-u Só sobrescreve arquivos ou links que sejam mais antigos que a origem-S extensão Define a extensão a ser usada para criar os arquivos de backup-v Mostra detalhes da operação

Exemplo: root@servidor:~# mv apostila apostila.old

pwd – Mostra o diretório corrente

Sintaxe: pwd

rm – Remove arquivos

Sintaxe: rm [-firRv] <arquivo> [arquivo...]

Opções Descrição

-f Efetua a eliminação sem solicitar confirmação-i Solicita confirmação antes de remover-r Causa a remoção de todos os arquivos e subdiretórios abaixo do diretório especificado

(inclusive o próprio)-v Imprime o nome de cada arquivo antes de removê-lo

rmdir – Remove diretórios vazios

Sintaxe: rmdir [-p] <diretório> [diretório...]

Opções Descrição

Page 15: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

-p Remove também os diretórios intermediários, se os mesmos estiverem vazios

3.3 Editor de texto em um shell

3.3.1 mcedit

• Pré-requisitos: Para utilizar este editor verifique se os pacotes necessários estãoinstalados executando o seguinte comando em um shell: dpkg –q mc

O mcedit é o editor mais indicado para usuários oriundos do MS-DOS/Win que utilizavam o Edit,principalmente quando acessado a partir da interface texto (console do Linux). Apesar de não fornecercompatibilidade com as teclas de acesso a funções do Edit, sua semelhança e teclas de funções deixam ousuário mais confortável neste ambiente.

Sintaxe: mcedit [nome_arquivo]

A parte superior da tela do mcedit possui uma barra de status que apresenta informações referentes àedição3. Quando a tecla <F9> é pressionada o mcedit substitui esta barra de status por uma barra demenus, que oferece acesso a todas as operações do mcedit.

Na parte inferior o mcedit apresenta a lista de teclas de atalho <Fn> e as operações associadas,servindo de referência rápida durante o uso do editor. A Tabela 3-3 apresenta uma lista com algumasoperações e suas teclas de atalho.

Tabela 3-3: Teclas de acesso a funções do mcedit

TeclaConsole Linux

(interface texto)Finalidade

F2 Salvar o arquivo atual

F3 <Shift>+<movimentação>Pressione para marcar o ponto inicial e final de uma seleção. A seleção poderá ser copiada, movida, ou apagada. A seleção também pode ser feita com o mouse.

F4 Acesso à janela Substituir. Digite a expressão a ser pesquisada e sua substituição e pressione <Enter>

F5<Ctrl> + <Ins> (copia)<Shift> + <Ins> (cola)

Copia a área selecionada para a posição do cursor.

F6<Shift> + <Del> (recorta)<Shift> + <Ins> (cola)

Move a área selecionada para a posição do cursor.

F7 Acesso à janela Procurar. Digite a expressão a ser pesquisada e pressione <Enter>

F8 <Ctrl> + <Del> Apaga a área selecionada ou a linha atual.F9 Acesso a barra de menusF10 Sair do mcedit.

F12 Salvar arquivo como (digite o nome do arquivo quando surgir a janela Salvar).

Ctrl-u Desfaz a última ação efetuada.

3.4 Exercícios propostosAo contrário da crença de muitos usuários de interface gráfica, a interface textual/comandos (neste caso

o shell bash) do Linux oferece uma ampla variedade de comandos para manipular arquivos e diretóriosbem como ferramentas para utilizar facilidades do sistema.

Na verdade, as operações em um shell são, na grande maioria das vezes, mais rápidas por não impor o“peso computacional” de interagir com o usuário através de um ambiente gráfico. Por este motivo, serãoexercitados alguns comandos básicos da interface textual do Linux, visando tornar seu dia-a-dia maisprodutivo.

3 informações referentes à edição: coluna, linha atual, total de linhas, caractere atual, total de caracteres,código do caractere na tabela ASCII, valor em hexadecimal

Page 16: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

Para completar esta tarefa poderão ser utilizados: as descrições de sintaxe de comandos básicos dotópico 3 e a ajuda on-line do sistema (man comando); Faça o login e suba para o nível de superusuáriocom sudo -s, realizando as atividades no shell padrão do sistema:

1. Acesse diferentes diretórios, usando o comando cd;

a. Verifique qual é o diretório atual/corrente (comando pwd)

b. Entre no diretório /etc/init.d (cd /etc/init.d)

c. Volte ao seu diretório home (somente cd ou cd ~)

d. Volte ao diretório anterior ao diretório atual (cd -)

2. Liste os arquivos do diretório atual (comando ls)

a. Verifique o significado das cores (para facilitar use a opção –F, ls -F);

b. Utilize diferentes opções para obter listagem mais completas (ls -l), de todos os arquivos(ls -la), em ordem de tempo (ls -lat), em ordem reversa (ls -latr);

c. Utilize coringas: ? * (ls –latr n*)

d. Liste os arquivos do diretório (/etc/init.d/) (ls –la /etc/init.d/)

3. Manipule diretórios (criação e remoção)

a. Crie o diretório /util/transf usando o comando mkdir Isto pode ser feito dediferentes maneiras:i. mkdir /util ; cd /util ; mkdir transf

ii. Usando a opção -p: mkdir –p /util/transf

b. Crie o diretório temp dentro do diretório acima criado

i. mkdir /util/transf/temp

c. Remova o diretório temp (rmdir /util/transf/temp/)

4. Copie arquivos e diretórios usando o comando cp

a. Crie um arquivo qualquer, no diretório home de seu usuário (/root), usando o editormcedit ; por exemplo: mcedit teste.txt

b. Copie este arquivo para o diretório /util/transf i. cp teste.txt /util/transf/

c. Entre no diretório /util (cd /util)

d. Copie o diretório transf para o diretório /root i. cp –r trans /root/

5. Remova arquivo e diretórios usando o comando rm

a. Entre no diretório /root/trans (cd /root/trans)

b. Remova a cópia do arquivo que você criou com o editor mcediti. rm teste.txt

c. Acesse o diretório /root .

i. Como você está no diretório /root/trans basta executar cd ..

d. Remova o diretório transf de seu diretório /root (rm –r transf)

6. Mova arquivos e diretórios usando o comando mv

a. Copiando arquivos mantém-se o original, quando usamos o mv o original é alterado deposição ou nome;

b. Crie o diretório temp dentro do diretório /root (mkdir /root/temp/)

c. Mova este diretório temp para o diretório (mv temp /util/transf/)

d. Entre no diretório /util/transf (cd /util/transf/)

e. Altere o nome do diretório temp para tmp (mv temp tmp)

Page 17: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

7. Visualize o conteúdo de arquivos com more ou less

a. Volte para o diretório home (cd)

b. Veja o conteúdo do arquivo .bashrc

i. less .bashrc (tecla q para sair)ii. more .bashrc (tecla q para sair)

c. Verifique qual ferramenta de visualização oferece maior facilidade de uso

i. Tente percorrer o arquivo com as teclas de movimentação

8. Manipule os processos com ps, top, kill

a. Mostre os processos de sua sessão shell com o comando ps (note que a saída padrão docomando ps exibe 4 colunas, entre as quais o número do processo PID, e CMD comandoexecutado para disparar o processo)

b. Execute a ferramenta top e coloque seu processo em background

i. Isso pode ser feito com a ferramenta top em execução com CTRL+Z seguido de bg

ii. Ou na linha de comando top &

c. Mostre novamente os processos de sua sessão;

d. Mate o processo referente à ferramenta top (kill PID)

e. Veja o que acontece quando você efetua o kill -9 no número de processo (coluna PID)referente ao bash (coluna CMD)

9. Faça novamente o login como usuário root para alterar sua senha

a. O comando passwd altera a senha do usuário atualmente “logado”;

b. O usuário root pode alterar a senha de outros usuários usando o comando: passwdnome_do_usuário

10. Explore o editor mcedit, ele poderá ser útil em outras atividades

11. Para finalizar sua sessão shell utilize o comando exit

Page 18: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

4 Gerenciamento de softwareSistemas baseados em GNU/Linux são utilizados em diversas áreas, desempenhando diferentes papéis.

Isso significa que muitos softwares podem estar disponíveis em um distribuição. Por este motivo, algumaforma/ferramenta de gerenciamento de software se faz necessária.

Todas as distribuições GNU/Linux possuem alguma abordagem para tratar as complicações envolvidasno processo de disponibilizar software. Estas abordagens para obter gerenciamento (de software) sãobaseadas em pacotes.

4.1 Tipos de pacotesPacote é um arquivo que, abriga todos os arquivos necessários para a instalação de um determinado

software, bem como as informações necessárias (dependências por exemplo) para que o gerenciador depacotes possa instalar, manter e remover softwares.

Um pacote pode abrigar os arquivos executáveis (binários) ou fontes de um software. A nomenclaturados pacotes com binários, geralmente segue o padrão:

pacote-versão-arquitetura.formato

O formato, neste caso, depende da distribuição para a qual o pacote foi disponibilizado, por exemplo:

◦ Binários : .deb - Debian, Ubuntu; .rpm - RedHat, Suse; .tgz – Slackware

Infelizmente, a utilização de um mesmo formato, não torna compatíveis pacotes destinados adistribuições diferentes. Ou seja, um pacote disponível para a distribuição RedHat, que usa o formato .rpm,poderá não funcionar/instalar na distribuição Suse.

Para os pacotes com os arquivos fontes a parte referente a arquitetura no nome do pacote édispensada, já que os arquivos fontes poderão ser compilados em qualquer arquitetura, alguns exemplossão:

◦ Fontes : .tar.gz e .tar.bz2 – geralmente não são destinados a uma distribuição, .srpm– pacote com os fontes voltado para distribuições.

Existem pacotes que não possuem nenhum arquivo, abrigando apenas dependências, o que força ainstalação de outros pacotes. Denominados metapacotes eles podem ser utilizados para obter, por exemplo:instalação de sistema de impressão, tipo de interface gráfica (kde, gnome), etc.

4.2 Ferramentas de gerenciamento de pacotesEm cada uma das principais atribuições de uma ferramenta de gerenciamento de pacotes podem-se

desejar as seguintes características:◦ Manutenção : possuir informações sobre todos os pacotes instalados e também disponíveis para

instalação; oferecer sistema de busca de pacotes; possibilitar acesso e formas de configuração derepositórios de pacotes: locais (diretórios, CDs) e remotos (via ftp, http, etc);

◦ Instalação : copiar, se necessário, o pacote do repositório; extrair (do pacote que geralmente écompactado) e posicionar todos os arquivos necessários para execução do software;verificar/resolver dependências; executar rotinas de pré e pós instalação;

◦ Atualização : verificar a existência de versões mais recentes de um pacote já instalado, bemcomo proceder a instalação se assim determinado pelo usuário;

◦ Remoção : remover somente os arquivos do pacote, mantendo os arquivos alterados ou nãoincluídos no pacote original; avisar quando outros pacotes dependem do pacote a ser removido;oferecer também opção de remoção de todos os pacotes dependentes.

Para obter tais características, a maioria das ferramentas utiliza um índice geral de pacotes. Essearquivo contém informações sobre os pacotes disponíveis; é um arquivo comum que pode ser baixado viaInternet, facilitando a configuração de repositórios espelho.

Page 19: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

4.3 Advanced Package Tool (APT)O APT foi desenvolvido originalmente para ser um novo front-end para o sistema dpkg de pacotes da

distribuição Debian (.deb). Por oferecer diversas facilidades, usuários de diversas distribuições passaram autilizar o APT como referência em discussões e/ou comparações sobre qual seria a melhor ferramenta degerenciamento de pacotes. Neste cenário, Alfredo K. Kojima (na época, funcionário da Conectiva)implementou o suporte ao sistema RPM de pacotes para o apt. O RPM teve origem na distribuição RedHate é também o tipo de empacotamento de distribuições como CentOS, Fedora, Suse, entre outras.

O administrador de um sistema Linux com APT pode usufruir das principais funções esperadas de umgerenciador de software, ou seja: acessar informações sobre pacotes; atualizar a lista de pacotes; procurar,instalar, atualizar, remover pacotes; atualizar a distribuição.

Também é possível configurar os repositórios de pacotes acessando o menu Configurações ->Repositórios. Todos os repositórios do arquivo /etc/apt/sources.list serão listados, sendo possívelrealizar alterações.

Por ser a ferramenta padrão do Ubuntu Server, nos próximos tópicos dar-se-á detalhamento quanto aoconfiguração e uso do apt.

4.3.1 Utilitários APT

apt-get – interface de linha de comando para manipular pacotes (instalação, remoção, atualização)

Sintaxe: apt-get [opções] <operação> [pacotes...]

Opções Descrição

-d Baixar somente – Não instala ou desempacota arquivos-f Tenta corrigir um sistema com dependências quebradas-q Saída mais silenciosa, omite indicadores de progresso-s Simula operações mas não altera o sistema

Operações Descrição

update Obtém novas listas de pacotes, disponíveis nos repositórios listados no/etc/apt/sources.list. Deve ser realizada com frequência,preferencialmente antes de outras operações (install, dist-upgrade)

upgrade Atualização passiva, somente instala novas versões de pacotes instalados quenão alterem o estado de outros pacotes, e não tenham dependências depacotes não instalados.

install Instala novos pacotes, se o pacote já foi instalado instala atualizações sedisponíveis.

remove Remove pacotesautoclean Apaga arquivos de versões mais antigas obtidos para instalaçãoclean Apaga arquivos obtidos para instalação (/var/cache/apt/archives)dist-upgrade Atualização da distribuição. Este método é mais inteligente e ativo que o

upgrade, atualizando pacotes e dependências automaticamente.

Exemplo: root@servidor:~# apt-get update ; apt-get install mc

apt-cdrom – ferramenta de linha de comando para adicionar CD-ROMs na lista de repositórios

Sintaxe: apt-cdrom [opções] <operação>

Opções Descrição-d=caminho Caminho onde o CD está montado (padrão é: /mnt/cdrom)-m Não tenta montar CD (CD já esta montado)-f Modo rápido, sem verificação de pacotes. Deve ser utilizado somente se

nenhum erro foi detectado em uma execução anterior do apt-cdrom-a Busca extensiva de pacotes, ou seja, procura pacotes em todo o CD.

Operações Descriçãoadd Inserir uma nova entrada cdrom: na lista de repositórios. Tenta desmontar o

CD e pede para que um CD seja inserido. Efetua a verificação e copia dosarquivos de índice

ident Mostra a identificação do CD atual.

Exemplo: root@servidor:~# apt-cdrom add

Page 20: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

apt-cache – ferramenta de linha de comando para obter informações sobre pacotes

Sintaxe: apt-cache [opções] <operação> [nome...]

Opções Descrição-a Mostra todas as versões de um pacote, este é o comportamento padrão. Para

mostrar somente a ultima versão dos pacotes deve-se utilizar a opção --no-all-versions

-f Em uma busca mostra todas as informações disponíveis sobre um pacote--recurse Mais informações de dependências são mostradas

Operações Descrição

depends Mostra as dependências que um pacote possui quanto à outros pacotessearch Procura o texto contido em nome em todos os pacotes, incluindo nomes de

pacotes e descrições. A saída apresenta o nome do pacote e uma brevedescrição.

show Mostra um registro legível sobre um pacote (nome, descrição, tamanho).showpkg Mostra informações gerais sobre um pacote (versões, dependências)rdepends Mostra os pacotes que dependem do pacote passado em nome.

Exemplo: root@servidor:~# apt-cache show bash

apt – ferramenta unificada para manipulação de pacotes

Sintaxe: apt [opções] <operação> [pacotes...]

Opções Descrição

-a Permite especificar a arquitetura caso necessário-a=i386

Operações Descriçãoupdate Obtém novas listas de pacotes, disponíveis nos repositórios listados no

/etc/apt/sources.list. Deve ser realizada com frequência,preferencialmente antes de outras operações (install, dist-upgrade)

upgrade Atualização passiva, somente instala novas versões de pacotes instaladosque não alterem o estado de outros pacotes, e não tenham dependências depacotes não instalados.

install Instala novos pacotes, se o pacote já foi instalado instala atualizações sedisponíveis.

remove Remove pacotesautoclean Apaga arquivos de versões mais antigas obtidos para instalaçãoclean Apaga arquivos obtidos para instalação (/var/cache/apt/archives)full-upgradeoudist-upgrade

Atualização da distribuição. Este método é mais inteligente e ativo que oupgrade, atualizando pacotes e dependências automaticamente.

search Procura o texto contido em nome em todos os pacotes, incluindo nomes depacotes e descrições. A saída apresenta o nome do pacote e uma brevedescrição.

show Mostra um registro legível sobre um pacote (nome, descrição, tamanho).

O utilitário apt unifica as principais funcionalidades do sistema APT tornando, maissimples e rápido a assimilação por parte do usuário iniciante, bem como opcional o uso dosutilitários tradicionais.

4.3.2 Manipular pacotes usando dpkgPara instalação e remoção de pacotes o APT faz uso do Sistema de Gerenciamento de Pacotes DEB

(dpkg), assim a manipulação de pacotes no Ubuntu também pode ser feita através do comando dpkg.

dpkg – interface de linha de comando para manipulação de pacotes

Sintaxe: dpkq [opções_de_consulta [padrão] <nome>]

A ferramenta dpkg pode ser utilizada para construir, instalar, consultar, verificar, atualizar eremover pacotes dependendo das opções passadas na linha de comando.

Opções de consulta Descrição-l [padrão] Consulta a todos os pacotes instalados. Se o argumento [padrão] é

Page 21: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

utilizado os resultados serão restritos aos pacotes que atendem aexpressão de busca informada neste argumento.

-L<nome_do_pacote>

Lista todos os arquivos contidos em um pacote instalado.

-S <padrão> Lista o(s) pacote(s) instalado(s) que possui (em) arquivo(s) queatende(m) a expressão de busca informada em [padrão].

-s [padrão] Exibe informações sobre pacotes instalados (resultado similar aocomando apt-cache show)

-i<arquivo_de_pacote>

Instalação do arquivo de pacote será realizada caso o mesmo nãotenha dependências de outro software não instalado no sistema. Oargumento deve ter o nome completo do arquivo de pacote (e.g.:gpm_1.20.7-5_amd64.deb).

-r<nome_do_pacote>ou -–remove

Remove o pacote do sistema, mantendo arquivos de configuração.

-P<nome_do_pacote>ou -–purge

Remove o pacote do sistema, excluindo arquivos de configuração.

Exemplo: Para mostrar arquivos/diretórios relacionados a configuração do pacote cups:

root@servidor:~# dpkg -L cups | egrep “etc|conf|cfg”

/etc

/etc/cups

/etc/cups/snmp.conf

/usr/share/man/de/man5/subscriptions.conf.5.gz

/usr/share/man/fr/man5/subscriptions.conf.5.gz

/usr/share/man/man5/subscriptions.conf.5.gz

root@servidor:~#

4.4 Exercícios propostos1. Para tornar o uso do sistema operacional Linux no modo texto mais agradável, instale o gpm, assim o

mouse poderá ser utilizado para copiar/colar texto. Como já foi visto, diversos utilitários APT estãodisponíveis para instalação, remoção, e atualização (ou seja manipulação) de softwares. Para realizaresta tarefa utilize o apt-get, seguindo os seguintes passos:

o Faça login e eleve o nível de usuário com: sudo -s

o Verifique se há algum repositório ativo contém o componente universe no arquivo derepositórios /etc/apt/sources.list

o Instale o software gpm com: apt update; apt install gpm

Page 22: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

5 Administração de usuários

5.1 IntroduçãoUsuários e grupos são os elementos centrais na implementação de restrições de acesso à recursos e

segurança local em um sistema. Neste tópico, serão verificados algumas ferramentas utilizadas paraviabilizar este tipo de gerenciamento;

Por convenção, o usuário root é o superusuário do sistema, ou seja, tem direito de acesso a todos osrecursos (isso inclui todos os arquivos, diretórios, dispositivos). Assim, quando alguém faz login comousuário root, pode fazer tudo, inclusive remover todos os arquivos do sistema. Por isso, é uma boaprática, na administração de sistemas UNIX, efetuar login como usuário root ou elevar para nível desuperusuário somente quando alguma configuração que exija todos os direitos é necessária.

Como já comentado no tópico 2.4.4, no Ubuntu o usuário root está desativado por padrão, e o usuáriocriado durante a instalação é o único que pode se elevar ao nível de superusuário para então configurar osistema de acordo com suas necessidades. Caso outros usuários também possam acessar o sistema comosuperusuário, em um sistema Ubuntu, essa permissão deve ser definida no arquivo /etc/sudoers.

Para realizar atividades de usuário como: editar um documento, criar uma planilha, elaborar umaapresentação, navegar na Internet, enviar/receber e-mails pode-se e deve-se adicionar usuários.

Criar e manter contas de usuários é uma parte importante do trabalho de um administrador Linux.Através deste gerenciamento, pode-se permitir ou restringir o acesso a serviços e documentos.

Tipos diferentes de usuários possuem necessidades diferentes e devem receber contas diferentes.Definir corretamente a conta de cada usuário garante que o mesmo terá acesso para o desempenho de suasatividades, não se permitindo privilégios adicionais que possam comprometer a segurança do sistema.

O Linux utiliza 3 arquivos para manter informações sobre usuários e grupos:

/etc/passwd /etc/group

/etc/shadowExiste ainda um diretório para auxiliar na criação de novos usuários:

/etc/skel

5.1.1 /etc/passwdO arquivo /etc/passwd contém informações sobre todos os usuários. O root sempre será o primeiro da

lista, com UID (user ID) 0 e GID (group ID) 0.

Usuários e contas especiais associados a serviços e daemons são listados a seguir, tendo valores UID eGID abaixo de 1000. Após são listadas as contas de usuários comuns. Veja abaixo um exemplo:

root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:daemon:x:2:2:daemon:/sbin:adm:x:3:4:adm:/var/adm:lp:x:4:7:lp:/var/spool/lpd:sync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:news:x:9:13:news:/var/spool/news:uucp:x:10:14:uucp:/var/spool/uucp:operator:x:11:0:operator:/root:ftp:x:14:50:FTP User:/var/ftp:nobody:x:65534:65534:Nobody:/home:www-data:x:100:101::/var/www:/bin/falsesshd:x:101:102:sshd:/var/empty:/bin/false

Page 23: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

stunnel:x:102:233::/home/stunnel:/dev/nullntp:x:104:104:NTP daemon:/etc/ntp:/bin/falsenamed:x:105:234:Domain name server:/var/named:/bin/falsealuno:x:1000:1000:aluno:/home/aluno:/bin/bash

Observando-se a última entrada do arquivo, vemos o registro do usuário aluno, com os seguintescampos delimitados por dois pontos:

* Nome do usuário: aluno

* Senha: aqui vemos um "x", que indica que a senha está guardada em outro local (/etc/shadow).* User ID: este número (1000) estará associado a todos os arquivos criados ou pertencentes ao usuário

aluno. Tipicamente os processos também se associam ao UID do usuário que o iniciou.

* Group ID padrão: é o grupo de login do usuário. Todos os arquivos do sistema são de propriedade deum usuário e de um grupo. Quando o usuário aluno cria um novo arquivo, este receberá por padrão o valorGID 1000. Não é coincidência que o UID tem o mesmo valor do GID: esta é a abordagem adotada peloUbuntu, sendo chamada de "grupos privados de usuários". Outras distribuições Linux (como Suse) adotamum único grupo para todos os usuários (users).

* Descrição do Usuário: este campo guarda informações do usuário, como seu nome, telefone, e-mail,etc.

* Diretório home do usuário: quando o usuário loga no sistema, o programa login utiliza este campopara definir a variável $HOME. Por padrão, este diretório será /home/nome_do_usuário.

* Shell de login do usuário: por padrão esta é /bin/bash (Bourne Again Shell). Contas que nãoprecisam ou não devem (por medidas de segurança) ter um shell de login possuem neste campo/bin/false.

No exemplo apresentado do arquivo /etc/passwd vê-se várias contas de sistema com UID menor que1000. Algumas delas são necessárias para o funcionamento do sistema (como root, bin, daemon e halt);outras são associadas com servidores ou programas específicos (como mail, news, www-data, sshd e ftp).

É importante fazer backup do arquivo /etc/passwd (idem /etc/shadow e /etc/group) após ainstalação do sistema ou após adicionar ou remover algum usuário. Estes arquivos serão úteis caso sejanecessário reinstalar o sistema.

5.1.2 /etc/shadowQuando se atribui uma senha para um usuário, esta é criptografada utilizando-se um valor

randomicamente gerado (chamado salt). A senha criptografada juntamente com o salt são então guardadosno arquivo /etc/shadow, onde somente o root tem permissão de leitura e escrita.

O arquivo /etc/passwd precisa estar com permissão de leitura ao sistema pois é ele quem associaUIDs e GIDs com nomes.

Veja um exemplo do arquivo /etc/shadow:

root:$1$chv94j0r64n30y2adV1F6cvj1PMBGF.:12060:0:99999:7:::bin:*:12118:0:99999:7:::daemon:*:12118:0:99999:7:::adm:*:12118:0:99999:7:::lp:*:12118:0:99999:7:::sync:*:12118:0:99999:7:::shutdown:*:12118:0:99999:7:::halt:*:12118:0:99999:7:::mail:*:12118:0:99999:7:::news:*:12118:0:99999:7:::uucp:*:12118:0:99999:7:::operator:*:12118:0:99999:7:::ftp:*:12118:0:99999:7:::nobody:*:12118:0:99999:7:::www-data:!!:12118:0:99999:7:::sshd:!!:12118:0:99999:7:::stunnel:!!:12118:0:99999:7:::

Page 24: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

postfix:!!:12118:0:99999:7:::ntp:!!:12118:0:99999:7:::named:!!:12118:0:99999:7:::aluno:$1$4FyKg9qa$jtLyTgTGqHPy5ePxxfknl/:12060:0:99999:7:::

Observando-se a última entrada do arquivo, vemos o registro do usuário aluno, com os seguintescampos delimitados por dois pontos:

* Nome do usuário: aluno . É o mesmo referido no arquivo /etc/passwd.

* Senha criptografada* Última mudança de senha: este número representa o número de dias decorridos entre 1 de janeiro de

1970 e a última alteração da senha.

* Número de dias para que a mudança de senha seja permitida: tipicamente este número é zero,permitindo que o usuário mude sua senha quando desejar.

* Número de dias após o qual a senha deve ser alterada: caso a alteração da senha não seja forçada, estenúmero será 99999.

* Número de dias antes da expiração da senha no qual o usuário será avisado: tipicamente o usuário éavisado com uma semana de antecedência.

* Número de dias entre a expiração da senha e a desativação da conta: caso não se queira desativaçãoautomática da conta, o campo é deixado em branco ou com o valor 1.

* Dia da desativação da conta: dias decorridos entre 1 de Janeiro de 1970 e a data em que a conta serádesativada. Um valor em branco (ou 1) neste campo suspende desativação automática.

* Campo reservado: para uso futuro.

5.1.3 /etc/skelQuando um diretório pessoal é criado, ele é inicializado com arquivos oriundos do diretório

/etc/skel. O administrador do sistema pode criar arquivos no /etc/skel que podem disponibilizarum bom ambiente para os usuários.

É importante tentar manter o /etc/skel o menor possível, uma vez que poderá ser extremamentetrabalhoso ter que atualizar todos os arquivos dos usuários já existentes. Sempre que possível, é melhorcolocar alguma configuração genérica em arquivos de configuração global como, por exemplo, o/etc/profile. Assim podem-se realizar atualizações sem alterar diretamente as configurações dosusuários.

5.2 Inclusão de usuáriosSomente o super usuário (root) pode criar um novo usuário no sistema, através dos seguintes passos:

1. Criar uma entrada para o usuário no arquivo /etc/passwd.

2. Especificar uma senha.3. Especificar um shell de login.

Adicionalmente há dois passos não obrigatórios:4. Criar um diretório home para o usuário.

5. Colocar neste diretório home arquivos úteis ao usuário.Estes passos podem usando a linha de comando em um shell, onde o comando useradd cria a entrada

do usuário no arquivo /etc/passwd, com a seguinte sintaxe:root@servidor:~# useradd [-d diretório-home] nome-do-usuário

O useradd cria uma nova conta com os valores relacionados na linha de comando, adicionandovalores padrões para os ítens não especificados.

Por exemplo, o diretório home será criado por padrão em /home/nome-do-usuário, ou no localespecificado pelo argumento -d acima. Ainda por padrão, o sistema criará um grupo com o mesmo nome dousuário fornecido. Os arquivos contidos no diretório /etc/skel serão copiados para o novo diretório home.

A seguir, deve-se especificar uma senha para o novo usuário, com o seguinte comando:

Page 25: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

root@servidor:~# passwd nome-do-usuário

5.3 Remoção de usuáriosO comando userdel remove a entrada do usuário do arquivo /etc/passwd e opcionalmente

também seu diretório home com todos os arquivos e subdiretórios ali contidos. Os arquivos pertencentes aousuário que estejam em outros diretórios permanecerão no sistema, e aparecerão como pertencentes ao UIDdo usuário quando mostrados pelo comando ls -l. A sintaxe do userdel é:

root@servidor:~# userdel [-r] nome-do-usuário

A opção -r faz com que o diretório home do usuário seja removido também.

Para se pesquisar arquivos pertencentes ao usuário em outros diretórios do sistema utiliza-se ocomando find, com a seguinte sintaxe:

root@servidor:~# find / -gid GID-do-usuário -uid UID-do-usuário

Os arquivos encontrados podem ser removidos, ou você pode mudar a sua propriedade com ocomando:

root@servidor:~# chown novo-dono.novo-grupo arquivo

O comando acima altera o proprietário e o grupo do arquivo. Pode-se usar a opção -R para alterarrecursivamente propriedades dentro de um diretório.

5.4 Exercícios propostos1. Siga as recomendações dadas durante a aula para realizar as seguintes tarefas:

Adicione um grupo com o nome vendas

o root@servidor:~# groupadd vendas

Adicione um usuário com o login paulo

o root@servidor:~# useradd paulo

Ajuste a senha inicial do usuário paulo

o root@servidor:~# passwd paulo

Acrescente ao usuário paulo o grupo vendas

o root@servidor:~# usermod –G vendas paulo

Adicione outro usuário, com o login maria, ajustando também sua senha inicial

Verifique quais são os diretórios home de cada usuário criado

o root@servidor:~# less /etc/passwd

Faça login como usuário maria e tente acessar o diretório home do usuário Paulo

o maria@servidor:~$ cd /home/paulo

Agora faça login como usuário paulo e altere as permissões de acesso do diretório home do usuáriopaulo de maneira que qualquer usuário possa, ler (r), gravar (w), executar (x) todos os seus arquivos ediretórios.

o paulo@servidor:~$ chmod –R a+rwx /home/paulo

Page 26: Sistema Operacional GNU/Linuxmauricio.severich.com.br/teaching/redes/Guia_Basico_Linux.pdf · 1 Sistema Operacional GNU/Linux De maneira simples pode-se dizer que o Linux é um sistema

6 Referências[1] Guia Foca GNU/Linux. Disponível em <https://guiafoca.org>.

[2] Guia do Desktop Ubuntu Disponível em <https://help.ubuntu.com/stable/ubuntu-help/index.html>.[3] Guia do Servidor Ubuntu. Disponível em <https://help.ubuntu.com/lts/serverguide/index.html>.