Grupos de Usuários e Permissões de Arquivos no Linux

LinuxBeginner
Pratique Agora

Introdução

O Linux é um sistema operacional multiusuário. Isso significa que várias pessoas podem utilizar o mesmo computador Linux simultaneamente, cada uma com seu próprio espaço privado e arquivos, enquanto compartilham alguns recursos do sistema. Este laboratório apresentará os fundamentos do gerenciamento de usuários e permissões de arquivos no Linux, conceitos cruciais para a administração e segurança do sistema.

Este é um Laboratório Guiado, que oferece instruções passo a passo para ajudar você a aprender e praticar. Siga as instruções cuidadosamente para concluir cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 92%. Ele recebeu uma taxa de avaliação positiva de 99% dos alunos.

Visualizar Informações do Usuário Atual

No Linux, cada usuário possui um nome de usuário exclusivo. Vamos começar identificando com qual usuário estamos logados no momento.

Abra o terminal e digite o seguinte comando:

whoami

O comando whoami é uma ferramenta simples que exibe o nome do usuário atual.

Você deverá ver uma saída semelhante a esta:

labex:project/ $ whoami
labex

Isso indica que você está logado atualmente como o usuário "labex".

Criar um Novo Usuário

Agora, vamos criar um novo usuário. No Linux, a criação de novos usuários exige privilégios administrativos. Usaremos o comando sudo para obter esses privilégios.

sudo significa "Superuser Do" (Superusuário faz). Ele permite que usuários comuns executem comandos como se fossem o superusuário (ou usuário root).

Antes de criarmos um novo usuário, vamos discutir o conceito de grupos primários. No Linux, todo usuário pertence a um grupo primário e pode pertencer a vários grupos secundários. O grupo primário é normalmente usado como o grupo proprietário dos arquivos que o usuário cria.

Quando você cria um novo usuário com o comando adduser, o sistema cria automaticamente um grupo primário para esse usuário com o mesmo nome do usuário. Isso é conhecido como esquema de Grupo Privado de Usuário (UPG).

Digite o seguinte comando para criar um novo usuário chamado "jack":

sudo adduser jack

Este comando irá:

  1. Criar um novo usuário chamado "jack"
  2. Criar um novo grupo chamado "jack" (o grupo primário)
  3. Adicionar o usuário "jack" ao grupo "jack" como seu grupo primário
  4. Criar um diretório pessoal (home) para o jack em /home/jack

Será solicitado que você defina uma senha para o jack e forneça algumas informações adicionais. Você pode definir uma senha simples (como "password") e pressionar Enter para usar os valores padrão para as outras informações.

Nota: Ao digitar a senha, você não verá nenhum caractere na tela — este é o comportamento normal por motivos de segurança. Apenas digite a senha e pressione Enter.

Após criar o usuário, vamos confirmar se o diretório home foi criado e verificar o grupo primário do jack:

ls /home
id jack

O comando id mostrará o ID do usuário (UID), o ID do grupo primário (GID) e quaisquer grupos secundários do jack.

Explorar Grupos de Usuários

No Linux, os grupos de usuários são uma forma de organizar vários usuários para o gerenciamento de permissões. Cada usuário tem um grupo primário e pode pertencer a vários grupos secundários. Vamos explorar os grupos aos quais nosso usuário atual pertence:

id labex

Você deverá ver uma saída semelhante a:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Isso mostra que:

  • O usuário labex tem um ID de usuário (UID) 5000
  • O grupo primário de labex também se chama labex com ID de grupo (GID) 5000
  • labex pertence a vários grupos secundários, incluindo sudo, ssl-cert e public

Agora, vamos visualizar todos os grupos do sistema:

cat /etc/group | sort

O comando cat exibe o conteúdo do arquivo, /etc/group é onde as informações dos grupos são armazenadas, e | sort organiza a saída em ordem alfabética.

Para ver apenas os grupos relacionados ao labex, use:

cat /etc/group | grep -E "labex"

O grep é uma ferramenta de busca poderosa. Este comando procura por linhas que contenham "labex" no arquivo de grupos.

Criar um Novo Grupo e Adicionar um Usuário a Ele

Vamos criar um novo grupo chamado "developers" e adicionar nosso novo usuário "jack" a este grupo:

Primeiro, crie o novo grupo:

sudo groupadd developers

Agora, adicione o jack ao grupo developers:

sudo usermod -aG developers jack

O comando usermod modifica contas de usuário. A opção -aG adiciona o usuário a um grupo suplementar (sem removê-lo dos grupos atuais).

Para verificar se o jack agora é membro do grupo developers, use:

groups jack

Você deverá ver "developers" listado entre os grupos do jack.

Adicionar um Usuário ao Grupo sudo

