Users and groups (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Users and groups. Data da última tradução: 2020-04-14. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Usuários e grupos são usados no GNU/Linux para controle de acesso — isto é, para controlar o acesso aos arquivos, diretórios e periféricos do sistema. O Linux oferece mecanismos de controle de acesso relativamente simples/grosseiros por padrão. Para opções mais avançadas, veja ACL, Capacidades e PAM#Configuration How-Tos.

Visão geral

Um usuário é qualquer pessoa que use um computador. Nesse caso, estamos descrevendo os nomes que representam esses usuários. Pode ser Maria ou Guilherme, e eles podem usar os nomes SraDragao ou Pirata no lugar de seu nome real. Tudo o que importa é que o computador possui um nome para cada conta que ele cria, e é esse o nome pelo qual uma pessoa ganha acesso para usar o computador. Alguns serviços do sistema também são executados usando contas de usuários restritas ou privilegiadas.

O gerenciamento de usuários é feito com a finalidade de segurança, limitando o acesso de determinadas formas específicas. O superusuário (root) possui acesso completo ao sistema operacional e sua configuração; destina-se apenas a uso administrativo. Usuários não privilegiados podem usar os programas su e sudo para a escalação de privilégios controlados.

Qualquer indivíduo pode ter mais de uma conta, desde que eles usem um nome diferente para cada conta que eles criem. Além disso, existem alguns nomes reservados que não podem ser usados como "root".

Os usuários podem ser agrupados em um "grupo", e os usuários podem ser adicionados a um grupo existente para utilizar o acesso privilegiado que ele concede.

Nota: Iniciante deve usar essas ferramentas com cuidado e deve ficar longe de ter qualquer coisa a ver com qualquer outra conta de usuário "existente", diferente da sua.

Permissões e propriedade

De In UNIX Everything is a File:

O sistema operacional UNIX cristaliza um par de ideias e conceitos unificadores que moldaram seu design, interface do usuário, cultura e evolução. Um dos mais importantes é provavelmente o mantra: "tudo é um arquivo", amplamente considerado como um dos pontos de definição do UNIX.
Este princípio chave de design consiste em fornecer um paradigma unificado para acessar uma ampla gama de recursos de entrada/saída: documentos, diretórios, discos rígidos, CD-ROM, modems, teclados, impressoras, monitores, terminais e até mesmo interprocessos e redes comunicações. O truque é fornecer uma abstração comum para todos esses recursos, cada um dos quais os pais do UNIX chamaram de "arquivo". Como cada "arquivo" é exposto através da mesma API, você pode usar o mesmo conjunto de comandos básicos para ler/escrever em um disco, teclado, documento ou dispositivo de rede.

De Extending UNIX File Abstraction for General-Purpose Networking[link inativo 2024-01-13 ⓘ]:

Uma abstração fundamental e muito poderosa e consistente fornecida no UNIX e sistemas operacionais compatíveis é a abstração do arquivo. Muitos serviços de sistema operacional e interfaces de dispositivos são implementados para fornecer uma metáfora de arquivo ou sistema de arquivos para aplicativos. Isso permite novos usos para, e aumenta consideravelmente o poder de, aplicações existentes — ferramentas simples projetadas com usos específicos em mente podem, com abstrações de arquivos do UNIX, serem usadas de maneiras inovadoras. Uma ferramenta simples, como o cat, projetada para ler um ou mais arquivos e produzir os conteúdos para a saída padrão, pode ser usada para ler a partir de dispositivos de E/S através de arquivos de dispositivos especiais, tipicamente encontrados no diretório /dev. Em muitos sistemas, a gravação e reprodução de áudio podem ser feitas simplesmente com os comandos "cat /dev/audio > meu_arquivo" e "cat meu_arquivo > /dev/audio", respectivamente.

Todo arquivo em um sistema GNU/Linux pertence a um usuário e a um grupo. Além disso, existem três tipos de permissões de acesso: ler, escrever e executar. Permissões de acesso diferentes podem ser aplicadas ao usuário dono de um arquivo, grupo dono e outros (aqueles que não são usuários nem do grupo dono). Pode-se determinar os donos e permissões de um arquivo ao visualizar o formato de listagem longa do comando ls:

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

A primeira coluna exibe as permissões do arquivo (por exemplo, o arquivo initramfs-linux.img possui permissões -rw-r-r--). As terceira e quarta colunas exibem o usuário e o grupo que possuem o arquivo, respectivamente. Neste exemplo, todos os arquivos pertencem ao usuário root e do grupo root.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

Neste exemplo, o diretório sf_Shared pertence ao usuário root e do grupo vboxsf. Também é possível determinar os donos e as permissões do arquivo usando o comando stat:

Usuário dono:

$ stat -c %U /media/sf_Shared/
root

Grupo dono:

$ stat -c %G /media/sf_Shared/
vboxsf

Direitos de acesso:

$ stat -c %A /media/sf_Shared/
drwxrwx---

As permissões de acesso são exibidas em três grupos de caracteres, representando as permissões do usuário dono, grupo dono e outros, respectivamente. Por exemplo, os caracteres -rw-r-r-- indicam que o dono do arquivo tem permissão de leitura e gravação, mas não de execução (rw-), enquanto os usuários pertencem ao grupo dono e outros usuários só têm permissão de leitura (r-- e r--). Enquanto isso, os caracteres drwxrwx--- indicam que o dono do arquivo e os usuários pertencentes ao grupo dono possuem permissões de leitura, gravação e execução (rwx e rwx), enquanto outros usuários têm acesso negado (---). O primeiro caractere representa o tipo do arquivo.

Liste arquivos que pertencem a um usuário ou grupo com o utilitário find:

# find / -group grupo
# find / -group númerogrupo
# find / -user usuário

O usuário e o grupo donos de um arquivo podem ser alterados com o comando chown (change owner ou mudar o dono). As permissões de acesso a um arquivo podem ser alteradas com o comando chmod (change mode ou mudar o modo).

Veja chown(1), chmod(1) e Permissões de acesso a arquivos e diretórios para detalhes adicionais.

Shadow

As ferramentas de gerenciamento de usuários, grupos e senhas no Arch Linux vem com o pacote shadow, que é uma dependência do metapacote base.

Lista de arquivos

Atenção: Não edite esses arquivos na mão. Há utilitários que lidam corretamente com a trava e evitam invalidar o formato da base de dados. Veja #Gerenciamento de usuário e #Gerenciamento de grupo para uma visão geral.
Arquivo Propósito
/etc/shadow Informações da conta do usuário seguras
/etc/passwd Informações da conta do usuário
/etc/gshadow Contém a "sombra" da informação para contas de grupo
/etc/group Define os grupos para aos quais os usuários pertencem

Gerenciamento de usuário

Para listar os usuários conectados no sistema, o comando who pode ser usado. Para listar todas as contas de usuários existentes, incluindo suas propriedades armazenadas na base de dados de usuário, execute passwd -Sa como root. Veja passwd(1) para a descrição do formato de saída.

Para adicionar um novo usuário, use o comando useradd:

# useradd -m -G grupos_adicionais -s shell_de_login nome_de_usuário
-m/--create-home
cria o diretório pessoal do usuário como /home/nome_de_usuário. Dentro de seu diretório pessoal, um usuário que não seja root pode escrever arquivos, exclui-los, instalar programas e por aí vai.
-G/--groups
introduz uma lista de grupos suplementares dos quais o usuários também é membro. Cada grupo é separado do próximo por uma vírgula, com nenhum espaço no meio. O padrão é para o usuário pertencer a apenas o grupo inicial.
-s/--shell
define o caminho e o nome do arquivo do shell de login padrão do usuário. Após o processo de inicialização ter concluído, o shell de login padrão é o especificado aqui. Assegure-se de que o pacote do shell escolhido está instalado se escolher algo diferente do Bash.
Atenção: Para ser capaz de se autenticar, o shell de login deve ser um dos listados em /etc/shells, do contrário o módulo PAMpam_shell vai negar a requisição de login. Em especial, não use o caminho /usr/bin/bash em vez de /bin/bash, a menos que propriamente configurado em /etc/shells; veja FS#33677.
Nota: A senha para o usuário recém criado deve então ser definido, usando passwd conforme mostrado em #Exemplo de adicionar um usuário.

Se um grupo inicial do usuário for especificado por nome e número, deve se referir a um grupo já existente. Se não especificado, o comportamento de useradd vai depender da variável USERGROUPS_ENAB contida em /etc/login.defs. O comportamento padrão (USERGROUPS_ENAB yes) é criar um grupo com o nome igual ao nome de usuário.

Quando o shell de login destina-se a ser não funcional, por exemplo quando a conta de usuário é criada para um serviço específico, /usr/bin/nologin pode ser especificado no lugar de uma shell comum para educadamente recusar um login (veja nologin(8)).

Veja useradd(8) para outras opções suportadas.

Exemplo de adicionar um usuário

Para adicionar um novo usuário chamado archie, crar seu diretório pessoal e, do contrário, usando todos os padrões nos termos de grupos, nomes de pastas, shell usado e vários outros parâmetros:

# useradd -m archie
Dica: O valor padrão usado para o shell de login da nova conta pode ser exibida usando useradd --defaults. O padrão é Bash, um shell diferente pode ser especificado com a opção -s/--shell; veja /etc/shells para shells de login válidos.

Apesar de ser obrigatório proteger o recém criado usuário archie com uma senha, é altamente recomendado fazê-lo:

# passwd archie

O comando useradd acima pode também criar automaticamente um grupo chamado archie e torna este o grupo padrão para o usuário archie. Fazer com que cada usuário tenha seu próprio grupo (com o nome do grupo igual ao nome do usuário) é a maneira preferida de adicionar usuários.

Você poderia fazer o grupo padrão alguma outra coisa usando a opção -g, mas note que, em sistemas multiusuários, o uso de um único grupo padrão (por exemplo, users) para cada usuário não é recomendado. A razão é que, tipicamente, o método para facilitar o acesso de gravação compartilhada para grupos específicos de usuários é definir o valor umask do usuário para 002, o que significa que o grupo padrão sempre terá, por padrão, acesso de gravação a qualquer arquivo que você crie. Veja também User Private Groups. Se um usuário deve ser um membro de um grupo específico, especifique aquele grupo como um grupo suplementar ao criar o usuário.

No cenário recomendado, onde o grupo padrão tem o mesmo nome que o nome do usuário, todos os arquivos são somente graváveis para o usuário que os criou. Para permitir o acesso de gravação a um grupo específico, os arquivos/pastas compartilhados podem ser gravados por padrão para todos neste grupo e o grupo dono pode ser fixado automaticamente no grupo que possui o diretório pai configurando o bit setgid neste diretório:

# chmod g+s nosso_diretório_compartilhado

Caso contrário, o grupo padrão do criador do arquivo (geralmente o mesmo que o nome do usuário) é usado.

Se uma mudança de GID for necessária temporariamente, você também pode usar o comando newgrp para alterar o GID padrão do usuário para outro GID em tempo de execução. Por exemplo, depois de executar newgrp nomegrupo, os arquivos criados pelo usuário serão associados ao GID nomegrupo, sem requerer um novo login. Para voltar ao GID padrão, execute newgrp sem um nome de grupo.

Exemplo de adicionar um usuário do sistema

Os usuários do sistema podem ser usados para executar processos/daemons em um usuário diferente, protegendo (por exemplo, com chown) arquivos e/ou diretórios e mais exemplos de hardening do computador.

Com o seguinte comando, um usuário do sistema sem acesso ao shell e sem um diretório home é criado (opcionalmente, anexe o parâmetro -U para criar um grupo com o mesmo nome que o usuário e adicione o usuário para este grupo):

# useradd -r -s /usr/bin/nologin nome_de_usuário

Se o usuário do sistema exige um ID de usuário e grupo específico, especifique-os com as opções -u/--uid e -g/--gid ao criar o usuário:

# useradd -r -u 850 -g 850 -s /usr/bin/nologin nome_de_usuário

Alterar um nome de login ou diretório home do usuário

Para alterar o diretório home do usuário:

# usermod -d /meu/novo/home -m nome_de_usuário

A opção -m também cria automaticamente o novo diretório e move o conteúdo para lá.

Dica: Você pode criar um link do antigo diretório inicial do usuário para o novo. Isso permitirá que os programas encontrem arquivos que tenham caminhos codificados.
# ln -s /meu/novo/home/ /meu/antigo/home

Certifique-se de que não haja / ao final de /meu/novo/home.

Para alterar o nome de login de um usuário:

# usermod -l novo_nome antigo_nome
Atenção: Certifique-se de que você não está autenticado como o usuário cujo nome você está prestes a mudar. Abra um novo tty (por exemplo, Ctrl+Alt+F6) e se autentique como root ou como outro usuário e eleve para root. O usermod deve evitar que você faça isso por engano.

Alterar um nome de usuário é seguro e fácil quando feito corretamente, basta usar o comando usermod. Se o usuário estiver associado a um grupo com o mesmo nome, você pode renomear isso com o comando groupmod.

Alternativamente, o arquivo /etc/passwd pode ser editado diretamente, veja #Base de dados de usuários para uma introdução ao seu formato.

Também tenha em mente as notas a seguir:

  • Se você estiver usando sudo, certifique-se de atualizar o /etc/sudoers para refletir o(s) novo(s) usuário(s) (via o comando visudo como root).
  • Os crontabs pessoais precisam ser ajustados renomeando o arquivo do usuário em /var/spool/cron do nome antigo para o novo, e depois abrindo com crontab -e para alterar os caminhos relevantes e fazê-lo ajustar as permissões do arquivo.
  • O conteúdo das pastas e dos arquivos pessoais do wine em ~/.wine/drive_c/users, ~/.local/share/applications/wine/Programs e possivelmente mais, precisam ser renomeados/editados manualmente.
  • Certos complementos do Thunderbird, como o Enigmail, podem precisar ser reinstalados.
  • Qualquer coisa no seu sistema (atalhos da área de trabalho, scripts de shell, etc.) que usa um caminho absoluto para seu diretório home (ou seja, /home/antigo_nome) precisará ser alterado para refletir seu novo nome. Para evitar esses problemas em scripts de shell, use as variáveis ~ ou $HOME para diretórios home.
  • Além disso, não se esqueça de editar adequadamente os arquivos de configuração em /etc que dependem de seu caminho absoluto (p.ex., Samba, CUPS, etc.). Uma boa maneira de aprender quais arquivos você precisa atualizar envolve o uso do comando grep desta maneira: grep -r antigo_usuário *

Outros exemplos de gerenciamento de usuário

Para adicionar um usuário a outros grupos, use (grupos_adicionais é uma lista separada por vírgula):

# usermod -aG grupos_adicionais nome_de_usuário
Atenção: Se a opção -a for omitida no comando usermod acima, o usuário é removido de todos os outros grupos não listados em grupos_adicionais (i.e. o usuário será membro apenas daqueles grupos em grupos_adicionais).

Para inserir informações do usuário para o comentário GECOS (ex. o nome completo do usuário), digite:

# chfn nome_de_usuário

(dessa forma, chfn é executado em modo interativo).

Alternativamente, o comentário GECOS pode ser definido mais livremente com:

# usermod -c "Comentário" nome_de_usuário

Para marcar a senha de um usuário como expirada, exigindo que ele crie uma nova senha na primeira vez que fizerem login, digite:

# chage -d 0 nome_de_usuário

Contas de usuário podem ser excluídas com o comando userdel:

# userdel -r nome_de_usuário

A opção -r especifica que o diretório home do usuário e o spool de correios também devem ser excluídos.

Para alterar o shell de login do usuário:

# usermod -s /bin/bash nome_de_usuário
Dica: O script adduserAUR permite realizar os trabalhos de useradd, chfn e passwd interativamente. Veja também FS#32893.

Base de dados de usuários

As informações do usuário local são armazenadas no arquivo de texto simples /etc/passwd: cada uma das suas linhas representa uma conta de usuário e tem sete campos delimitados por caracteres de dois pontos.

conta:senha:UID:GID:GECOS:diretório:shell

Sendo que:

  • conta é o nome de usuário. Esse campo não pode estar vazio. Padrão regras de nomeação *NIX aplicam-se.
  • senha é a senha do usuário.
    Atenção: O arquivo passwd é legível por todos, então armazenar senhas (em hash ou de outra forma) neste arquivo é inseguro. Em vez disso, o Arch Linux usa senhas em shadow: o campo senha conterá um caractere reservado (x) indicando que a senha em hash está salva no arquivo de acesso restrito /etc/shadow. Por esse motivo, é recomendado sempre alterar senhas usando o comando passwd.
  • UID é a identificação numérica de usuário. No Arch, o nome do primeiro login (após o root) para o chamado usuário normal, em oposição a serviços, tem UID 1000, por padrão; entradas subsequentes de UID para usuários devem ser maiores que 1000.
  • GID é a identificação numérica de grupo primário para o usuário. Valores numéricos para GIDs são listados em /etc/group.
  • GECOS é um campo opcional com propósitos informacionais; geralmente, ele contém o nome completo do usuário, mas também pode ser usado por serviços, como o finger, e gerenciado com o comando chfn. Esse campo é opcional e pode ser deixado em branco.
  • diretório é usado pelo comando de login para definir a variável de ambiente $HOME. Vários serviços com seus próprios usuários usam /, mas os usuários normais costumam definir uma pasta em /home.
  • shell é o caminho para o shell de comandos padrão do usuário. Esse campo é opcional e tem como padrão /bin/bash.

Exemplo:

joao:x:1001:1003:João da Silva,algum comentário aqui,,:/home/joao:/bin/bash

Expandindo, isso significa: usuário joao, cuja senha está em /etc/shadow, cujo UID é 1001 e cujo grupo primário é 1003. João da Silva é o nome completo dele e existe um comentário associado a sua conta; Seu diretório inicial é /home/joao e ele está usando Bash.

O comando pwck pode ser usado para verificar a integridade da base de dados de usuário. Ele pode ordenar a lista de usuários por GID ao mesmo tempo, o que pode ser útil para comparação:

# pwck -s
Atenção: Os padrões do Arch Linux dos arquivos são criados como arquivos .pacnew pelas novas versões do pacote filesystem. A menos que o pacman emita mensagens relacionadas para ação, esses arquivos .pacnew podem, e devem, ser desconsiderados/removidos. Novos usuários e grupos padrão obrigatórios são adicionados ou adicionados novamente conforme necessário por systemd-sysusers(8) ou o script de instalação de pacote.

Gerenciamento de grupo

/etc/group é o arquivo que define os grupos no sistema (veja group(5) para detalhes). Há também seu companheiro gshadow que raramente é usado. Seus detalhes estão em gshadow(5).

Mostre associação a grupos com o comando groups:

$ groups usuário

Se usuário for omitido, os nomes de grupos do usuário atual são exibidos.

O comando id fornece detalhes adicionais, tal como o UID do usuário e GIDs associados:

$ id usuário

Para listar todos os grupos no sistema:

$ cat /etc/group

Crie novos grupos com o comando groupadd:

# groupadd grupo

Adicione usuários a um grupo com o comando gpasswd (veja FS#58262 a cerca de erros; alternativamente, o comando usermod pode ser usado):

# gpasswd -a usuário grupo

Modifique um grupo existente com groupmod; por exemplo, para renomear o grupo antigo_grupo para novo_grupo enquanto preserva o gid (todos os arquivos previamente pertencentes ao antigo_grupo serão do novo_grupo):

# groupmod -n novo_grupo antigo_grupo
Nota: Isso vai alterar um nome de grupo, mas não o GID numérico do grupo.

Para excluir grupos existentes:

# groupdel grupo

Para remover usuários de um grupo antigo:

# gpasswd -d usuário grupo
Nota: Se o usuário estiver atualmente autenticado, ele deve encerrar a sessão e entrar novamente para que a alteração tenha efeito.

O comando grpck pode ser usado para verificar a integridade dos arquivos de grupo do sistema.

Atenção: Os padrões do Arch Linux dos arquivos são criados como arquivos .pacnew pelas novas versões do pacote filesystem. A menos que o Pacman envie mensagens relacionadas à ação, esses arquivos .pacnew podem e devem ser desconsiderados/removidos. Novos usuários e grupos padrão necessários são adicionados ou adicionados novamente conforme necessário por systemd-sysusers(8) ou o script de instalação de pacote.

Atualizações ao pacote filesystem criam arquivos .pacnew. Ao contrário dos arquivos .pacnew para o #Gerenciamento de usuário, essas alterações podem ser ignoradas/removidas, porque o script de instalação adiciona quaisquer novos grupos exigidos.

Lista de grupos

Essa seção explica o propósito dos grupos essenciais do pacote core/filesystem. Há muitos outros grupos, que serão criados com o GID correto quando o pacote relevante for instalado. Veja a página principal do software para detalhe.

Nota: Uma remoção posterior de um pacote não remove o usuário/grupo (UID/GID) criado automaticamente. Isto é intencional porque qualquer arquivo criado durante a sua utilização seria deixado órfão como um potencial risco de segurança.

Grupos de usuário

Usuários não root de estação de trabalho ou desktop frequentemente precisam ser adicionados a alguns dos grupos a seguir para permitir acesso a periféricos de hardware e facilitar administração de sistema:

Grupo Arquivos afetados Propósito
adm Grupo administrativo, geralmente usado para fornecer acesso de leitura a logs protegidos. Tem acesso total de leitura aos arquivos de journal.
ftp /srv/ftp/ Acesso a arquivos servidos por servidores FTP.
games /var/games Acesso a alguns softwares de jogos.
http /srv/http/ Acesso a arquivos servidos por servidores HTTP.
log Acesso a arquivos de registros de log em /var/log/ criados pelo syslog-ng.
rfkill /dev/rfkill Direito para controlar estado de energia de dispositivos sem fio (usado pelo rfkill).
sys Direito para administrar impressoras no CUPS.
systemd-journal /var/log/journal/* Pode ser usado para fornecer acesso somente leitura aos logs do systemd, como uma alternativa ao adm e ao wheel [1]. Do contrário, apenas mensagens geradas pelo usuário são exibidas.
uucp /dev/ttyS[0-9]+, /dev/tts/[0-9]+, /dev/ttyUSB[0-9]+, /dev/ttyACM[0-9]+, /dev/rfcomm[0-9]+ Portas seriais RS-232 e dispositivos conectados a elas.
wheel Grupo administrativo, comumente usado a dar privilégios para realizar ações administrativas. Também tem acesso total de leitura aos arquivos de journal. Pode também ser usado para dar acesso aos utilitários sudo e su (nenhum deles usa-o por padrão, sendo configurável em /etc/pam.d/su e /etc/pam.d/su-l).

Grupos de sistema

Os seguintes grupos são usados para propósitos de sistema, uma atriubuição para usuários é necessária apenas para propósitos dedicados:

Grupo Arquivos afetados Propósito
dbus Usado internamente pelo dbus
kmem /dev/port, /dev/mem, /dev/kmem
locate /usr/bin/locate, /var/lib/locate, /var/lib/mlocate, /var/lib/slocate Veja Locate.
lp /dev/lp[0-9]*, /dev/parport[0-9]* Acesso a dispositivos de porta paralela (impressoras e outros).
mail /usr/bin/mail
nobody Grupo sem privilégios.
proc /proc/pid/ Um grupo autorizado a aprender informação de processo que, do contrário, seria proibido pela opção de montagem hidepid= do sistema de arquivos proc. O grupo deve ser definido explicitamente com a opção de montagem gid=.
root /* Administração e controle total do sistema (root, admin).
smmsp Grupo do sendmail.
tty /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx
utmp /run/utmp, /var/log/btmp, /var/log/wtmp

Grupos pré-systemd

Antes do Arch migrar para o systemd, os usuários tinham que ser adicionados manualmente a esses grupos para poder acessar os dispositivos correspondentes. Essa forma se tornou obsoleta em favor do udev marcar os dispositivos com uma etiqueta uaccess e logind atribuindo as permissões aos usuários de forma dinâmica via ACLs de acordo com qual sessão está atualmente ativa. Observe que a sessão não deve ser quebrada para que isso funcione (consulte Solução de problemas gerais#Permissões de sessão).

Existem algumas exceções notáveis que exigem a adição de um usuário a alguns desses grupos: por exemplo, se você quiser permitir que os usuários acessem o dispositivo mesmo quando não estiverem logados. No entanto, observe que adicionar usuários aos grupos pode até fazer alguma funcionalidade quebrar (por exemplo, o grupo audio irá quebrar a troca rápida de usuários e permite que os aplicativos bloqueiem o mixer de software).

Grupo Arquivos afetados Propósito
audio /dev/audio, /dev/snd/*, /dev/rtc0 Acesso direto ao hardware de som, para todas as sessões. Ainda é necessário fazer ALSA (Português) e OSS funcionar nas sessões remotas, veja ALSA#User privileges. Também é usado no JACK para fornecer aos usuários permissões de processamento em tempo real.
disk /dev/sd[a-zA-Z]*[1-9]* Acesso para bloquear dispositivos não afetados por outros grupos, como optical, floppy e storage.
floppy /dev/fd[0-9]* Acesso a unidades de disquete.
input /dev/input/event[0-9]*, /dev/input/mouse[0-9]* Acesso a dispositivos de entrada. Introduzido no systemd 215 [2].
kvm /dev/kvm Aceso a máquinas virtuais usando KVM.
optical /dev/sr[0-9], /dev/sg[0-9] Acesso a dispositivos óticos, como unidades de CD e DVD.
scanner /var/lock/sane Acesso a hardware de scanner.
storage /dev/st[0-9]*[lma]*, /dev/nst[0-9]*[lma]* Usado para ganhar acesso a unidades removíveis, como as unidades de HD externo USB, pendrives, MP3 players; permite ao usuário montar dispositivos de armazenamento.[3] Agora, apenas para acesso direto às fitas, se nenhuma regra personalizada do udev estiver envolvida.[4][5][6][7]
video /dev/fb/0, /dev/misc/agpgart Acesso a dispositivos de captura de vídeo, aceleração hardware 2D/3D, framebuffer (X pode ser usado sem pertencer a este grupo).

Grupos sem uso

Os seguintes grupos estão atualmente sem uso para qualquer propósito:

Grupo Arquivos afetados Propósito
bin nenhum Histórico
daemon
lock Usado para acesso a arquivo de trava. Necessário para, por exemplo, gnokiiAUR.
mem
network Sem uso por padrão. Pode ser usado, por exemplo, para conceder acesso ao NetworkManager (veja NetworkManager (Português)#Configurar as permissões de PolicyKit).
power
uuidd
users O grupo primário para usuários quando os grupos privados de usuários não são usados (geralmente não recomendado), por exemplo, ao criar usuários com USERGROUPS_ENAB no em /etc/login.defs ou a opção -N/--no-user-group de useradd.

Outras ferramentas relacionadas para esses banco de dados

getent(1) pode ser usado para ler um registro em particular.

% getent group tty

Conforme avisado em #Base de dados de usuários, o uso de utilitários específicos, como passwd e chfn, é uma maneira melhor de alterar os bancos de dados. Mesmo assim, há momentos em que editá-los diretamente é cuidada. Para aqueles momentos, vipw, vigr são fornecidos. É altamente recomendável usar esses editores sob medida usando um editor de texto geral, pois eles bloqueiam os bancos de dados em relação à edição simultânea. Eles também ajudam a evitar entradas inválidas e/ou erros de sintaxe. Observe que o Arch Linux prefere o uso de ferramentas específicas, como chage, para modificar o banco de dados shadow usando vipw -s e vigr -s do util-linux. Veja também FS#31414.