Mudanças entre as edições de "PJI2-2019-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 
= Projeto Integrador II =  
 
= Projeto Integrador II =  
  
'''Professores:''' [[Usuário:Ederson.luiz|Ederson Luiz de Souza Santos]] ([mailto:ederson.luiz@ifsc.edu.br ederson.luiz@ifsc.edu.br])  
+
'''Professores:''' [[Usuário:Ederson.luiz|Ederson Luiz de Souza Santos]] ([mailto:ederson.luiz@ifsc.edu.br ederson.luiz@ifsc.edu.br]) e [[Usuário:juliana.camilo|Juliana Camilo]] ([mailto:juliana.camilo@ifsc.edu.br juliana.camilo@ifsc.edu.br])  
 
<br>'''Encontros:''' 3a feira/19:00, 5a feira/19:00
 
<br>'''Encontros:''' 3a feira/19:00, 5a feira/19:00
 
<br>'''Atendimento paralelo:''' 2a e 3a feira 17:30 h
 
<br>'''Atendimento paralelo:''' 2a e 3a feira 17:30 h

Edição das 20h49min de 12 de março de 2019

Projeto Integrador II

Professores: Ederson Luiz de Souza Santos (ederson.luiz@ifsc.edu.br) e Juliana Camilo (juliana.camilo@ifsc.edu.br)
Encontros: 3a feira/19:00, 5a feira/19:00
Atendimento paralelo: 2a e 3a feira 17:30 h
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)

Endereço encurtado: http://bit.ly/pji2-2019-1

PPC Curso Técnico Subsequente de Telecomunicações


Objetivo Geral

Implantar rede de dados e telefônica de pequeno porte, típica de um pequeno escritório.

Ementa

Introdução e histórico das telecomunicações e da Internet. Uso de serviços e aplicações oferecidos pelas redes de telecomunicações. Conceitos sobre redes de computadores: comutação de pacotes versus comutação de circuitos, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico: telefonia fixa e móvel, centrais de comutação, telefonia IP e convergência. Integração de serviços de voz convencionais e VoIP.

Bibliografia

  • FOROUZAN, Behrouz A.; FEGAN, Sophia Chung. Comunicação de dados e redes de computadores. Tradução de Ariovaldo Griesi. 4. ed. São Paulo: McGraw-Hill, 2008. 1134 p., il. ISBN 9788586804885.
  • KUROSE, J. e ROSS, K. Redes de Computadores e a Internet: Uma abordagem top-down. Tradução da 3a edição, Addison Wesley, 2006.
  • COLCHER, Sérgio. VOIP: voz sobre IP. Rio de Janeiro: Elsevier, 2005.

Material de apoio

Alguns textos interessantes

Oportunidades para Técnicos em Telecomunicações

Documentários sobre telecomunicações

Curiosidades

12/02/2019: Apresentação da disciplina

Aula 1

Arquivo apresentação da disciplina

Apresentação da disciplina 2019-1

Projeto Integrador II

O componente Curricular Projeto Integrador II deve tratar conceitos sobre redes de computadores, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico. Integração de serviços de voz convencionais e VoIP.


Configurando a conta Google

Para a criação do relatório, que será utilizado no decorrer do semestre e deve ser entregue ao término da primeira etapa da disciplina, iremos utilizar ferramentas online. Para tanto, faremos uso de uma conta do Google e das ferramentas Google Drive e Google Documents.

Caso não tenha uma conta Google, deve criar a mesma. Pode usar este link.

Depois de criada a conta, acesse o Google Drive:

Googledrive.jpg

Vamos garantir que sua conta fique com o idioma em português. Para isso, clique no botão Configurações e vá na opção Configurações:

Googledriveconf.jpg

Vá em Idioma e Alterar configurações de idioma.

Clique no lápis ao lado do Idioma, mesmo que esteja em Português, escolha novamente o idioma e clique em selecionar. Caso apareça uma mensagem abaixo avisando que nem todas as ferramentas estão no idioma escolhido, clique para atualizar em todas.

Googledriveconf2.jpg

Dentro do Google Drive, crie uma pasta com o nome PJI 2.

Entre na pasta, clique com o botão direito e escolha a opção Documentos Google.

Googledrive2.jpg

No topo da página que irá se abrir, coloque o nome do documento. Deverá se chamar Relatório PJI2 - Nome completo do aluno.

Googledrive3.jpg

Procure no Google um logo do IFSC, para ser colocada no cabeçalho do documento.

Clique duas vezes no cabeçalho, marque a opção Cabeçalho/Rodapé diferente na primeira página e cole a imagem escolhida logo em seguida.

Clique fora do cabeçalho, troque a fonte para Arial, tamanho 24, negrito, centralizado e espaçamento entre linhas de 1,5.

Aperte 4 vezes o enter e digite Projeto Integrador II.

Aperte 3 vezes o enter e digite Curso Técnico Subsequente de Telecomunicações.

Aperte uma vez o enter e altere a fonte para Arial, tamanho 12.

Aperte 4 vezes o enter e digite Professor: Ederson Luiz de Souza Santos

Aperte o enter e digite Aluno: Nome completo

Aperte o enter é chegar a última linha da página e digite São José, 2019

A página deve ficar como na imagem:

Googledrive4.jpg


Agora iremos criar uma quebra de página. Ela serve para não desconfigurar as páginas seguintes caso mudemos algum espaçamento nas páginas anteriores. Para isso aperte as teclas Ctrl + enter.

Esta página ficará disponível para o sumário, que será gerado automaticamente.

Aperte Novamente Ctrl + enter.

Altere a fonte para Arial, tamanho 12, negrito e alinhado a esquerda.

Digite INTRODUÇÃO, com todas as letras maiúsculas. Este será nosso título 1. Neste ponto, iremos utilizar uma função chamada de Estilos. Clique na caixa Estilos, vá em Título 1, clique na seta ao lado dela e clique na opção Atualizar título para corresponder. Esta opção irá definir o Título 1 com as configurações de texto que acabamos de definir. Os próximos títulos que estiverem no mesmo nivel hierárquico utilizaremos esta função.

Googledrive5.jpg

Aperte duas vezes o enter.

Digite algum texto, só para ter como referência. Altere a fonte para Arial, tamanho 12, sem negrito, alinhamento justificado e recuo da primeira linha em 1,25 cm.

Selecione o texto e vá em Estilos, texto normal, clique na seta ao lado e escolha a opção Atualizar texto normal para corresponder. Irá definir como o texto deverá ficar.

Googledrive6.jpg

Aperte Ctrl + enter.

Digite DESENVOLVIMENTO e posteriormente aplique o estilo Título 1. Veja que ficou igual a INTRODUÇÃO.

Aperte duas vezes o enter e digite algum texto para referência. Aplique o estilo Texto Normal.

