Grupos de sistema
Esta página lista os diferentes grupos de sistema usados em um sistema Debian. Grupos de sistemas são grupos de propósito especial usados para operação do sistema como backup, manutenção ou concessão de acesso ao hardware. Eles são o gid baixo do banco de dados do grupo de sistemas.
Para exibir os grupos que o(a) usuário(a) final é um(a) participante:
$ groups
Para exibir os grupos para outro(a) usuário(a):
$ groups $nome-de-usuário
Para adicionar um(a) usuário(a) a um grupo, como root:
# adduser $nome-de-usuário $nome-do-grupo
como um(a) usuário(a) com permissões sudo:
$ sudo adduser $nome-de-usuário $nome-do-grupo
e usando o comando ?usermod:
$ sudo usermod -a -G $nome-do-grupo $nome-de-usuário
A associação ao grupo de um(a) usuário(a) só entra em vigor no próximo login.
Contents
FUSE
Descrição
O Sistema de Arquivos no Espaço de Usuário(a) (Filesystem no Userspace - FUSE) é um sistema de arquivos que permite que usuários(as) não privilegiados(as) criem seus próprios sistemas de arquivos sem editar o código do núcleo (kernel). Isso é conseguido executando o código do sistema de arquivos no espaço de usuário(a) enquanto o módulo FUSE fornece uma "ponte" para as interfaces reais do núcleo.
O FUSE pode ser usado para escrever sistemas de arquivos virtuais. Por exemplo, um sistema de arquivos baseado em wiki.
Os/As usuários(as) podem usar o FUSE se puderem ler e gravar em /dev/fuse. Começando com Debian 8 (Jessie), /dev/fuse é totalmente liberado para escrita por padrão.
Permissões
Debian 7 (wheezy) e mais antigos:
/dev/fuse crw-rw---- root fuse
Debian 8 (jessie) e mais recentes:
/dev/fuse crw-rw-rw- root root
Implicações de segurança
O FUSE pode levar a ataques de negação de serviço ("Denial of Service" - DoS) local; por exemplo, pela criação de um arquivo como /dev/null com conteúdo aleatório. Além disso, eles são um problema já antigo no código FUSE do núcleo que leva a um ataque de negação de serviço.
O sistema de arquivos criado pelo FUSE não é visível por outros(as) usuários(as), incluindo root, a fim de evitar ataques de negação de serviço. Por exemplo, um(a) usuário(a) que cria um sistema de arquivos de profundidade infinita para enganar o updatedb.
Mais informações
rdma
Descrição
Informações do Roland Dreier.
RDMA significa "remote direct memory access" - acesso de memória direta remota", e é um tipo de rede de alto desempenho implementada por ?InfiniBand e alguns adaptadores de 10 GbE. Parte do RDMA ignora o núclero (kernel bypass), que permite que o espaço de usuário(a) processe acesso direto aos registradores de hardware para reduzir a latência e a sobrecarga da CPU na execução de operações do RDMA. wikipedia tem uma visão geral mais completa.
Permissões
/dev/infiniband/rdma_cm crw-rw---- root rdma
Implicações de segurança
Usuários(as) que estejam executando trabalhos de alto desempenho precisarão de acesso a esses nós de dispositivos; faz sentido para mim que os(as) administradores(as) não gostariam necessariamente de permitir que todos(as) os(as) usuários(as) tenham acesso direto para fazer coisas que possam interferir em outros trabalhos em uma rede de alto desempenho. Mesmo que, em teoria, seja seguro para qualquer pessoa usar rdma devido à proteção do kernel.
Além disso, o RDMA geralmente requer aumentar a quantidade de memória bloqueada permitida em /etc/security/limits.conf, e fazer isso por grupo "rdma" também é conveniente.
Mais informações
RDMA na Wikipedia Resposta do Roland Dreier no unbuntu
Outros grupos de sistema
Grupos sem usuários(as) associados(as)
Os seguintes grupos concedem privilégios aos(às) seus(suas) participantes:
lp (LP): Participantes deste grupo podem habilitar e usar impressoras (o usuário lp não é mais usado).
lpadmin (LPADMIN): Permite aos(às) participantes gerenciar impressoras e trabalhos pendentes enviados por outros(as) usuários(as).
scanner : Participantes deste grupo podem ativar e usar scanners
adm: O grupo adm é usado para tarefas de monitoramento do sistema. Participantes deste grupo podem ler muitos arquivos de log em /var/log, e podem usar xconsole. Historicamente, /var/log era /usr/adm (e mais tarde /var/adm), por isso o nome do grupo.
systemd-journal: Desde o Debian 8 (Jessie), os(as) participantes deste grupo podem usar o comando journalctl e ler arquivos de log do systemd (em /var/log/journal).
plugdev: Permite que participantes montem (apenas com as opções nodev e nosuid, por razões de segurança) e desmontem dispositivos removíveis usando pmount.
netdev: Participantes deste grupo podem gerenciar interfaces de rede através do gerenciador de rede e wicd.
cdrom: Este grupo pode ser usado localmente para dar acesso a um conjunto de usuários(as) a uma unidade de CDROM e outras unidades ópticas.
floppy: Este grupo pode ser usado localmente para dar a um conjunto de usuários(as) acesso a uma unidade de disquete e outras unidades removíveis (não ópticas, como unidades flash USB). Começando com o Debian 8 (Jessie) não é mais usado para memórias USB e flash.
tape: Este grupo pode ser usado localmente para dar acesso a um conjunto de usuários(as) a uma unidade de fita.
audio: Este grupo pode ser usado localmente para dar acesso a um conjunto de usuários(as) a um dispositivo de áudio (a placa de som ou um microfone).
video: Este grupo pode ser usado localmente para dar acesso a um conjunto de usuários(as) a um dispositivo de vídeo (como uma webcam).
render: Este grupo pode ser usado localmente para dar acesso a um conjunto de usuários(as) a um dispositivo de renderização (como o framebuffer ou placa de vídeo).
sudo: Participantes deste grupo podem executar qualquer comando com sudo ou pkexec (veja a configuração padrão em /etc/sudoers).
tty: Os dispositivos TTY são de propriedade deste grupo. Isso é usado por write e wall para permitir que escrevam em TTYs de outras pessoas, mas não se destina a ser usado diretamente.
staff: Permite aos(às) usuários(as) adicionar modificações locais ao sistema (/usr/local) sem precisar de privilégios de root (observe que os executáveis em /usr/local/bin estão na variável PATH de qualquer usuário(a) e podem substituir os executáveis em /bin e /usr/bin com o mesmo nome). Compare com o grupo "adm", que está mais relacionado ao monitoramento/segurança.
shadow: /etc/shadow é legível por este grupo. Alguns programas que precisam ser capazes de acessar o arquivo são SETGID shadow.
utmp: Este grupo pode gravar em /var/run/utmp e arquivos semelhantes. Programas que precisam ser capazes de escrever para ele são SETGID utmp.
disk: Acesso bruto a discos. Principalmente equivalente ao acesso root.
kmem: /dev/mem e /dev/port são legíveis por este grupo. Esta é principalmente uma relíquia do BSD, mas todos os programas que precisam de acesso direto à memória do sistema podem, portanto, ser definidos com SETGID kmem. /dev/kmem, que deu o nome a este grupo, também é legível por este grupo, mas atualmente, por padrão, está desativado por razões de segurança.
dialout: Acesso total e direto a portas seriais. Participantes deste grupo podem reconfigurar o modem, discar em qualquer lugar, etc.
dip: O nome do grupo significa "Dial-up IP" (discagem IP), e a associação ao dip permite que você use ferramentas como ppp, dip, wvdial, etc. para discar uma conexão. Usuários(as) deste grupo não podem configurar o modem, mas podem executar os programas que fazem uso dele.
fax: Permite aos(às) participantes usar o software de fax para enviar/receber faxes.
voice: Voicemail, útil para sistemas que utilizam modems como máquinas de atendimento.
users: Enquanto os sistemas Debian usam o sistema de grupo de usuários(as) privados por padrão (cada usuário(a) tem seu próprio grupo), alguns preferem usar um sistema de grupo mais tradicional, no qual cada usuário(a) é participante desse grupo.
wheel: Este grupo pode ser criado para alterar a funcionalidade do módulo pam_wheel em /etc/pam.d/su para restringir a execução de su. Se este grupo não existe, apenas participantes de root (geralmente somente o root) são afetados(as). Por padrão, este grupo não existe e todas as configurações com pam_wheel são comentadas em /etc/pam.d/su. Veja a página sobre o módulo wheel_pam para mais informações.
src: Este grupo foi usado para gerenciar o código-fonte do sistema, incluindo arquivos em /usr/src. Não é mais usado.
bluetooth: Usuários(as) deste grupo podem conversar com o serviço bluetooth via dbus, conforme definido em /etc/dbus-1/system.d/bluetooth.conf.
libvirt: Usuários(as) deste grupo podem conversar com o serviço libvirt via dbus, conforme definido em /etc/libvirt/libvirtd.conf.
kvm: Usuários(as) deste grupo podem utilizar a aceleração KVM de máquinas virtuais.
Implicações de segurança
O grupo disk pode ser muito perigoso, uma vez que os discos rígidos em /dev/sd* e /dev/hd* podem ser lidos e escritos ignorando qualquer sistema de arquivos e qualquer partição, permitindo que um(a) usuário(a) normal divulgue, altere e destrua as partições e os dados de tais unidades sem privilégios de root. Os(As) usuários(as) nunca devem pertencer a esse grupo.
Para gerenciar unidades removíveis sem privilégios de root, você tem que usar os grupos cdrom para unidades ópticas. Drives ópticos geralmente podem ser montados de acordo com as regras em /etc/fstab, mas para outros drives removíveis o grupo plugdev pode ser mais prático. Começando com o Debian 8 (Jessie), você precisa de privilégios de root para formatar memórias USB e flash, porque seus dispositivos em /dev/ não pertencem mais ao grupo floppy.
O grupo kmem é capaz de ler o conteúdo da memória do sistema, potencialmente divulgando dados pertencentes a outros processos.
Usuários(as) do grupo shadow podem ler o conteúdo do /etc/shadow e /etc/gshadow, contendo os hashes das senhas de outros(as) usuários(as) e grupos.
Somente administradores(as) devem pertencer ao grupo sudo, porque podem executar qualquer comando com sudo/pkexec e com sua própria senha. As regras personalizadas podem ser escritas em /etc/sudoers (através de visudo) para qualquer grupo e qualquer usuário(a) a fim de permitir que apenas um conjunto mais restrito de comandos seja executado com privilégios de root. E o polkit pode ser personalizado também.
Usuários(as) do grupo staff podem instalar executáveis em /usr/local/bin e /usr/local/sbin sem privilégios de root. Por padrão /usr/local/bin está na variável PATH de cada usuário(a), de modo que os binários em /usr/local/bin podem ser executados sem ter que escrever seus caminhos. Além disso, se um executável for criado em /usr/local/bin com o mesmo nome de um executável em /usr/bin (ou /bin), o primeiro será executado toda vez que seu caminho não for especificado.
Grupos com usuários(as) associados(as)
Os seguintes grupos não se destinam a ser utilizados diretamente por outros(as) usuários(as):
root: Root é (normalmente) o(a) superusuário(a).
daemon: Alguns daemons não privilegiados que precisam gravar em arquivos em disco funcionam como daemon.daemon (por exemplo, portmap, atd, provavelmente outros). Daemons que não precisam possuir arquivos podem ser executados como nobogy.nogroup em vez disso, e daemons mais complexos ou conscientes de segurança são executados como usuários(as) dedicados(as). O usuário daemon também é útil para daemons instalados localmente.
games: Muitos jogos têm SETGID definido para games, para que possam escrever seus arquivos de pontuação. Isso é explicado na política.
man: O programa man (às vezes) funciona como usuário man para que possa escrever páginas cat para /var/cache/man.
mail: Caixas de correio em /var/mail são de propriedade do grupo mail, como explicado na política. Usuários(as) e grupo são usados para outros fins por vários MTAs também.
news: Vários servidores de notícias e outros programas associados (como suck) usam usuários(as) e grupos news de várias maneiras. Os arquivos no spool de notícias são muitas vezes de propriedade usuários(as) e grupo news. Programas como inews que podem ser usados para postar notícias são tipicamente definidas com SETGID news.
proxy: Como daemon, usuários(as) e grupo são usados por alguns daemons (especificamente, daemons de proxy) que não têm id de usuário(a) dedicado(a) e que precisam de arquivos próprios. Por exemplo, o grupo proxy é usado pelo pdnsd e o squid é executado como usuário proxy.
postgres: Os bancos de dados Postgresql são de propriedade deste usuário e grupo. Todos os arquivos em /var/lib/postgresql são de propriedade deste usuário para impor a segurança adequada.
www-data: Alguns servidores web são executados como www-data. O conteúdo da Web não deve ser de propriedade deste usuário, ou um servidor web comprometido seria capaz de reescrever um site. Os dados escritos por servidores web, incluindo arquivos de log, serão de propriedade do www-data.
backup: Para que responsabilidades de backup/restauração podem ser delegadas localmente a alguém sem permissões completas de root.
list: Arquivos e dados de listas de discussão são de propriedade deste usuário e grupo. Alguns programas de lista de discussão também podem ser executados como esse usuário.
irc: Usado por daemons irc. Um usuário alocado estaticamente é necessário apenas por causa de um bug em ircd, pelo qual SETUID() é ele próprio definido para um determinado UID na inicialização.
sync: O shell de sincronização de usuário(a) é /bin/sync. Assim, se sua senha estiver definida como algo fácil de adivinhar (como ""), qualquer pessoa pode sincronizar o sistema no console, mesmo que não tenha uma conta.
uucp: O usuário e grupo uucp é usado pelo subsistema UUCP. Possui spool e arquivos de configuração. Usuários(as) do grupo uucp podem executar uucico.
operator: O operador era (historicamente) a única conta de "usuário(a)" que podia fazer login remotamente.
bin: mantidas por razões históricas.
sys: o mesmo que bin.
nogroup (usuário: nobody): Daemons que não precisam possuir nenhum arquivo são executados como usuário nobody e grupo nogroup. Assim, nenhum arquivo em um sistema deve ser de propriedade deste usuário ou grupo.
Mais informações
Manual de segurança do Debian - FAQ n. 12.1.12.1
Page Copyright |
|
License |
GPLv2 or later at your option |
Authors |
Bastien Roucaries , Mario Bar |
see DebianWiki/LicencingTerms for info about wiki content copyright.
