Skip to main content dev:Coelho

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

  1. 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.

  1. 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.

  1. Acessar o diretório raiz:

bash code snippet start

cd /

bash code snippet end

Navega para o diretório raiz do sistema de arquivos.

  1. 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.

  1. 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.

  1. 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.

  1. Acessar o diretório empresa:

bash code snippet start

cd empresa

bash code snippet end

Entra no diretório recém-criado.

  1. 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

  1. Criar um arquivo vazio:

bash code snippet start

touch inicioempresa

bash code snippet end

Cria um arquivo vazio chamado “inicioempresa”.

  1. 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.

  1. 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.

  1. 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

  1. 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.

  1. 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.

  1. 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

  1. Acessar o diretório empresa:

bash code snippet start

cd /home/empresa

bash code snippet end

Retorna ao diretório principal da empresa.

  1. 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

  1. 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.