Aperte duas vezes o enter e digite SUBTÍTULO 1 em maiúsculo. A fonte deve ser Arial, tamanho 12, sem negrito, sem recuo de primeira linha e alinhamento justificado.

Selecione o SUBTÍTULO 1 e vá em Estilos, Título 2 e Atualizar título 2 para corresponder.

Googledrive7.jpg

Aperte duas vezes o enter e digite algum texto de referência. Aplique o estilo Texto normal.

Aperte duas vezes o enter e digite Subtítulo 1.1. A fonte deve ser Arial, tamanho 12, sem negrito, sem recuo de primeira linha e alinhamento justificado.

Selecione o Subtítulo 1.1 e vá em Estilos, Título 3 e Atualizar título 3 para corresponder.

Googledrive8.jpg

Aperte duas vezes o enter e digite algum texto de referência. Aplique o estilo Texto normal.

Aperte duas vezes o enter e digite Subtítulo 1.1.1 A fonte deve ser Arial, tamanho 12, sem negrito, sem recuo de primeira linha e alinhamento justificado.

Selecione o Subtítulo 1.1.1 e vá em Estilos, Título 4 e Atualizar título 4 para corresponder.

Googledrive9.jpg

Aperte Ctrl + enter.

Digite CONCLUSÃO e posteriormente aplique o estilo Título 1. Veja que ficou igual a INTRODUÇÃO.

Clique duas vezes no cabeçalho, vá em Inserir, Cabeçalho e número da página, Número da página e clique no segundo botão da primeira fileira. Alinhe o número da página a direita e aperte uma vez o enter para o número descer um pouco.

Googledrive10.jpg

Agora retorne a segunda página, onde iria ficar o nosso sumário. Deixe o cursor na primeira linha. Clique em Inserir, Sumário, Com número de página.

Googledrive11.jpg

Pronto!!! Agora você possui um modelo de como o Relatório deverá ficar, com as configurações ajustadas.


14/02/2019: Sistema operacional e introdução ao Linux

Aula 2

O que é GNU/Linux

Linux é o núcleo do sistema operacional, programa responsável pelo funcionamento do computador, que faz a comunicação entre hardware (impressora, monitor, mouse, teclado) e software (aplicativos em geral). O conjunto do kernel e demais programas responsáveis por interagir com este é o que denominamos sistema operacional. O kernel é o coração do sistema.

Os principais programas responsáveis por interagir com o kernel foram criados pela fundação GNU. Por este motivo é mais correto nos referenciarmos ao sistema operacional como GNU/Linux ao invés de apenas Linux.

Uma distribuição nada mais é que o conjunto de kernel, programas de sistema e aplicativos reunidos num único CD-ROM (ou qualquer outro tipo de mídia). Hoje em dia temos milhares de aplicativos para a plataforma GNU/Linux, onde cada empresa responsável por uma distro escolhe os aplicativos que nela deverão ser inclusos.

Software livre

Open Source

Como o kernel trabalha

Assim que o computador é ligado, o kernel é acionado e começa a detectar todo o hardware que ele possui e o que precisa para funcionar. Após o carregamento, o núcleo assume outras funções: gerenciar os processos, os arquivos, a memória e os dispositivos periféricos, fazendo com que ele seja o “organizador” de tudo o que acontece na máquina.

Após realizar todas essas etapas, o sistema operacional está pronto para funcionar. Ele carrega as funções responsáveis por checar o que deve ser inicializado em nível de software e processos, como, por exemplo, o conteúdo do arquivo /etc/init. Geralmente, o que é carregado é a tela de login do usuário.

Com o usuário logado e o sistema operacional trabalhando, o kernel passa a executar suas funções, como a de controlar o uso da memória pelos programas ou a de atender a chamada de uma interrupção de hardware.

É possível baixar o código-fonte e o próprio kernel do Linux a partir do site oficial. Nesse endereço não só é possível ter a última versão como também mais antigas. Além disso, lá o usuário pode obter informações, reportar bugs e participar de listas de discussão.

Kernel2.jpg

Distribuições Linux

O Linux possui vários sabores e estes são denominados distribuições. Uma distribuição nada mais é que um kernel acrescido de programas escolhidos a dedo pela equipe que a desenvolve. Cada distribuição possui suas particularidades, tais como forma de se instalar um pacote (ou software), interface de instalação do sistema operacional em si, interface gráfica, suporte a hardware. Então resta ao usuário definir que distribuição atende melhor suas necessidades.

Lista de distribuições Linux

Distlinux.jpg

Interface gráfica

Uma das coisas que os usuários mais estranham quando migram para o Linux é a existência de diversas interfaces gráficas, coisa que não é comum no Windows nem no Mac OS X, a não ser quando o fabricante decide fazer alguma alteração. Diferente do que acontece nesses outros sistema operacionais, no Linux é possível mudar a interface gráfica do sistema. Mudando a interface gráfica do sistema, a distribuição Linux continua sendo a mesma mas toda a aparência é alterada. Quem não conhece a diferença entre sistema operacional e interface gráfica pode pensar que se trata de outra distribuição ou até mesmo de outro sistema operacional. As interfaces gráficas mais conhecidas são Unity, Gnome, KDE, XFCE, LXDE, Cinnamon e Mate.

Unity

Unity.jpg

KDE

Kde.jpg

Cinnamon

Cinnamon.jpg

Mate

Mate.jpg

Estrutura de diretórios no Linux

O primeiro choque para quem está vindo do Windows é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. Basicamente, no Windows temos os arquivos do sistema concentrados nas pastas Windows e Arquivos de programas e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório /home.

Mas, as diferenças não param por aí. Para onde vão os programas que são instalados se não existe uma pasta central como a arquivos de programas? E para onde vão os arquivos de configuração se o Linux não possui nada semelhante ao registro do Windows?

A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz.

Dentro deste diretório temos não apenas todas as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos.

Entendendo a estrutura de diretórios


Estrutura de diretórios

Dirlinux.jpg

O que é o Sistema Operacional

O sistema operacional funciona com a iniciação de processos que este irá precisar para funcionar corretamente. Esses processos poderão ser arquivos que necessitam de ser frequentemente atualizados, ou arquivos que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operacional a partir do gerenciador de tarefas, onde se encontram todos os processos que estão em funcionamento desde a inicialização do sistema operacional até a sua utilização atual.

O sistema operacional é uma coleção de programas que:

  • Inicializa o hardware do computador
  • Fornece rotinas básicas para controle de dispositivos
  • Fornece gerência, escalonamento e interação de tarefas
  • Mantém a integridade de sistema


Qual é o papel de um Sistema Operacional

