Gerenciar usuários, grupos e permissões é uma das tarefas fundamentais para administradores do Ubuntu Server. Seja configurando um ambiente multiusuário ou protegendo seu servidor, é essencial entender como criar, modificar e gerenciar contas de usuário, grupos e permissões. Este guia oferece uma visão aprofundada do gerenciamento de usuários e permissões, com exemplos reais, saídas de comandos e boas práticas.
Artigo anterior:
01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud
02. Como configurar seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud
03. Dominando a linha de comando do Linux para o Ubuntu Server
Introdução
O Ubuntu Server é uma plataforma poderosa para hospedar aplicativos, gerenciar serviços e habilitar ambientes multiusuário. Ao dominar o gerenciamento de usuários e permissões, você pode proteger seu servidor, controlar o acesso de forma eficaz e impedir ações não autorizadas. Este guia abordará tudo, desde a criação básica de contas de usuário até configurações avançadas de permissões, com exemplos detalhados.
Criar e gerenciar contas de usuário
Criar um usuário
Para criar uma conta de usuário no Ubuntu Server, use o comando adduser. Esse comando é interativo e solicitará informações adicionais sobre o usuário.
Comando de exemplo:
sudo adduser john
Saída de exemplo:
Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []: 101
Work Phone []: 555-1234
Home Phone []: 555-5678
Other []:
Is the information correct? [Y/n] Y
Isso cria um usuário chamado john com um diretório pessoal em /home/john e atribui a ele um ID de usuário (UID) exclusivo.
Modificar um usuário
O comando usermod permite modificar contas de usuário. Por exemplo, você pode alterar o diretório pessoal, o shell ou as participações em grupos de um usuário.
Alterar o diretório pessoal:
sudo usermod -d /home/new_john john
sudo mv /home/john /home/new_john
Bloquear ou desbloquear uma conta de usuário:
- Bloqueie a conta:
sudo passwd -l john - Desbloqueie a conta:
sudo passwd -u john
Saída de exemplo (bloqueio de conta):
passwd: password expiry information changed.
Excluir um usuário
Para excluir um usuário, use o comando deluser. Você também pode remover seu diretório pessoal e os arquivos associados.
Comando de exemplo:
sudo deluser --remove-home john
Saída de exemplo:
Looking for files to backup/remove ...
Removing files ...
Removing user `john' ...
Warning: group `john' has no more members.
Done.
Gerenciar grupos
Grupos são uma forma de organizar usuários e atribuir permissões coletivas. Cada usuário pode pertencer a vários grupos.
Criar e gerenciar grupos
Para criar um grupo, use o comando addgroup.
Comando de exemplo:
sudo addgroup developers
Saída de exemplo:
Adding group `developers' (GID 1002) ...
Done.
Para excluir um grupo:
sudo delgroup developers
Adicionar usuários a grupos
Para adicionar um usuário a um grupo, use o comando usermod com a opção -aG.
Comando de exemplo:
sudo usermod -aG developers john
Verificar a participação em grupos:
groups john
Saída de exemplo:
john : john developers
Isso mostra que john pertence aos grupos john e developers.
Compreendendo as permissões de arquivos e diretórios
As permissões de arquivos do Linux são cruciais para controlar o acesso a arquivos e diretórios. As permissões são definidas para três categorias: Proprietário, Grupo, e Outros.
Tipos de permissões
Cada categoria tem três tipos de permissões:
- Leitura (r): permite visualizar o conteúdo de arquivos ou listar o conteúdo de diretórios.
- Escrita (w): permite modificar o conteúdo de arquivos ou criar/excluir arquivos em um diretório.
- Execução (x): permite executar arquivos executáveis ou acessar diretórios.
Exemplo:
Use ls -l para ver as permissões de arquivo:
ls -l /home/john
Saída de exemplo:
-rw-r--r-- 1 john john 4096 Mar 21 14:00 file.txt
rw-: o proprietário (john) tem permissões de leitura e escrita.r--: o grupo (john) tem permissões de somente leitura.r--: outros têm permissões de somente leitura.
Alterar permissões
Use o comando chmod para modificar as permissões.
Comandos de exemplo:
- Conceda permissão de execução ao proprietário:
chmod u+x file.txt - Remova a permissão de escrita para outros: chmod o-w file.txt
Usar valores numéricos:
As permissões também podem ser definidas usando valores numéricos:
chmod 755 file.txt: permissões completas para o proprietário, leitura/execução para o grupo e outros.
Compreendendo as permissões numéricas (755, 777, 744)
As permissões do Linux podem ser representadas numericamente, em que cada dígito corresponde a um nível de permissão específico:
Estrutura das permissões numéricas:
Cada permissão numérica consiste em três dígitos:
- Primeiro dígito: permissões para o proprietário.
- Segundo dígito: permissões para o grupo.
- Terceiro dígito: permissões para outros.
Cada dígito é calculado com base nos seguintes valores:
4: leitura (r)2: escrita (w)1: execução (x)
A soma desses valores determina o nível de permissão para cada categoria.
Permissões numéricas comuns:
- 777: permissões completas para todos (leitura, escrita, execução).
- Proprietário:
rwx - Grupo:
rwx - Outros:
rwx - Caso de uso: raramente usado por razões de segurança, mas pode ser aplicado a diretórios temporários como
/tmp.
- Proprietário:
- 755: permissões completas para o proprietário, permissões de leitura e execução para o grupo e outros.
- Proprietário:
rwx - Grupo:
r-x - Outros:
r-x - Caso de uso: comum para arquivos executáveis ou diretórios.
- Proprietário:
- 744: permissões completas para o proprietário, somente leitura para o grupo e outros.
- Proprietário:
rwx - Grupo:
r-- - Outros:
r-- - Caso de uso: comum para arquivos privados.
- Proprietário:
Exemplo:
Para definir as permissões de um script como 755:
chmod 755 script.sh
Saída de exemplo:
-rwxr-xr-x 1 john john 4096 Mar 21 14:00 script.sh
Gerenciamento de propriedade
Altere a propriedade com o comando chown.
Comando de exemplo:
sudo chown john:developers file.txt
Isso define o proprietário como john e o grupo como developers.
Saída de exemplo:
-rw-r--r-- 1 john developers 4096 Mar 21 14:00 file.txt
Usar o Sudo para escalação de privilégios
O comando sudo permite que os usuários executem comandos com privilégios elevados. Para conceder acesso sudo a um usuário, adicione-o ao grupo sudo.
Comando de exemplo:
sudo usermod -aG sudo john
Verificar o acesso Sudo:
sudo -l -U john
Saída de exemplo:
User john may run the following commands on this host:
(ALL : ALL) ALL
Boas práticas para proteger contas de usuário
- Aplique políticas de senhas fortes:
Usepasswdpara definir a expiração da senha:sudo passwd -e john - Limite o acesso Sudo:
Conceda privilégiossudoapenas a usuários confiáveis. - Desative o login como root:
Edite o arquivo de configuração do SSH:
sudo nano /etc/ssh/sshd_config
Defina:
PermitRootLogin no
- Use chaves SSH para autenticação:
Substitua o login baseado em senha por chaves SSH. - Monitore a atividade dos usuários:
Uselastouwhopara acompanhar a atividade de login:
last
Explicação da saída
uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin pts/0 192.168.255.48 Fri Mar 21 13:54 still logged in
uadmin pts/1 192.168.255.48 Fri Mar 21 01:49 - 08:19 (06:29)
uadmin pts/0 192.168.255.48 Fri Mar 21 00:53 - 08:19 (07:26)
reboot system boot 6.8.0-1021-azure Fri Mar 21 00:22 still running
Análise linha por linha
Login de usuário: uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin: o nome de usuário do usuário que fez login.pts/1: a sessão de pseudoterminal usada para o login. Pseudoterminais (pts) são terminais virtuais, normalmente criados quando os usuários fazem login via SSH.192.168.255.48: o endereço IP da máquina remota a partir da qual o usuário se conectou.Fri Mar 21 13:55: a data e a hora em que o usuário fez login.still logged in: indica que o usuário está conectado no momento e ativo.
| Coluna | Significado |
|---|---|
| Nome de usuário | Nome do usuário ou evento (uadmin, reboot). |
| Terminal | Sessão de pseudoterminal (pts/X) ou evento do sistema (system boot). |
| Host remoto/IP | Endereço IP ou nome de host da máquina remota que inicia a conexão. |
| Data/hora de login | Data e hora em que o login ou evento começou. |
| Hora de logout | Data e hora em que a sessão terminou (se aplicável). |
| Duração | Tempo total de duração da sessão (se aplicável). |
| Status da sessão | Status atual da sessão (still logged in, still running). |
Comandos adicionais para obter informações
- Mostrar usuários conectados no momento:
who - Saída de exemplo:
uadmin pts/1 2023-03-21 13:55 (192.168.255.48)
uadmin pts/0 2023-03-21 13:54 (192.168.255.48)
- Verificar o tempo de atividade do sistema:
uptime - Saída de exemplo:
14:15:32 up 13:53, 2 users, load average: 0.10, 0.12, 0.15
Conclusão
Gerenciar usuários, grupos e permissões é uma habilidade fundamental para administradores do Ubuntu Server. Ao dominar essas tarefas, você pode proteger seu servidor, impedir o acesso não autorizado e melhorar a eficiência operacional.
Próximo tutorial: Conceitos básicos de rede para o Ubuntu Server
No próximo tutorial, abordaremos os conceitos básicos de rede para o Ubuntu Server, incluindo a configuração de interfaces de rede, a definição de IPs estáticos, a solução de problemas de conectividade de rede e o uso do netplan do Ubuntu para tarefas de rede. Fique atento para obter informações práticas para otimizar a configuração de rede do seu servidor.
7 thoughts on “04. Managing Users and Permissions on Ubuntu Server: A Comprehensive Guide”