Mais exercícios sobre scripts

As seguintes atividades são utilizadas no segundo bimestre como forma de avaliação substitutiva do Teste Bimestral, cujo valor é 3,0 pontos.

Atividade 1
A maioria das distribuições Linux vem com aplicativos gráficos ou orientados a caractere que facilitam a criação do usuário. Essas ferramentas basicamente são interfaces para os comandos useradd, passwd, etc. Crie um script que realize exatamente a função desses aplicativos: cadastrar usuários no sistema. Sua ferramenta deverá ter as seguintes funcionalidades: criar o usuário, permitir a definição de uma senha a ser informada pelo usuário que executa o script, criar o respectivo diretório home, etc.

Sua sintaxe deverá ser similar a seguinte:

criausuario.sh klayson


Atividade 2

Crie um script que seja executado a cada 5 minutos (estude o arquivo /etc/crontab) e que caso identifique que o arquivo /etc/passwd tenha sido alterado, envie um email para você informando sobre a situação. Lembre-se de que para o envio de emails funcionar você deve ter um MTA (como o Postfix ou Sendmail) em execução no seu sistema.

Atividade 3
Explique detalhadamente (eu disse “detalhadamente“, se você não entendeu da primeira vez) o funcionamento do script criado por Leo Boiko em http://namakajiri.net/complog/watch-encomenda-sh/


Atividade 4
Explique qual é a função dos seguintes arquivos:

  • /etc/passwd
  • /etc/inittab
  • /etc/fstab
  • /etc/crontab
  • /etc/hosts
  • /etc/profile
  • /etc/resolv.conf
  • ~/.bash_history

Atividade 5
Por padrão, a distribuição Debian vem configurada para remover todo o conteúdo do diretório /tmp a cada inicialização do sistema. Esse comportamento pode causar alguns inconvenientes, como, por exemplo, a perda acidental de arquivos importantes pelos desavisados que não têm essa informação. No laboratório 06 muitos usuários passaram por esse problema. Para evitar novos aborrecimentos, é interessante que essa “funcionalidade” seja desabilitada. Como realizar essa configuração no Debian?

Atividade 6
Por padrão, por questões de segurança, quase todas as distribuições vêm configuradas para não permitir o login do usuário root a partir da interface gráfica. Suponha, que por uma razão qualquer, você realmente precise permitir o login do usuário root a partir da interface gráfica. Descreva as configurações necessárias para viabilizar isso.

Atividade 7
O ambiente KDE do laboratório 06 é disponibilizado aos alunos de tal forma que eles tenham total liberdade de personalizar o desktop, da maneira que melhor lhes convier. O problema é que como utiliza-se um usuário compartilhado (alunolab06) para o acesso, essa liberdade acaba trazendo consigo algumas situações desagradáveis, como ambientes despadronizados e, em alguns casos mais críticos, configurações praticamente inutilizáveis.

De forma a continuar propiciando essa liberdade de utilização e, ao mesmo tempo, colocar certa ordem e padronização, projete uma solução que permita a rápida padronização do ambiente KDE a partir da execução de um script. Por exemplo:

padroniza.sh

Algumas informações pertinentes:
- Toda a configuração do KDE é individualizada e armazenada no subdiretório .kde do diretório home de cada usuário do sistema;
- Considere que existe um ambiente padronizado que foi previamente configurado e disponibilizado em um servidor web acessível a partir de qualquer computador do laboratório;
- Antes de efetivar o processo de padronização, crie um backup do seu diretório ~/.kde atual, de forma a permitir um posterior processo de restauração caso a padronização falhe ou o usuário se arrependa da configuração obtida com a padronização. O backup deve ser realizado no subdiretório backup_kde do diretório home do usuário logado, utilizando-se a compactação gzip. O nome do arquivo de backup deve obedecer ao seguinte formato: backup_kde_AAAA-MM-DD_HH:MM:SS.tgz.

Atividade 8
Suponha que você desenvolveu um script e quer disponibilizá-lo para uso por todo e qualquer usuário do sistema, sem a necessidade da digitação do caminho absoluto do arquivo onde ele está armazenado. Quais os possíveis procedimentos necessários para implementar esse ambiente?

Deixe um comentário