As funções do sistema operacional são inúmeras:

  • Gestão do processador: o sistema operacional se encarrega de gerenciar o subsídio do processador entre os diversos programas, graças a um algoritmo de escalonamento. O tipo de programador é totalmente dependente do sistema operacional em função do objetivo visado.
  • Gestão da memória RAM: o sistema operacional se encarrega de gerenciar o espaço de memória atribuído a cada aplicativo e, se for o caso, a cada usuário. No caso de insuficiência de memória física, o sistema operacional pode criar uma área de memória no disco rígido, chamada de memória virtual. Ela faz funcionar aplicativos que necessitam de mais memória do que a memória RAM tem disponível no sistema. Por outro lado, esta memória é muito mais lenta.
  • Gestão das entradas/saídas: o sistema operacional unifica e controla o acesso dos programas aos recursos materiais através dos drivers (também chamados de gerenciadores de periféricos ou gerenciadores de entrada/saída).
  • Gestão da execução dos aplicativos: o sistema operacional é responsável pela boa execução dos aplicativos, atribuindo-lhes os recursos necessários ao seu funcionamento. Desta maneira, ele também permite eliminar um aplicativo que não responda corretamente.
  • Gestão dos direitos: o sistema operacional é responsável pela segurança ligada à execução dos programas, garantindo que os recursos sejam utilizados apenas pelos programas e usuários que possuam direitos para tanto.
  • Gestão dos arquivos: o sistema operacional gerencia a leitura e a redação no sistema de arquivos e os direitos de acesso aos arquivos pelos usuários e aplicativos.
  • Gestão das informações: o sistema operacional fornece diversos indicadores para diagnosticar o bom funcionamento da máquina.


Quais são os componentes do sistema operacional

O sistema operacional é composto por um conjunto de softwares que permitem administrar as interações com o hardware. Neste conjunto de softwares distinguem-se os seguintes elementos: o núcleo (kernel), que representa as funções fundamentais do sistema operacional tais como gestão da memória, processos, arquivos, entradas/saídas e das funcionalidades de comunicação; o Intérprete de comandos (shell), ou seja, a camada externa, por oposição ao núcleo, que permite a comunicação com o sistema operacional por meio de uma linguagem de comandos para o usuário pilotar os periféricos ignorando muitas das características do hardware como, por exemplo, a gestão dos endereços físicos; e o sistema de arquivos (file system), que permite registrar os arquivos em arborescência.


Como funcionam os sistemas multitarefas

Um sistema operacional é multitarefas quando várias tarefas (também chamadas de processos) podem ser executadas simultaneamente.

Os aplicativos são compostos por uma sequência de instruções chamados processos rápidos (threads). Estes threads serão alternadamente ativos, no modo de espera, suspensos ou destruídos, de acordo com a prioridade que lhes é associada ou executados sequencialmente.

Um sistema é preemptivo quando possui um programador que reparte, de acordo com critérios de prioridade, o tempo da máquina nos diversos processos que fazem os pedidos.

O sistema é de tempo compartilhado quando uma cota de tempo é atribuída a cada processo pelo programador. Este é o caso principalmente dos sistemas multiusuários, que permitem que vários deles utilizem simultaneamente um mesmo computador e vários aplicativos, diferentes ou similares.

Por fim, o sistema é considerado transacional quando o sistema atribui a cada usuário uma fração de tempo.


Área de trabalho ou Desktop

É a área de exibição quando você liga o computador e faz o logon no sistema operacional. Quando você abre programas ou pastas, eles são exibidos sobre a área de trabalho, Nela também é possível colocar itens, como arquivos e pastas, e organizá-los como quiser. Ela é composta de:

  • Menu iniciar
  • Barra de tarefas
  • Área de notificação
  • Ícones, pastas e atalhos
  • Papel de parede ou plano de fundo.
Desktopwindows.jpg
Área de trabalho Windows


Desktopubuntumate.jpg
Área de trabalho Ubuntu



Explorador de arquivos Caja

O explorador de arquivos exibe a pasta pessoal do usuário, que seria o mesmo que a pasta Meus Documentos do Windows. Porém há uma diferença do Windows, dentro desta pasta é o único local que o usuário pode criar novas pastas ou arquivos.

Cajalinux.jpg

Instalando e desinstalando programas

O Linux está repleto de softwares, mas o que devemos saber é que ele possui u ma Central de programas que permite instalar diversos outros softwares, para diversas áreas.

Houve uma época em que a instalação de pacotes precisava ser feita exclusivamente por comandos no console, o que consumia tempo e exigia um certo trabalho. Era necessário, por exemplo, lidar manualmente com todas as dependências necessárias para a instalação de um software, obedecendo, inclusive, a ordem de instalação desses pacotes. Mas, felizmente, isso ficou no passado.

Hoje existe maneiras bem mais práticas e simples de se instalar e remover programas do Ubuntu. A principal delas é por meio da Central de Programas, que pode ser executada pelo Launcher localizado no lado esquerdo da tela.

Para usar a Central sem problemas é necessário ter uma conexão ativa com a Internet. Afinal, todos os programas estão armazenados em espaços virtuais remotos conhecidos como repositórios.

Centraldeprogramas.jpg


Para instalar uma aplicação, você pode começar navegando pelas categorias posicionadas na lateral esquerda da Central de Programas do Ubuntu. Ao encontrar o programa desejado, clique sobre ele e, em seguida, no botão "Instalar". Por medidas de segurança, é necessário informar a senha do seu usuário para que o software seja instalado com sucesso.

Para remover um programa instalado anteriormente, voltaremos à Central de Programas. Lá, clique no botão "Instalados" para listar todo os softwares presentes no sistema. Depois disso, o procedimento é bastante similar ao de instalação. Basta navegar pelas categorias, selecionar o programa desejado e, em seguida, clicar no botão "Remover". A senha do usuário também será solicitada para que a ação seja efetivamente realizada.


Usando a Central de Programas do Ubuntu

Existem inúmeras maneiras de instalar um software em um sistema operacional. No Ubuntu Mate, a maneira mais rápida e fácil de encontrar e instalar novos aplicativos é através da Central de programas do Ubuntu.

Para acessar, você deve ir em Sistema, Administração e Central de Programas do Ubuntu.


Centralubuntu.jpg

A Central de programas do Ubuntu pode ser usado para instalar aplicativos disponíveis nos repositórios oficiais do Ubuntu. A janela da Central de programas do Ubuntu se divide em seções:

  • Uma lista de categorias, à esquerda;
  • Um banner na parte superior;
  • Um painel "Novidades" logo abaixo do banner superior;
  • Em seguida, um painel "Recomendado para você ";
  • E finalmente, um painel de "Mais bem avaliados" na parte inferior.

Ao clicar em uma categoria você será levado a uma lista de aplicações relacionadas. Por exemplo, a categoria de Internet contém aplicativos como o navegador Firefox.

