Sistemas Operacionais e Introdução a Programação (diário 2010-1) - Prova teórica - tipo A

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Questão 1

  • Vá ao diretório /etc/, copie o arquivo group para o diretório /var/tmp/etc/ (crie-o, se necessário).
  • Copie o conteúdo desse arquivo (/var/tmp/etc/group) para o arquivo /var/tmp/etc/copias/grupo.
  • Remova o arquivo anterior (/var/tmp/etc/group) e altere as permissões do novo (/var/tmp/etc/copias/grupo) para que somente o dono do novo arquivo possa ler e escrever - demais não tem qualquer acesso.

Apresentação da resposta

Apresente a sequência de comandos para a solução do problema em dois formatos:

  1. Utilizando endereços relativos.
  2. Utilizando endereços absolutos.

Resposta

  • Utilizando endereços relativos: assumindo que o usuário aluno está no seu diretório pessoal, /home/aluno:
cd ../../var/tmp/
mkdir etc/
cp ../../etc/group etc/
cd etc/
mkdir copias/
cp group copias/grupo
rm group
chmod 600 copias/grupo
  • Utilizando endereços absolutos (indifere o caminho atual do usuário):
mkdir /var/tmp/etc/
cp /etc/group /var/tmp/etc/
mkdir /var/tmp/etc/copias/
cp /var/tmp/etc/group /var/tmp/etc/copias/grupo
rm /var/tmp/etc/group
chmod 600 /var/tmp/etc/copias/grupo

Questão 2

  • Quantos e quais usuários possuem processos no S.O. da sua estação de trabalho?

Dica: use o comando more para apresentar o resultado de um comando de forma paginada. Ex.: ls | more

Apresentação da reposta

Informe a quantidade e o nome de cada um dos usuários.

Resposta

Embora cada sistema possa apresentar pequenas variações, no laboratório de Redes II está instalado sistema Ubuntu Linux 9.10 versão desktop, onde a configuração padrão apresenta os seguintes usuários (assumindo o usuário aluno rodando o ambiente gráfico):

  1. root
  2. syslog
  3. avahi
  4. aluno

Questão 3

  • Crie um script para finalizar todos os processos chamados firefox-bin. Ele deve:
    1. Enviar um sinal TERM para todos os processos com esse nome.
    2. Esperar por pelos 5s (comando: sleep 5) para que a aplicação feche normalmente.
    3. Enviar um sinal KILL para todos os processos com esse nome.

Apresentação da resposta

Apresente o script na forma de um arquivo executável, descrevendo a criação do arquivo e permissões mínimas de execução do programa.

Resposta

#!/bin/bash
killall -TERM firefox-bin
sleep 5
killall -KILL firefox-bin

Questão 4

  • Na pasta pessoal do aluno (/home/aluno), crie um diretório chamado etc.
  • Copie para esse diretório os arquivos /etc/passwd, /etc/shadow e /etc/group. Se não for possível copiar algum deles, explique o porquê.
  • Para esse diretório novo (/home/aluno/etc), altere as permissões da seguinte forma:
    • O grupo deve ser vboxusers.
    • Leitura e escrita para dono e grupo, demais não têm acesso.

Dica: diretórios devem possuir permissão de execução quando houver permissão de leitura (mesmo não sendo executáveis).

Apresentação da resposta

Informe a sequência de comandos para a solução do problema. E responda à seguinte pergunta: o arquivo /home/aluno/etc/passwd também não estará acessível aos outros usuários, seguindo a lógica do diretório-pai. Por quê?

Resposta

  • Primeira parte
cd /home/aluno/
mkdir etc/
cp /etc/passwd etc/
cp /etc/shadow etc/
cp /etc/group etc/
chgrp vboxusers etc/
chmod 770 etc/
  • Segunda parte

O arquivo /etc/shadow não permite a leitura para o usuário aluno, portanto o arquivo não pode ser copiado.