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

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 localtime para o diretório /tmp/copia_do_etc/ (crie-o, se necessário).
  • Copie o conteúdo desse arquivo (/tmp/copia_do_etc/localtime) para o arquivo /tmp/copia_do_etc/copias/local.
  • Remova o arquivo anterior (/tmp/copia_do_etc/localtime) e altere as permissões do novo (/tmp/copia_do_etc/copias/local) para que usuário e grupo associados ao novo arquivo possam 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 /etc/
mkdir ../tmp/copia_do_etc/
cp localtime ../tmp/copia_do_etc/
cd ../tmp/copia_do_etc/
mkdir copias/
cp localtime copias/local
rm localtime
chmod 660 copias/local
  • Utilizando endereços absolutos (indifere o caminho atual do usuário):
mkdir /tmp/copia_do_etc/
cp /etc/localtime /tmp/copia_do_etc/
mkdir /tmp/copia_do_etc/copias/
cp /tmp/copia_do_etc/localtime /tmp/copia_do_etc/copias/local
rm /tmp/copia_do_etc/localtime
chmod 660 /tmp/copia_do_etc/copias/local

Questão 2

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

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. syslog
  2. avahi
  3. aluno

Questão 3

  • Crie um script para finalizar todos os processos chamados gnome-terminal. Ele deve:
    1. Enviar um sinal TERM para todos os processos com esse nome.
    2. Esperar por pelos 3s (comando: sleep 3) 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 gnome-terminal
sleep 3
killall -KILL gnome-terminal

Questão 4

  • Na pasta pessoal do aluno (/home/aluno), crie um diretório chamado backup.
  • Copie para esse diretório os arquivos /etc/passwd, /etc/shadow e /etc/gshadow. Se não for possível copiar algum deles, explique o porquê.
  • Para esse diretório novo (/home/aluno/backup), altere as permissões da seguinte forma:
    • O grupo deve ser vboxusers.
    • Leitura e escrita para usuário, apenas leitura para 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/backup/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 backup/
cp /etc/passwd backup/
cp /etc/shadow backup/
cp /etc/gshadow backup/
chgrp vboxusers backup/
chmod 750 backup/
  • Segunda parte

O acesso ao arquivo se dá de forma sequencial, iniciando no diretório / e avançando até o arquivo de interesse: /, /home/, /home/aluno/ e /home/aluno/backup/. Se em algum deles houver restrição de acesso, o arquivo - não importando as suas permissões - estará inacessível.