Cada áreas em destaque como "Novidades" e "Mais bem avaliados", apresenta ícones de aplicação diferentes. Basta clicar em um ícone para obter mais informações sobre a aplicação ou para instalá-lo. Para ver todos os softwares contidos na área, clique no botão "Mais" no canto superior direito de cada painel.

As três seções no topo da Cetral de programas do Ubuntu representam uma visão atual do seu catálogo de Softwares. Clique no botão "Todos aplicativos" para ver todo os aplicativos instalados, clique no botão "Instalados" para ver uma lista de aplicativos já instalados no seu computador e clique em "Histórico" para ver as instalações e exclusões anteriores organizados por data.

Pesquisando aplicativos

A Central de programas do Ubuntu exibe diferentes fontes na seção "Todos os aplicativos". Clicando na seta ao lado de "Todos os aplicativos" irá mostrar uma lista de seções individuais, selecionando "Fornecido pelo Ubuntu" irá mostrar os aplicativos livres oficiais. "Para Compra" mostrará os aplicativos disponíveis para compra, e "Parceiros da Canonical" mostrará os aplicativos de parceiros da Canonical, como a Adobe.

Se você estiver procurando por um aplicativo, você já deve saber seu nome específico (por exemplo, o VLC Media Player), ou você pode apenas ter uma categoria geral em mente (por exemplo, a categoria som som e vídeo inclui uma série de aplicações diferentes, tais como conversores de vídeo, editores de áudio e players de música).

Para ajudar você a encontrar o aplicativo certo, você pode navegar pelo catálogo da Central de programas do Ubuntu clicando na categoria do software que você procura. Ao selecionar uma categoria, será mostrado uma lista de aplicativos, algumas categorias têm subcategorias, por exemplo, a categoria de jogos tem subcategorias para simulação e jogos de cartas. Para mover através de categorias, use o botões "Voltar" e "Avançar" no topo da janela.

Como você vê uma categoria de software, você verá uma caixa de pesquisa no canto superior direito da janela. Esta caixa de pesquisa pode ser utilizada para especificar nomes ou pesquisas de palavras-chave dentro desta categoria.


Centralubuntu2.jpg


Depois de ter encontrado um aplicativo que você gostaria de experimentar, a instalação exigirá apenas um clique.

Para instalar um aplicativo:

  1. Clique no botão "Instalar" à direita do pacote selecionado, se você gostaria de ler mais sobre o pacote de software antes de instalá-lo, em primeiro lugar clique no botão "Mais Informações", logo abaixo do software selecionado. Isso vai lhe dar uma breve descrição do aplicativo, bem como uma imagem e links da web, quando disponível. Pacotes adicionais relacionados serão listados abaixo na descrição do aplicativo. Você pode clique em "Instalar" a partir desta tela também.
  2. Após clicar em "Instalar", digite sua senha na janela de autenticação, esta é a mesma senha que você usa para fazer login na sua conta. Você é obrigado a digitar sua senha sempre que instalar ou remover software, a fim de evitar que alguém sem acesso de administrador faça alterações não autorizadas ao seu computador. Se você receber uma mensagem de falha de autenticação depois de digitar sua senha, verifique se você digitou corretamente e tente novamente.
  3. Aguarde até que o Ubuntu termine a instalação, durante a instalação (ou remoção) de programas, você verá um ícone animado de rotação à direita do botão Histórico na parte superior da tela. Este ícone animado é rotulado de "Progresso". A qualquer momento, clicando no botão de "Progresso" na parte superior irá levá-lo a um resumo de todas as operações que estão sendo processadas no momento. Você também pode clicar no "X" para cancelar quaisquer operações listadas.


Uma vez que a Central de programas do Ubuntu terminou de instalar um aplicativo, ele está pronto para ser utilizado. Você pode iniciar o aplicativo recém instalado, indo para o Painel Inicial e digitar o nome do aplicativo na barra de pesquisa.


Centralubuntu3.jpg


Remover aplicativos

Remover aplicativos é muito semelhante à instalação de aplicativos. Primeiro, encontre o aplicativo instalado na Central de programas do Ubuntu, você pode clicar no Botão "Instalados" para ver todos os aplicativos instalados listados por categorias. Vá até o aplicativo que você deseja remover, se você clicar na seta ao lado ao botão "Instalados", você vai encontrar uma lista de fornecedores de aplicativos, que pode ajudá-lo a refinar a sua pesquisa. Você também pode digitar palavras-chave na busca campo para encontrar rapidamente aplicativos instalados, ou você pode pesquisar por data na Guia "Histórico".

Para remover um aplicativo:

  1. Clique no botão "Remover" na direira do aplicativo selecionado.
  2. Digite sua senha na janela de autenticação, semelhante à instalação de aplicativos a remoção de aplicativos requer sua senha para ajudar a proteger o seu computador contra alterações não autorizadas. O pacote será então colocado em fila para a remoção e aparecerá na seção progresso até que ele termine de remover.


Centralubuntu4.jpg


Histórico de aplicativos

A central de programas do Ubuntu mantém o controle dos aplicativos já instalados na seção Histórico. Isso é útil se você quiser reinstalar um aplicativo previamente removido e não se lembra o nome do aplicativo. Há quatro botões na seção: "Todas as alterações", "Instalações", "Atualizações" e "Remoções". Se você clicar na seta ao lado de um dia, uma lista de pacotes individuais serão exibidos, juntamente com o que foi feito com eles e a hora.


Centralubuntu5.jpg


Exercícios

1 - Explique o que é:

  • Kernel;
  • Sistema Operacional;
  • Interface gráfica;

2 - Qual a diferença entre os sistemas de arquivos do Windows e Linux?

3 - Mude a proteção de tela para Cosmos com tempo de espera de 10 minutos.

4 - Através da Central de programas do Ubuntu Mate, instale os seguintes programas:

  • Tux paint;
  • Gnucash;
  • SuperTux Kart.

5 - Crie um diretório dentro da pasta pessoal do aluno com o nome exercicios.

6 - Para todos os exercícios anteriores, deve-se usar o Manual técnico via Google Documentos, criando na aula anterior para descrever os procedimentos, juntamente com a captura da tela no momento da execução da tarefa. Ao finalizar, efetue o download do arquivo em formato pdf, no diretório exercicio criado anteriormente.


19/02/2019: Uso do SO: Manipulação do arquivos e diretórios

Aula 3

Manipulação de arquivos e diretórios

Uma tarefa usual em um sistema operacional é localizar arquivos. Essa procura pode ser baseada no nome ou parte do nome de arquivo, na data de criação ou última modificação, no nome do usuário ou grupo dono, ou outros atributos do arquivo. Pode ser inclusive baseada numa combinação dessas informações. Por exemplo, pode ser necessário procurar todos os arquivos de música ou video, ou então todos os programas (arquivos executáveis) que pertençam ao superusuário (usuário root). Existem programas capazes de fazer tais buscas tanto no ambiente gráfico quanto no modo texto.

