/home / fatec / soii / especificao-do-projeto --::--

Sistemas Operacionais II

Prof. Rossano Pablo Pinto, MSc.

Esta página é melhor visualizada no navegador Firefox.



Projeto "Interpretador de Comandos (Shell)"


O projeto em questão visa construir um interpretador de comandos que deverá funcionar sob o LINUX e, eventualmente, substituir o interpretador corrente em algumas tarefas como manipulação de arquivos e diretórios, além de algumas tarefas especiais. .

Comando

Função

cat

O comando cat é utilizado para exibir o conteúdo de arquivos. Este deverá permitir que sejam visualizados os conteúdos de vários arquivos através de um único comando.

cp O comando cp efetua a cópia do conteúdo de um arquivo para um novo arquivo. Tais arquivos poderão ser textos simples ou formato binário.
ls O comando ls mostra os nomes de arquivos/diretórios existentes na área atual.
mv O comando mv move um arquivo para um outro local, mantendo o mesmo nome ou não.
rm O comando rm é utilizado para remover arquivos. Este deverá permitir que sejam removidos vários arquivos através de um único comando.
edit A função do comando edit é a de atuar como um editor de linha. Caso o arquivo especificado já exista, ele será removido e substituído pelo novo. Este comando não deve apenas criar o arquivo, mas permitir que algum texto seja armazenado em seu conteúdo.
cd O comando cd é utilizado para navegar pela estrutura de diretórios ou movê-lo para seu home directory.
mkdir O comando mkdir é utilizado para criar diretórios. Este deverá permitir que sejam criados vários diretórios através de um único comando.
rmdir O comando rmdir é utilizado para remover diretórios. Este deverá permitir que sejam removidos vários diretórios através de um único comando, sendo que os diretórios deverão estar vazios para serem removidos.
ps O comando ps mostra os processos em execução no momento.
clear O comando clear é utilizado para limpar a tela do computador.
date O comando date exibe a data e a hora do sistema.
exit O comando exit encerra a sessão de trabalho e sai do shell (finaliza o processo).
help O comando help recupera informações sobre como usar os comandos deste ambiente de trabalho. Veja observações sobre seu funcionamento.
hostname O comando hostname informa qual o nome do host onde os comandos estão sendo digitados e executados (deverá ser recuperado o nome real do host).
logout O comando logout encerra a sessão de trabalho, voltando a solicitar um novo login ao usuário.
pwd O comando pwd exibe sua posição atual na estrutura de diretórios.
uname O comando uname informa o nome do sistema operacional que está sendo utilizado no computador onde o shell estará funcionando (deverá ser recuperado o nome real do SO).
creditos O comando creditos exibe informações sobre os componentes do grupo (nome e ra, obrigatoriamente) e sobre a disciplina (nome da escola, da disciplina, ano, nome do professor).
log O comando log mostra o conteúdo do arquivo de log.
whoami O comando whoami exibe o nome do usuário que utiliza o interpretador no momento.
passwd O comando passwd irá alterar a senha do usuário que o está executando. O usuário root poderá alterar a senha de qualquer usuário e um usuário em particular apenas a sua própria senha.
last O comando last exibe uma relação dos usuários que utilizaram o sistema, quando entraram e quando saíram.
adduser O comando adduser adiciona um novo usuário ao sistema.
deluser O comando deluser remove um usuário do sistema.
blockuser O comando blockuser bloqueia um usuário do sistema.
backuser O comando backuser reativa um usuário do sistema que foi bloqueado.

 

Considerações:

  • As equipes deverão ser compostas por 5 componentes, porém equipes menores também serão permitidas.
  • Após a configuração das equipes não serão permitidas alterações nas mesmas, sob pena de quem entrou ou saiu ficar sem grupo.
  • O Interpretador não poderá realizar chamadas ao interpretador de comandos do LINUX, ou seja, os comandos deverão ser implementados utilizando as funções disponibilizadas pela linguagem C.
  • O executável e o fonte do projeto deverão ser entregues em cdrom.
  • Deverá existir uma identificação de usuário para se obter acesso ao Interpretador, sendo que um usuário de nome root deverá estar previamente cadastrado, com a senha so2tarde1s2010.
  • Somente o usuário root poderá realizar as tarefas administrativas (adduser, deluser, blockuser, backuser).
  • O arquivo log deverá conter as seguintes informações, nesta ordem, obrigatoriamente: COMANDO | DATA | HORA | USUÁRIO.
  • O arquivo last deverá conter as seguintes informações, nesta ordem, obrigatoriamente: USUÁRIO | DATA | HORA | LOGIN ou LOGOUT.
  • O arquivo passwd deverá ter a seguinte estrutura USERNAME | PASSWORD | HOME DIRECTORY | STATUS, sendo que a senha deverá estar encriptada e o status 0 para liberar o acesso ao usuário e 1 para bloquear.
  • O arquivo motd deverá ter uma mensagem que será exibida toda vez que um usuário fizer o login. Esta mensagem deverá ser armazenada em formato ASCII e somente o usuário root poderá alterá-la.
  • O shell deverá possuir um mecanismo de detecção contra intrusos, ou seja, caso tente-se fazer um login através de uma conta por cinco vezes consecutivas e não for possível, tal conta deverá ser bloqueada e somente liberada pelo usuário root.
  • Os comandos implementados deverão verificar se os nomes de arquivos ou diretórios fornecidos existem ou não para oficializar a execução do comando, ou então sinalizar o erro para o usuário.
  • Os comandos deverão ser implementados na forma de COMANDOS INTERNOS ou EXTERNOS ao Interpretador.
  • Toda a codificação deverá ser feita em C, mais especificamente no GCC para Linux e na versão disponível em laboratório.
  • As datas de Entrega e de Apresentação do Projeto Prático estão definidas no Plano de Ensino da disciplina.
  • Não serão aceitos projetos encaminhados após a data-limite especificada.
  • Informações pertinentes poderão ser acrescidas a esta página conforme forem necessárias.




Faculdade de Tecnologia de Americana :: Curso de Análise de Sistemas e Tecnologia da Informação
Rua Emílio de Menezes, s/n, Vila Amorim - Tel. +55 (19) 3406-5776 CEP: 13xxx-xxx / Americana / SP / Brasil
Copyleft 2007-2010 Rossano Pablo Pinto