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 usernameO comando adduser é preferido, pois é um script wrapper interativo que orienta você durante a configuração:
sudo adduser usernameModificando 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 oldnameExcluindo usuários
# Delete a user but keep the home directory
sudo userdel username
# Delete a user and their home directory
sudo userdel -r usernameVisualizando 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
wGestã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 developersGrupo 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 usernameConfiguração sudo
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 commandAdicionando um usuário ao grupo sudo
# In Ubuntu, members of the sudo group have administrator privileges
sudo usermod -aG sudo usernameEditando 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 visudoExemplos 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/aptVocê também pode criar arquivos de configuração independentes em /etc/sudoers.d/:
sudo visudo -f /etc/sudoers.d/developersNoçõ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 symlinkchmod - 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/htmlchown - 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/wwwPermissõ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 directoryumask - 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 700Para 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/fileMelhores práticas
- Princípio do menor privilégio: conceda aos usuários apenas as permissões mínimas necessárias para realizar seu trabalho.
- Evite usar root diretamente: Use
sudopara executar comandos administrativos em vez de permanecer conectado como root. - Use grupos com sabedoria: gerenciar permissões por meio de grupos é mais eficiente do que configurar cada usuário individualmente.
- Auditar regularmente: Revise periodicamente
/etc/passwde/etc/grouppara limpar usuários e grupos que não são mais necessários. - Proteja arquivos confidenciais: certifique-se de que arquivos como chaves
/etc/shadowe SSH tenham permissões corretas (600 ou mais rigorosas).