As buscas a serem realizadas são:

  1. Arquivos de música
  2. Arquivos de música ou video
  3. Arquivos de texto ou planilha do Openoffice que não tenham sido modificados a 7 dias ou mais
  4. Arquivos executáveis (programas)
  5. Arquivos executáveis pertencentes ao usuário root

Para iniciar, vamos usar programas gráficos para fazer buscas.

Usando o ambiente gráfico

O primeiro programa gráfico a ser usado é o caja (ou nautilus em outras versões do Ubuntu que não o Mate), o gerenciador de arquivos disponível no Ubuntu Linux. Para usá-lo para fazer buscas selecione a opção de pesquisa:


Pesquisa1.png


No caja aparecerá uma caixa de texto onde se deve digitar o nome ou parte do nome dos arquivos a serem procurados.


Pesquisa2.png


Tente fazer as buscas usando esse programa. Há alguma que não pode ser feita ?

Usando a linha de comando (modo texto)

O caja funciona como um gerenciador de arquivos e diretórios, possibilitando investigar que arquivos existem em cada diretório, entre outras coisas. Com ele é simples listar o conteúdo de um ou mais diretórios, bastando navegar por sua interface. Mas na linha de comando não há essa facilidade. Nela devem-se usar alguns programas para obter um resultado parecido. Para começar a usar a linha de comando, devem-se conhecer e saber usar programas para navegar por diretórios, listar diretórios, procurar arquivos e diretórios e copiar arquivos.

Árvore de diretórios

Antes de iniciarmos o estudo de comandos dos Linux é necessário entendermos como funciona a sua organização de arquivos e diretórios. Isso é importante para conseguirmos especificar adequadamente o caminho de arquivos e diretórios que desejamos manipular quando formos utilizar os mais diversos comandos.

ArvoreDiretorios2.png

Na figura acima é mostrado um exemplo de como são organizados arquivos e diretórios no Linux. Como é possível notar arquivos e diretórios são organizados de forma hierárquica, formando o que se chama de Árvore de Diretórios.

No Linux há um diretório de nível superior chamado root que é identificado como apenas uma barra (/). Abaixo deste diretório principal estão organizados hierarquicamente todos os demais diretórios e arquivos existentes. Os diretórios que estão contidos em / são chamados de sub-diretórios. No exemplo mostrado na Figura acima podemos perceber que em / está o sub-diretório home, dentro de home está o sub-diretórios user1 e dentro de user1 estão os sub-diretórios doc e videos.


O caminho de um arquivo ou diretório é a localização deste a partir do topo da estrutura de diretórios (/) ou a partir do diretório atual em que o usuário se encontra. Quando apontamos o caminho a partir do topo estamos nos referindo ao caminho absoluto de arquivos e diretórios. Quando apontamos o caminho de um arquivo ou diretório a partir do diretório corrente em que o usuário se encontra, estamos usando o conceito de caminho relativo.

Por exemplo, o caminho absoluto do diretório doc que aparece na figura é /home/user1/doc. Já se o diretório atual do usuário for /home, o caminho relativo do diretório doc é user1/doc.

Diretório atual

Na linha de comando existe o conceito de diretório atual ou corrente. Quando se acessa esse tipo de interface, existe um diretório em que operações sobre arquivos são realizadas. Para descobrir o diretório atual usa-se o programa pwd, como mostrado a seguir:

msobral@turing:~$ pwd
/home/aluno

Listagem de diretório

No exemplo anterior, o diretório atual é /home/aluno. Qualquer operação sobre arquivos ou diretórios será feita tendo como base esse diretório. A operação mais simples é a listagem de diretório, que se faz com o programa ls. Aproveitando o exemplo acima, a listagem do diretório atual teria este resultado:

msobral@turing:~$ ls
001.jpg                iperf-2.0.5.tar.gz             prova4-2011-1.odt
002.jpg                juliano.tgz                    prova4-2011-1-rec.odt
003.jpg                klaus                          prr.log
004.jpg                livros                         public_html
005.jpg                Makefile.in                    quartus.cap
006.jpg                nhrp.tar                       radiusd_test.py
007.jpg                nohup.out                      rco2
008.jpg                passwd.web                     rmu
msobral@turing:~$

Como já visto em uma seção anterior, o programa ls pode apresentar mais informações sobre arquivos e subdiretórios se for executado com a opção -l (listagem longa). Experimente executar o ls com esta opação. Para conhecer outras opções e obter mais detalhes, leia a página de manual do comando:

man ls

... ou acesse isto.

Mudança de diretório

A listagem apresentada revela vários arquivos e subdiretórios existentes no diretório atual. Sabendo que public_html é um subdiretório, pode-se desejar mudar o diretório atual de forma a entrar nesse subdiretório. Isso pode ser facilmente realizado com o programa cd:

aluno@turing:~$ cd public_html
aluno@turing:~/public_html$ pwd
/home/aluno/public_html


Diretório atual e diretório acima

O diretório imediatamente acima é referido com .. (dois pontos). Esse é um atalho que possibilita subir um nível de diretório sem conhecer o nome do diretório imediatamente superior. Assim, para voltar ao diretório imediatamente anterior ao diretório atual pode-se fazer isto:

aluno@turing:~/public_html$ cd ..
aluno@turing:~$ pwd
/home/aluno


O diretório atual possui também um atalho chamado . (um ponto). Assim, se for executado este comando ...

aluno@turing:~/public_html$ pwd
/home/aluno/public_html
aluno@turing:~/public_html$ cd .
aluno@turing:~/public_html$ pwd
/home/aluno/public_html

... nada acontecerá (o diretório atual não será modificado).

Criação e remoção de diretório

Um diretório pode ser criado com o comando mkdir. O uso desse comando pede apenas um argumento, que é o nome ou caminho do diretório a ser criado:

aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ mkdir teste
aluno@M2:~$ cd teste
aluno@M2:~$ pwd
/home/aluno/teste

Para remover um diretório usa-se o comando rmdir. Esse diretório deve estar vazio para o comando consiga removê-lo:

aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ rmdir teste
aluno@M2:~$ cd teste
cd: teste: Arquivo ou diretório não encontrado
aluno@M2:~$ rmdir Downloads
rmdir: falhou em remover “Downloads”: Diretório não vazio

Cópia de arquivos

A cópia de arquivos na linha de comando envolve usar o programa cp. Com ele podem-se copiar um ou mais arquivos para um diretório de destino. Por exemplo, para copiar o arquivo 001.jpg para dentro do diretório public_html pode-se fazer o seguinte:

aluno@M2:~$ cp 001.jpg public_html

