Skip to Content
DocumentaçãoOperaçõesAdministração do SistemaUsuários e permissões

Usuários e permissões

Ubuntu é um sistema operacional multiusuário, e o gerenciamento adequado de usuários e a configuração de permissões são os pilares da segurança do sistema. This article explains how to create and manage users, configure groups, and understand the file permission system in Ubuntu 26.04.

Gerenciamento de usuários

Criando usuários

Use useradd para criar um novo usuário:

# Create a user with a home directory sudo useradd -m -s /bin/bash username # Set the password sudo passwd username

O comando adduser é preferido, pois é um script wrapper interativo que orienta você durante a configuração:

sudo adduser username

Modificando atributos do usuário

Use usermod para modificar os atributos de um usuário existente:

# Change the default shell sudo usermod -s /bin/zsh username # Change home directory (and move files) sudo usermod -d /home/newdir -m username # Lock a user account sudo usermod -L username # Unlock a user account sudo usermod -U username # Rename a user sudo usermod -l newname oldname

Excluindo usuários

# Delete a user but keep the home directory sudo userdel username # Delete a user and their home directory sudo userdel -r username

Visualizando informações do usuário

# Check the current user whoami # View user ID and group information id username # List all users cat /etc/passwd # View currently logged-in users who w

Gestão de Grupo

Criando e gerenciando grupos

# Create a new group sudo groupadd developers # Add a user to a group (preserving existing groups) sudo usermod -aG developers username # Add a user to multiple groups sudo usermod -aG docker,sudo,developers username # View the groups a user belongs to groups username # View all members of a group getent group developers # Delete a group sudo groupdel developers

Grupo Primário vs. Grupos Suplementares

Cada usuário possui um grupo primário e zero ou mais grupos suplementares:

# Change a user's primary group sudo usermod -g newgroup username # Modify supplementary groups (-a means append; without -a, all supplementary groups are replaced) sudo usermod -aG extragroup username

Configuração sudo

Note

O Ubuntu 26.04 vem com sudo-rs, uma reescrita do Rust, como substituto padrão do C sudo tradicional. It is compatible with the vast majority of common sudoers syntax (user/group rules, NOPASSWD, ALL, /etc/sudoers.d/, etc.), so day-to-day usage is unchanged. No entanto, algumas diretivas obscuras e plug-ins de terceiros ainda não foram implementados. If a sudo-dependent script errors out or behaves unexpectedly, first run sudo --version to confirm the current implementation, and if needed temporarily install the traditional version with sudo apt install sudo to troubleshoot, then switch back to sudo-rs once the issue is pinned down.

Uso Básico

# Execute a command with root privileges sudo apt update # Switch to the root user sudo -i # Execute a command as another user sudo -u www-data command

Adicionando um usuário ao grupo sudo

# In Ubuntu, members of the sudo group have administrator privileges sudo usermod -aG sudo username

Editando o arquivo sudoers

Sempre use visudo para editar a configuração do sudoers, pois ele realiza a verificação de sintaxe antes de salvar:

sudo visudo

Exemplos de configuração comuns:

# Allow a user to execute all commands without a password username ALL=(ALL) NOPASSWD: ALL # Allow a user to execute only specific commands username ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx # Allow group members to execute apt without a password %developers ALL=(ALL) NOPASSWD: /usr/bin/apt

Você também pode criar arquivos de configuração independentes em /etc/sudoers.d/:

sudo visudo -f /etc/sudoers.d/developers

Noções básicas de permissão de arquivo

Compreendendo a notação de permissão

As permissões de arquivo do Linux consistem em três conjuntos: proprietário, grupo e outros. Cada conjunto inclui permissões de leitura (r=4), gravação (w=2) e execução (x=1).

# View file permissions ls -la # Example output: # -rwxr-xr-- 1 user group 4096 Jan 1 12:00 script.sh # │├─┤├─┤├─┤ # │ │ │ └── Others: r-- (read only) # │ │ └── Group: r-x (read and execute) # │ └── Owner: rwx (read, write, execute) # └── File type: - regular file, d directory, l symlink

chmod - Alterando permissões

# Numeric mode chmod 755 script.sh # rwxr-xr-x chmod 644 config.txt # rw-r--r-- chmod 600 secret.key # rw------- # Symbolic mode chmod u+x script.sh # Add execute permission for the owner chmod g+w file.txt # Add write permission for the group chmod o-r file.txt # Remove read permission for others chmod a+r file.txt # Add read permission for everyone # Recursively change directory permissions chmod -R 755 /var/www/html

chown - Mudança de propriedade

# Change the file owner sudo chown newuser file.txt # Change both owner and group sudo chown newuser:newgroup file.txt # Change only the group sudo chgrp newgroup file.txt # Recursively change directory ownership sudo chown -R www-data:www-data /var/www

Permissões Especiais

# SUID - Execute as the file owner chmod u+s executable chmod 4755 executable # SGID - Execute as the file group / new files in directory inherit the group chmod g+s directory chmod 2755 directory # Sticky Bit - Only the file owner can delete files (commonly used on /tmp) chmod +t directory chmod 1777 directory

umask - Máscara de permissão padrão

# View current umask umask # Set umask (new file default = 0666 - umask, new directory = 0777 - umask) umask 022 # New files 644, new directories 755 umask 077 # New files 600, new directories 700

Para alterar permanentemente a umask, edite ~/.bashrc ou /etc/login.defs.

Permissões estendidas da ACL

Quando as permissões padrão não são flexíveis o suficiente, você pode usar ACLs (listas de controle de acesso):

# Install ACL tools sudo apt install acl # Grant permissions to a specific user setfacl -m u:username:rwx /path/to/file # Grant permissions to a specific group setfacl -m g:groupname:rx /path/to/dir # View ACL settings getfacl /path/to/file # Recursively set ACL setfacl -R -m u:username:rwx /path/to/dir # Set default ACL (newly created files inherit automatically) setfacl -d -m u:username:rwx /path/to/dir # Remove ACL setfacl -x u:username /path/to/file

Melhores práticas

  1. Princípio do menor privilégio: conceda aos usuários apenas as permissões mínimas necessárias para realizar seu trabalho.
  2. Evite usar root diretamente: Use sudo para executar comandos administrativos em vez de permanecer conectado como root.
  3. Use grupos com sabedoria: gerenciar permissões por meio de grupos é mais eficiente do que configurar cada usuário individualmente.
  4. Auditar regularmente: Revise periodicamente /etc/passwd e /etc/group para limpar usuários e grupos que não são mais necessários.
  5. Proteja arquivos confidenciais: certifique-se de que arquivos como chaves /etc/shadow e SSH tenham permissões corretas (600 ou mais rigorosas).