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

LinuxBeginner
Pratique Agora

Introdução

O Linux é um sistema operacional multiusuário. Isso significa que vários usuários podem utilizar o mesmo computador Linux simultaneamente, cada um 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.

Você percorrerá esses conceitos em uma ordem prática: identificar usuários, criar um usuário, gerenciar grupos e, em seguida, aplicar alterações de propriedade e permissão de arquivos. Se esta é a sua primeira vez com comandos de administração Linux, execute cada comando um por um e compare sua saída com os exemplos antes de continuar.

Visualizar Informações do Usuário Atual

No Linux, cada usuário possui um nome de usuário (username) 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 requer 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 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 proprietário do grupo para arquivos que o usuário cria.

Quando você cria um novo usuário com adduser, ele cria automaticamente um grupo primário para esse usuário com o mesmo nome do nome de usuário. Isso é chamado de esquema de Grupo Privado de Usuário (UPG - User Private Group).

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 home para o jack em /home/jack

Você será solicitado a definir uma senha para o jack e fornecer 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 é um comportamento normal por motivos de segurança. Apenas digite sua senha e pressione Enter.

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

ls /home
id jack

O comando id mostrará o ID de 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) de 5000
  • O grupo primário para labex também é chamado de labex com um ID de grupo (GID) de 5000
  • labex pertence a vários grupos secundários, incluindo sudo, ssl-cert e public

Agora, vamos visualizar todos os grupos no sistema:

cat /etc/group | sort

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

Para ver apenas os grupos relacionados ao labex, use:

grep "labex" /etc/group

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.

Para verificar se o jack agora é um 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 dar a ele privilégios de sudo adicionando-o ao grupo sudo. Mas primeiro, 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 execute tarefas administrativas sem logar como usuário 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, fornecendo uma trilha de auditoria das ações administrativas.
  3. Conveniência: Elimina a necessidade de alternar para a conta de 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 certos comandos com privilégios elevados.

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

sudo usermod -aG sudo jack

Este comando usa o usermod para modificar a conta de usuário. A opção -aG significa "append to group" (anexar ao grupo), portanto, ele adiciona o jack ao grupo sudo sem removê-lo de outros grupos.

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

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 potencialmente afetar 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

Nota: Em ls -l, o segundo caractere é uma letra minúscula l (ele), não o número 1.

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, grupo e outros (nessa ordem)
  • r significa permissão de leitura (read), w significa permissão de escrita (write) e x significa 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 será de propriedade do labex. Em seguida, usamos o chown para alterar a propriedade para o jack, tanto para o usuário quanto para o grupo.

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

  1. Finalmente, 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): Sem permissões

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 não têm permissões sobre o arquivo

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

Entender as permissões e a propriedade de arquivos é crucial no Linux. Isso permite que você controle quem pode ler, modificar ou executar arquivos, o que é fundamental para a segurança do sistema e a privacidade do usuário. À medida que você continuar trabalhando com o Linux, descobrirá que usa esses comandos com frequência 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 Arquivo 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 aos usuários
  6. Visualizar e entender as permissões de arquivos
  7. Alterar a propriedade de arquivos
  8. Modificar as permissões de arquivos

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