O diretório de destino é sempre o último argumento passado ao programa cp. A cópia de múltiplos arquivos pode ser feita listando-os todos antes do diretório de destino:

aluno@M2:~$ cp 001.jpg 002.jpg 003.jpg public_html


... ou usando-se o caractere especial * (chamado de curinga ou wildcard no original em inglês):

aluno@M2:~$ cp *.jpg public_html


No exemplo acima, todos os arquivos cujos nomes terminem com .jpg serão copiados para dentro de public_html. Outra variação no uso do curinga é:

aluno@M2:~$ cp 00*.jpg public_html

... em que todos os arquivos cujos nomes iniciem com 00 e terminem com .jpg serão copiados.

Renomeação de arquivos

Arquivos podem ser renomeados com o comando mv. Ele pode ser usado de forma muito parecida com o comando cp. A diferença está na remoção do arquivo original, como se ele sumisse de seu diretório de origem e aparecesse no diretório de destino.

aluno@M2:~$ mv mulher_de_40.mp3 Musicas
aluno@M2:~$ ls Musicas
mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado


Se os diretórios de origem e destino forem iguais, mas os nomes do arquivo de origem e destino forem diferentes, então o arquivo na verdade é renomeado.

aluno@M2:~$ mv mulher_de_40.mp3 musica_romantica.mp3
aluno@M2:~$ ls musica_romantica.mp3
musica_romantica.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado

Remoção de arquivos

Arquivos podem ser removidos com o comando rm. Cuidado ao utilizá-lo ! Uma vez removido, um arquivo não pode ser recuperado !

aluno@M2:~$ rm mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado

Curingas (wildcards)

Curingas são caracteres especiais usados para selecionar vários arquivos ou diretórios de uma só vez. Os curingas podem ser usados em qualquer comando para especificar nomes de arquivos e diretórios. Dois curingas bastante usados são:

  • * : casa com uma sequência composta por 0 ou mais caracteres quaisquer.
  • ? : casa com um único caractere qualquer

Curingas são muito úteis para operações sobre arquivos e diretórios. Por exemplo, para copiar todos os arquivos de música MP3 pode-se usar o curinga *' da seguinte forma:

aluno@M2:~$ cp *.mp3 Musica


Para mover os arquivos cuja extensão seja mp4 ou mpg, podem-se usar os curingas * e ? desta forma:

aluno@M2:~$ mv *.mp? Videos

Procura por arquivos

A procura de arquivos e diretórios pode ser realizada na linha de comando com o programa find. Por exemplo, para localizar todos os arquivos ou diretórios chamados default, e que estejam abaixo de /etc:

aluno@D1:~$ find /etc -name default
/etc/default
/etc/calendar/default
/etc/X11/xinit/xinput.d/default
aluno@D1:~$


Uso do find :

find diretório [opções]


... sendo diretório o diretório abaixo de que se deseja fazer a busca. As opções servem para selecionar arquivos e diretórios durante a busca, e também para executar ações para cada um deles que for encontrado. Algumas opções mais comuns:

  • -name nome: seleciona arquivos ou diretórios cujos nomes sejam nome' . Essa opção aceita wildcards (* e ?)
  • -type tipo: seleciona apenas o tipo' indicado, que pode ser:
    • d: diretório
    • f: arquivo
    • l: link simbólico (ou atalho)
  • -perm modo: seleciona apenas arquivos ou diretórios que possuam as permissões indicadas em modo
  • -size tamanho: seleciona apenas arquivos com tamanho de acordo com o especificado (em bytes)
  • -mtime n: seleciona apenas arquivos ou diretórios modificados a n * 24 horas atrás
  • -atime n: seleciona apenas arquivos ou diretórios acessados a n * 24 horas atrás
  • -user usuario: seleciona apenas arquivos ou diretórios pertencentes a usuario
  • -exec comando \;: executa comando para cada arquivo ou diretório encontrado. Ex:
    • find /tmp -type f -mtime +7 -exec rm -f {} \; : remove todos os arquivos dentro de /tmp que estejam há 7 dias sem serem modificados. A sequência {} é substituída pelo nome do arquivo encontrado.

... e muitas outras (consulte o manual do find).

Exercícios

  1. Partindo do subdiretório /home/aluno/Área de Trabalho, e usando somente caminhos (pathnames) relativos, indique a sequência de comandos necessária para visitar sucessivamente os seguintes subdiretórios:
    • /home/aluno
    • /home
    • /etc/default
    • /usr/share/doc
    • /usr/share/doc/python/faq
    • /usr/lib/ubuntu-mate
    • /usr/local/etc
    • /usr/local/man
    • /usr/local/lib/python2.7
    • /usr/local/lib/python2.7/site-packages
    • /usr/local/lib/python2.7/dist-packages
    • /home/aluno
    • /home/aluno/Downloads
  2. Partindo do subdiretório /home/aluno, informe a sequência de subdiretórios (indique-os com seus caminhos absolutos) visitados se forem seguidos os seguintes caminhos relativos:
    • Imagens
    • ../Documentos
    • ../..
    • ../boot
    • grub
    • ../../usr/lib
    • ../share
    • ../local
    • lib/python2.7
    • ../..
    • ../../etc
    • ../lib/modules
    • ../../home
    • aluno/Downloads/..
  3. Organize estes arquivos, de forma que sejam colocados nos subdiretórios Imagens, Videos e Documentos, de acordo com seus tipos. Os arquivos devem ser movidos para esses diretórios.
  4. Remova o arquivo compactado transferido no exercício anterior.
  5. Renomeie os arquivos de imagens organizados no exercício 3. Dê um nome para cada imagem de acordo com seu conteúdo.
  6. No diretório /usr/share/sounds/ubuntu/stereo existem vários arquivos de áudio. Crie um diretório dentro de seu diretório pessoal e copie-os para esse novo diretório. Em seguida, reproduza-os para escutá-los.
  7. Encontre o arquivo lsusb, que se encontra em algum subdiretório dentro de /usr
  8. Encontre os subdiretórios lib, que estão dentro de /usr
  9. Localize todos os arquivos executáveis (i.e., os programas) que existem abaixo de /lib
  10. Localize todos os arquivos pertencentes ao usuário aluno e que estejam dentro de /tmp


21/02/2019: Uso do SO: Manipulação do arquivos e diretórios (continuação)

Aula 4

26/02/2019: Uso do SO: Manipulação do arquivos e diretórios (continuação)

Aula 5

28/02/2019: Usuários e grupos

Aula 6

Links úteis

Usuários e grupos

