Sistemas Operacionais II - Lista De Exercício 2
Exercício de Gerenciamento de Usuários e Permissões no Linux
Este exercício prático tem como objetivo trabalhar com a criação de usuários, grupos e o gerenciamento de permissões no sistema Linux, simulando um ambiente empresarial com diferentes departamentos.
Parte 1: Preparação do Ambiente
- Logar como root:
bash code snippet start
# Faça login como usuário root
bash code snippet end
O usuário root tem privilégios administrativos completos no sistema.
- Mostrar o diretório atual:
bash code snippet start
pwd
bash code snippet end
Exibe o caminho do diretório em que você está atualmente.
- Acessar o diretório raiz:
bash code snippet start
cd /
bash code snippet end
Navega para o diretório raiz do sistema de arquivos.
- Acessar a pasta home:
bash code snippet start
cd home
bash code snippet end
Navega para o diretório onde são armazenadas as pastas pessoais dos usuários.
- Criar um diretório empresa:
bash code snippet start
mkdir empresa
bash code snippet end
Cria um novo diretório para simular uma estrutura empresarial.
- Verificar permissões do diretório empresa:
bash code snippet start
ls -la
bash code snippet end
Lista todos os arquivos, incluindo os ocultos, com detalhes de permissões.
- Acessar o diretório empresa:
bash code snippet start
cd empresa
bash code snippet end
Entra no diretório recém-criado.
- Verificar as permissões dentro do diretório:
bash code snippet start
ls -la
bash code snippet end
Verifica se existem arquivos e quais são suas permissões.
Parte 2: Criação e Manipulação de Arquivos
- Criar um arquivo vazio:
bash code snippet start
touch inicioempresa
bash code snippet end
Cria um arquivo vazio chamado “inicioempresa”.
- Adicionar informações ao arquivo:
bash code snippet start
echo "Este é o arquivo inicial da empresa" > inicioempresa
echo "Contém informações importantes sobre os departamentos" >> inicioempresa
bash code snippet end
Adiciona duas linhas de texto ao arquivo. O operador >
sobrescreve o conteúdo, enquanto >>
adiciona ao final.
- Criar os subdiretórios para os departamentos:
bash code snippet start
mkdir recursoshumanos financeiro ti logistica
bash code snippet end
Cria quatro diretórios que representam departamentos da empresa.
- Verificar as permissões dos diretórios criados:
bash code snippet start
ls -la
bash code snippet end
Lista todos os arquivos e diretórios com suas permissões.
Parte 3: Criação de Usuários e Grupos
- Criar os usuários:
bash code snippet start
useradd joao
useradd maria
useradd marcos
useradd ze
useradd pedro
useradd marina
# Definir senhas para os usuários
passwd joao # Digite a senha quando solicitado
passwd maria # Digite a senha quando solicitado
passwd marcos # Digite a senha quando solicitado
passwd ze # Digite a senha quando solicitado
passwd pedro # Digite a senha quando solicitado
passwd marina # Digite a senha quando solicitado
bash code snippet end
Cria seis usuários e define suas senhas. O comando useradd
cria a conta e passwd
define a senha.
- Criar os grupos:
bash code snippet start
groupadd rh
groupadd informatica
groupadd financeiro
groupadd logistica
bash code snippet end
Cria quatro grupos correspondentes aos departamentos da empresa.
16-19. Adicionar usuários aos grupos:
bash code snippet start
# Adicionar João e Maria ao grupo RH
usermod -a -G rh joao
usermod -a -G rh maria
# Adicionar Pedro ao grupo Informática
usermod -a -G informatica pedro
# Adicionar Marina ao grupo Financeiro
usermod -a -G financeiro marina
# Adicionar Marcos e Zé ao grupo Logística
usermod -a -G logistica marcos
usermod -a -G logistica ze
bash code snippet end
Adiciona cada usuário ao seu respectivo grupo departamental. O parâmetro -a
significa “append” (adicionar) e -G
especifica o grupo secundário.
Parte 4: Gerenciamento de Propriedade e Permissões
20-23. Alterar o dono dos diretórios:
bash code snippet start
# Alterar o dono do diretório recursoshumanos para joão
chown joao recursoshumanos
# Alterar o dono do diretório ti para pedro
chown pedro ti
# Alterar o dono do diretório logística para marcos
chown marcos logistica
# Alterar o dono do diretório financeiro para marina
chown marina financeiro
bash code snippet end
Altera o proprietário (dono) de cada diretório departamental para o funcionário apropriado.
24-27. Alterar o grupo dos diretórios:
bash code snippet start
# Alterar o grupo do diretório recursoshumanos para rh
chown :rh recursoshumanos
# Alterar o grupo do diretório ti para informática
chown :informatica ti
# Alterar o grupo do diretório logística para o grupo logística
chown :logistica logistica
# Alterar o grupo do diretório financeiro para o grupo financeiro
chown :financeiro financeiro
bash code snippet end
Define o grupo proprietário de cada diretório. A sintaxe :grupo
especifica apenas a alteração do grupo.
- Alterar as permissões dos diretórios:
bash code snippet start
# Permissões 770 (rwxrwx---): dono e grupo têm permissão total, outros nenhuma
chmod 770 recursoshumanos
chmod 770 financeiro
chmod 770 ti
chmod 770 logistica
bash code snippet end
Define permissões onde o proprietário e membros do grupo podem ler, escrever e executar, mas outros usuários não têm acesso.
Parte 5: Testando as Permissões
- Acessar o diretório empresa:
bash code snippet start
cd /home/empresa
bash code snippet end
Retorna ao diretório principal da empresa.
- Abrir terminais adicionais e fazer login com diferentes usuários:
bash code snippet start
# No terminal 2 (pressione Ctrl+Alt+F2)
login joao
# Digite a senha quando solicitado
# No terminal 3 (pressione Ctrl+Alt+F3)
login pedro
# Digite a senha quando solicitado
bash code snippet end
Abre terminais adicionais para testar as permissões com diferentes usuários.
31-32. Testar acesso aos diretórios com o usuário João:
bash code snippet start
# No terminal do João (tty2)
cd /home/empresa/logistica # Este comando deve falhar (Permissão negada)
cd /home/empresa/recursoshumanos # Este comando deve funcionar
bash code snippet end
Testa as permissões de acesso do João a diferentes diretórios. Ele deve ter acesso ao diretório de RH, mas não ao de Logística.
33-35. Testar criação e manipulação de arquivos com o usuário Pedro:
bash code snippet start
# No terminal do Pedro (tty3)
cd /home/empresa/ti # Este comando deve funcionar
touch arq1 # Cria um arquivo vazio
echo "Este é o primeiro arquivo do departamento de TI" > arq1 # Adiciona conteúdo
ls -la # Verifica as permissões do arquivo
bash code snippet end
Pedro cria e manipula arquivos em seu diretório departamental.
36-41. Continuação da manipulação de arquivos:
bash code snippet start
# No terminal do Pedro (tty3)
touch arq2 # Cria outro arquivo
echo "Este é o segundo arquivo do departamento de TI" > arq2 # Adiciona conteúdo
cat arq1 arq2 > arq_completo # Concatena os arquivos
ls -la # Verifica as permissões dos arquivos
# Alterando permissões
chmod 660 arq1 # Define permissões rw-rw----
chmod 600 arq2 # Define permissões rw-------
bash code snippet end
Pedro cria mais arquivos e altera suas permissões. O arquivo arq1 pode ser lido e escrito pelo dono e grupo, enquanto arq2 só pode ser acessado pelo dono.
Parte 6: Testando as Novas Permissões
- Testar acesso aos arquivos com diferentes usuários:
bash code snippet start
# No terminal do João (tty2)
cat /home/empresa/ti/arq1 # Este comando deve falhar inicialmente
bash code snippet end
João tenta ler um arquivo no diretório de TI, o que deve falhar devido às permissões.
43-46. Manipulação de arquivos pelo root:
bash code snippet start
# No terminal do root (tty1)
cp /home/empresa/ti/arq1 /home/empresa/recursoshumanos/ # Copia o arquivo
ls -la /home/empresa/recursoshumanos/ # Verifica os arquivos
bash code snippet end
O usuário root (que tem permissões totais) copia arquivos entre diretórios.
47-52. Ajuste de permissões e testes finais:
bash code snippet start
# No terminal do root (tty1)
chmod o+r /home/empresa/ti/arq1 # Adiciona permissão de leitura para outros
# Adicionar usuário Zé ao diretório de TI para testes
# No terminal 4 (pressione Ctrl+Alt+F4)
login ze
# Digite a senha quando solicitado
# No terminal de root
chmod o+rx /home/empresa/ti # Dá permissão para outros lerem e executarem o diretório
bash code snippet end
O root modifica permissões para permitir que outros usuários acessem certos arquivos, e faz testes adicionais com o usuário Zé.
Observações Importantes
- O Linux utiliza um sistema de permissões baseado em usuário-grupo-outros, representado por rwx (read-write-execute).
- As permissões numéricas (como 770) são uma forma abreviada de representar permissões:
- 4 = Leitura (r)
- 2 = Escrita (w)
- 1 = Execução (x)
- Os usuários podem pertencer a múltiplos grupos.
- O usuário root pode modificar qualquer arquivo ou diretório, independentemente das permissões.
- Um usuário precisa ter permissão de execução (x) em um diretório para poder acessá-lo.