Agora que criamos o usuário jack, vamos conceder a ele privilégios de sudo adicionando-o ao grupo sudo. Mas antes, vamos entender por que isso é importante:

Adicionar um usuário ao grupo sudo permite que ele execute comandos com privilégios de superusuário ou root. Isso é útil por vários motivos:

  1. Segurança: Permite que o usuário realize tarefas administrativas sem precisar logar diretamente como root, o que geralmente é considerado um risco de segurança.
  2. Responsabilidade: Quando os usuários usam o sudo, suas ações são registradas em log, fornecendo uma trilha de auditoria das ações administrativas.
  3. Conveniência: Elimina a necessidade de alternar para a conta do usuário root para tarefas administrativas ocasionais.
  4. Controle granular: A configuração do sudo pode ser personalizada para permitir que usuários específicos executem apenas determinados comandos com privilégios elevados.

Para adicionar o jack ao grupo sudo, use este comando:

sudo usermod -aG sudo jack

Este comando utiliza o usermod para modificar a conta do usuário. A opção -aG significa "acrescentar ao grupo", portanto, adiciona o jack ao grupo sudo sem removê-lo de outros grupos.

Após adicionar o jack ao grupo sudo, você pode verificar a associação dele com:

sudo groups jack

Você deverá ver sudo listado entre os grupos do jack.

Ao adicionar o jack ao grupo sudo, demos a ele a capacidade de realizar tarefas administrativas no sistema. No entanto, é importante lembrar que com grandes poderes vêm grandes responsabilidades. Usuários com privilégios de sudo devem ser confiáveis e entender as implicações de suas ações, pois podem afetar potencialmente todo o sistema.

Entendendo e Manipulando Permissões e Propriedade de Arquivos

No Linux, as permissões e a propriedade de arquivos são cruciais para a segurança do sistema. Vamos explorar esses conceitos e aprender como manipulá-los.

  1. Primeiro, vamos examinar as permissões atuais no diretório /home:
ls -l /home

Você verá uma saída semelhante a:

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Vamos detalhar o que isso significa:

  • O primeiro caractere indica o tipo de arquivo (d para diretório, - para arquivo comum)
  • Os próximos 9 caracteres representam as permissões para o proprietário, o grupo e outros (nessa ordem)
  • r significa permissão de leitura (read), w permissão de escrita (write) e x permissão de execução (execute)
  • O nome de usuário após esses caracteres é o proprietário do arquivo, seguido pelo grupo proprietário
  1. Agora, vamos criar um novo arquivo e alterar sua propriedade:
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

O comando touch cria um arquivo vazio. Inicialmente, o arquivo pertencerá ao labex. Em seguida, usamos chown para mudar a propriedade para o jack, tanto para o usuário quanto para o grupo.

Por que mudar a propriedade? No Linux, os proprietários de arquivos têm privilégios especiais sobre seus arquivos. Ao mudar a propriedade, estamos dando ao jack controle total sobre este arquivo.

  1. Por fim, vamos modificar as permissões do arquivo:
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

O comando chmod altera as permissões do arquivo. O número 750 é uma forma abreviada de definir permissões:

  • 7 (proprietário): Leitura (4) + Escrita (2) + Execução (1) = 7
  • 5 (grupo): Leitura (4) + Execução (1) = 5
  • 0 (outros): Nenhuma permissão

Este conjunto de permissões significa:

  • O proprietário (jack) pode ler, escrever e executar o arquivo
  • Membros do grupo jack podem ler e executar o arquivo
  • Outros usuários não têm nenhuma permissão sobre o arquivo

Por que definir essas permissões? Este é um conjunto comum de permissões que permite acesso total ao proprietário, acesso limitado ao grupo e restringe o acesso de todos os demais. É um equilíbrio entre usabilidade e segurança.

Entender as permissões e a propriedade de arquivos é fundamental no Linux. Isso permite controlar quem pode ler, modificar ou executar arquivos, o que é a base da segurança do sistema e da privacidade do usuário. À medida que você continuar trabalhando com Linux, usará esses comandos frequentemente para gerenciar o acesso a arquivos e diretórios.

Resumo

Parabéns! Você concluiu o laboratório de Grupos de Usuários e Permissões de Arquivos no Linux. Você aprendeu como:

  1. Visualizar informações do usuário
  2. Criar novos usuários e entender grupos primários
  3. Explorar e modificar grupos de usuários
  4. Criar novos grupos e adicionar usuários a eles
  5. Conceder privilégios de sudo a usuários
  6. Visualizar e entender permissões de arquivos
  7. Alterar a propriedade de arquivos
  8. Modificar permissões de arquivos

Essas habilidades são fundamentais para gerenciar usuários e proteger arquivos em um ambiente Linux. À medida que você avança em sua jornada no Linux, verá que esses conceitos são essenciais para a administração e segurança do sistema.