Um usuário Linux é uma entidade que possui uma identificação no sistema onde os principais parâmetros são: login, senha, e número de identificação. Estas informações permitem ao Linux controlar como o acesso é garantido aos usuários e o que eles podem fazer depois de obter a permissão de acesso. Um grupo é um conjunto de usuários. Cada grupo também possui identificação única no sistema, um nome e um número. O administradores de sistemas normalmente fazem controle de acesso por meio dos grupos.

Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações:

  • Nome de usuário (ou login): um apelido que identifica o usuário no sistema
  • UID (User Identifier): um número único que identifica o usuário
  • GID (Group Identifier): o número do grupo primário do usuário
  • Senha (password): senha para verificação de acesso
  • Nome completo (full name): nome completo do usuário
  • Diretório inicial (homedir): o subddiretório pessoal do usuário, onde ele é colocado ao entrar no sistema
  • Shell: o programa a ser executado quando o usuário entrar no sistema

As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de bases de dados de usuários). Dentre elas, a mais simples é composta pelo arquivo /etc/passwd:

root:x:0:0:root:/root:/bin/bash
sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false
suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash

Acima um exemplo de arquivo /etc/passwd

Cada linha desse arquivo define uma conta de usuário no seguinte formato:

nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell

O campo senha em /etc/passwd pode assumir os valores:

  • x: significa que a senha se encontra em /etc/shadow
  • *: significa que a conta está bloqueada
  • senha encriptada: a senha de fato, porém encriptada usando algoritmo hash MD5 ou crypt. Porém usualmente a senha fica armazenada no arquivo /etc/shadow.

O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:

  • Nome de usuário
  • Senha encriptada (sobrepõe a senha que porventura exista em /etc/passwd)
  • Data da última modificação da senha
  • Dias até que a senha possa ser modificada (validade mínima da senha)
  • Dias após que a senha deve ser modificada
  • Dias antes da expiração da senha em que o usuário deve ser alertado
  • Dias após a expiração da senha em que a conta é desabilitada
  • Data em que a conta foi desabilitada

Um exemplo do arquivo /etc/shadow segue abaixo:

root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922::::::
suse-ncc:!:13922:0:99999:7:::
uucp:*:13922::::::
wwwrun:*:13922::::::
roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7:::

Exercício: quando a senha do usuário roberto irá expirar ?

Sugestão de leitura para responder a questão anterior:

Cálculo de datas com o comando date


Um grupo é um conjunto de usuários definido da seguinte forma:

  • Nome de group (group name): o nome que identifica o grupo no sistema
  • GID (Group Identifier): um número único que identifica o grupo
  • Lista de usuários: um conjunto de usuários que são membros do grupo

Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo /etc/group a mais simples delas:

root:x:0:
trusted:x:42:
tty:x:5:
utmp:x:22:
uucp:x:14:
video:x:33:roberto
www:x:8:roberto
users:x:100:
radiusd:!:108:
vboxusers:!:1000:

Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em /etc/passwd), ou que aparecem listados em /etc/group.

Gerenciamento de usuários e grupos

Para gerenciar usuários e grupos podem-se editar diretamente os arquivos /etc/passwd, /etc/shadow e /etc/group, porém existem utilitários que facilitam essa tarefa:

  • useradd ou adduser: adiciona um usuário
    • Ex: useradd -m roberto : cria o usuário roberto juntamente com o diretório (-m --makedir).
    • Ex: useradd -c "Roberto de Matos" -m roberto : cria o usuário roberto com nome completo "Roberto de Matos"
    • Ex: useradd -c "Roberto de Matos" -g users -m -d /usuarios/roberto -s /bin/tcsh roberto : cria o usuário roberto com nome completo "Roberto de Matos", grupo users, diretório inicial /usuarios/roberto e shell /bin/tcsh
  • userdel: remove um usuário
    • Ex: userdel roberto : remove o usuário roberto, porém preservando seu diretório home
    • Ex: userdel -r roberto : remove o usuário roberto, incluindo seu diretório home
  • usermod: modifica as informações da conta de um usuário
    • Ex: usermod -g wheel roberto : modifica o GID do usuário roberto
    • Ex: usermod -G users,wheel roberto : modifica os grupos secundários do usuário roberto
    • Ex: usermod -d /contas/roberto roberto : modifica o diretório inicial do usuário roberto (mas não copia os arquivos ...)
    • Ex: usermod -l robertomatos roberto : modifica o login do usuário roberto
    • Ex: usermod -m ... : cria o diretório home do usuário roberto
    • Ex: usermod -c "Roberto Matos, R. dos Navegantes, 33333333" : atribui comentários ao usuário roberto
  • passwd: modifica a senha de usuário
    • Ex: passwd roberto
  • login: logo como outro usuário. Tem de estar como root
    • Ex: login roberto
  • groupadd: adiciona um grupo
    • Ex: groupadd ger: cria o grupo ger
  • groupdel: remove um grupo
    • Ex: groupdel ger: remove o grupo ger


Atividade

  1. Crie um usuário com o nome de jose usando o comando adduser.
  2. Dê ao usuário jose a senha jose123.
  3. Confirme a correta criação do usuário jose:
     tail /etc/passwd
    
    ...ou:
     grep jose /etc/passwd
    
    ... ou
    id jose
    
  4. Confirme se o diretório home de jose foi criado corretamente dentro de /home.
  5. Logue utilizando o usuário jose.
    su - jose
    
  6. Crie o grupo turma.
  7. Crie o diretório manoel em /home.
  8. Crie um usuário com o nome de manoel usando o comando useradd. Deve-se ao criar o usuário definir os seguintes parâmetros:
    1. Pertencer ao grupo turma;
    2. O diretório home deve ser /home/manoel;
    3. Configurar o shell do usuário como sendo /bin/bash;
    4. Observar qual a diferença entre os comandos adduser e useradd.
       useradd -g turma -d /home/manoel -s /bin/bash manoel
      
  9. Dê ao usuário manoel a senha mane123.
     passwd manoel
    
  10. Acrescente, por comandos, ao perfil do usuário seu nome completo e endereço: Manoel da Silva, R. dos Pinheiros, 2476666.
     usermod -c "Manoel da Silva, R. dos Pinheiros, 2476666" manoel
    
  11. Verifique o arquivo /etc/passwd e confirme se o usuário manoel está OK.
  12. Mude, por comandos, o diretório home do manoel de /home/manoel para /home/contas/manoel.
     usermod -d /home/contas/manoel manoel
    
  13. Verifique o arquivo /etc/passwd e confirme a alteração.
  14. Logue como manoel e verifique as mensagens na tela.
     login manoel
    
  15. Crie o diretório /home/contas e dentro de contas crie o diretório manoel. Tente logar novamente.
  16. Mude o login do manoel para manoelsilva.
     usermod -l manoelsilva manoel
    
  17. Torne o usuário manoelsilva capaz de executar comandos com sudo
  18. Logue como manoelsilva
  19. Estando logado como manoelsilva, remova o usuário jose
  20. Deslogue de manoelsilva
  21. Remova os usuários criados, inclusive seus diretórios home
  22. Remova os grupos criados

07/03/2019: Usuários e grupos - continuação

Aula 7

12/03/2019: Linha de comando: arquivos e diretórios; permissões

Aula 8

Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa.

Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos.

O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário, e o arquivo correspondente as senhas criptogravadas dos usuários é /etc/shadow. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema, e o arquivo correspondente a senhas criptografadas é /etc/gshadow. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes.

Quando se executa ls -l em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte:

> ls -l
total 403196
drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/
-rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2
-rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2
-rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe
-rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe
>

As colunas que aparecem na listagem são:

  1. Esquema de permissões;
  2. Número de ligações do arquivo;
  3. Nome do usuário dono do arquivo;
  4. Nome do grupo associado ao arquivo;
  5. Tamanho do arquivo, em bytes;
  6. Mês da criação do arquivo; Dia da criação do arquivo;
  7. Hora da criação do arquivo;
  8. Nome do arquivo;

O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10). A figura a seguir destaca as classes de permissões mostradas em uma listagem de diretório.

Pji-Permissoes2.png


Existem três modos distintos de permissão de acesso: leitura (read), escrita (write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito (de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de execução somente se aplica a arquivos que podem ser executados, obviamente, como programas já compilados ou script shell. Os valores válidos para cada uma das colunas são os seguintes:

  • 1 d se o arquivo for um diretório; Se estiver com - vai ser um arquivo;
  • 2,5,8 r se existe permissão de leitura; Se estiver com - não tem permissão;
  • 3,6,9 w se existe permissão de alteração; Se estiver com - não tem permissão;
  • 4,7,10 x se existe permissão de execução; Se estiver com - não tem permissão;

A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório.

Existem dois modos de definir uma permissão, através do modo Octal e modo Textual.

Textual

Usamos letras antes das permissões (chmod é o comando para modificar permissões de arquivos):

$ chmod u+rw, g+w, o-rwx teste.txt

Onde:

  • U - representa usuário;
  • G - representa grupo;
  • O - representa outros.


Octal

O modo Octal tem a mesma função de definir permissões, só que em números. Exemplo:

$ chmod 620 teste.txt

(comando) (permissão) (arquivo)

Tipo de permissão Octal:

  • 4 - Indica permissão de leitura;
  • 2 - Permissão de escrita;
  • 1 - Indica permissão de execução;
  • 0 - Indica sem permissões.

A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários:

  • chmod: muda as permissões de acesso (também chamado de modo de acesso). Somente pode ser executado pelo dono do arquivo ou pelo superusuário
    • Ex: chmod +x /home/usuario/programa : adiciona para todos os usuários a permissão de execução ao arquivo /home/usuario/programa
    • Ex: chmod -w /home/usuario/programa : remove para todos os usuários a permissão de escrita do arquivo /home/usuario/programa
    • Ex: chmod o-rwx /home/usuario/programa : remove todas as permissões de acesso ao arquivo /home/usuario/programa para todos os usuários que não o proprietário e membros do grupo proprietário
    • Ex: chmod 755 /home/usuario/programa : define as permissões rwxr-xr-x para o arquivo /home/usuario/programa
  • chown: muda o proprietário de um arquivo. Somente pode ser executado pelo superusuário.
    • Ex: chown roberto /home/usuario/programa: faz com que o usuário roberto seja o dono do arquivo
  • chgrp: muda o grupo dono de um arquivo. Somente pode ser executado pelo superusuário.
    • Ex: chgrp users /home/usuario/programa: faz com que o grupo users seja o grupo dono do arquivo /home/usuario/programa

Há também o utilitário umask, que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos:

  • umask 022: tira a permissão de escrita para group e demais usuários
  • umask 027: tira a permissão de escrita para group, e todas as permissões para demais usuários

Atividade

  1. Crie a partir do /home 3 diretórios, um com nome aln, outro prf e o último svd.
  2. Crie 3 grupos com os mesmos nomes acima.
  3. Crie 3 contas de usuários pertencentes ao grupo aln: aluno1, aluno2, aluno3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/aln/. Por exemplo para o aluno1 teremos /home/aln/aluno1. Configure a shell dos usuários como /bin/bash.
  4. Crie 3 contas pertencentes ao grupo prf: prof1, prof2, prof3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/prf/. Configure a shell dos usuários como /bin/bash.
  5. Crie 3 contas pertencentes ao grupo svd: serv1, serv2, serv3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/svd/. Configure a shell dos usuários como /bin/bash.
  6. Crie senhas para os usuários.
  7. Logue com o usuário aluno1 e crie um arquivo chamado aluno1.txt, executando o comando:
    echo "Teste aluno1" > aluno1.txt
    
    ... e saia do usuário aluno1.
  8. Os diretórios dos alunos, e todo o seu conteúdo, devem ser visíveis e editáveis aos membros do próprio grupo, visíveis mas não apagáveis a todos os demais usuários da rede.
  9. Logue com a conta aluno2. Faça um ls -l dentro do diretório home do usuário aluno1. Faça um cat no arquivo aluno1.txt.
  10. Posteriormente, tente fazer o seguinte comando dentro do diretório de aluno1:
    echo "Teste aluno2" >> aluno1.txt
    
    Foi possível executar este comando? Se não, por quê?
  11. Deslogue do usuário aluno2
  12. Logue com prof1 e crie um arquivo chamado prof1.txt, executando o comando:
    echo "Teste prof1" > prof1.txt
    
    Saia do usuário prof1.
  13. Os diretórios dos professores e servidores devem ser mutuamente visíveis, mas não apagáveis, entre os membros dos grupos professores e servidores. Além disso, não devem ser sequer visíveis aos membros do grupo alunos.
  14. Logue com um outro usuário prof e teste se você consegue listar o conteúdo do diretório home do usuário prof1, exibir o conteúdo do arquivo criado no diretório de prof1 e escrever algo neste mesmo arquivo.
  15. Logue com o usuário servidor1 e faça um ls -l dentro do diretório home do usuário prof1. Dê um cat no arquivo prof1.txt que está destro deste diretório. Tente editar este arquivo.
  16. Logue com um usuário aluno e faça um ls -l dentro do diretório home do usuário prof1. Foi possível executar este comando? Se não, por quê?
  17. Crie um diretório chamado trabalho dentro de /var/tmp. Descreva tudo que é necessário fazer para que:
    • Usuários do grupo prof consigam criar arquivos dentro desse subdiretório
    • Demais usuários não possam entrar nesse subdiretório, tampouco listá-lo
    • Qualquer arquivo existente dentro desse subdiretório, ou que venha a ser criado, deve poder ser lido e editado pelos usuários grupo prof.