Linux: Uso atual correto / recomendado de grupos de jogos?

5

O que é atualmente considerado o uso correto / recomendado / de práticas recomendadas do grupo de jogos ...

  • Como um "grupo de dispositivos" para portas de jogos e joysticks, não associado ao usuário do jogo (exceto por ser um dos muitos grupos aos quais o usuário do jogo provavelmente teria que pertencer) e com um (muito) GID diferente do UID do usuário do jogo ...

  • Ou como um "par" em conjunto com o usuário do jogo - preferencialmente com UID e GID correspondentes - em que o grupo lista usuários com permissão para executar programas pertencentes ao usuário do jogo. Isso para limitar o que o usuário pode se divertir.

Existem alternativas? Outros nomes que você viu ou acha que funcionariam para um grupo de portas de jogos e dispositivos de joystick; para um grupo de usuários autorizados a jogar; e / ou usuário para rodar jogos como? (por exemplo, 'rec' para recreação) Você acha que isso poderia ser uma boa ideia ou isso quebra muito a tradição?

Estou brincando com a idéia de construir / personalizar minha própria distro, então não estou sobrecarregado com o modo como outras distros fazem isso ou o que é mais comum ... Eu estou mais perguntando o que você viu, o que você já tentou e o que você acha que funcionaria melhor.

Também estou interessado em tais experiências de usuários de outros Unices, afinal a maioria deles não decompõe seus dispositivos tanto quanto o Linux ... Eles ainda têm um grupo de jogos? Como e para que é usado?

    
por Baard Kopperud 20.12.2012 / 22:13

1 resposta

6

Antes de decidir para qual usuário e grupo o games deve ser usado, você deve descobrir por que deseja ter usuários distintos. Quais permissões especiais estão associadas aos jogos?

  • Jogos em execução. Normalmente não há necessidade de privilégios para executar um jogo, além de ter uma conta de shell. Se você restringir os usuários de executar os jogos que você instalou, eles poderão instalá-los de qualquer maneira.
  • Acessando hardware de jogos. Os dispositivos de hardware raramente são específicos do jogo: você pode conectar um teclado MIDI em uma porta de jogos, usar um joystick para controlar um objeto físico,…
  • Participando de interações de vários usuários - armazenando principalmente altas pontuações. Isso requer que o jogo seja executado com privilégios elevados se você não quiser que os usuários possam editar os arquivos de alta pontuação com qualquer editor ou utilitário.
  • Instalando e mantendo programas de jogos.

É raro ter controle de acesso relacionado à execução de jogos e ao acesso a hardware de jogos (pode haver controle de acesso a periféricos de jogos, mas não é específico para o uso deles em jogos). É comum ter controle de acesso relacionado a arquivos de alta pontuação e instalação de programas de jogo.

Não é uma boa idéia criar um programa de jogo. A maioria dos jogos não é projetada com a segurança em mente, e muitas vezes há uma maneira para o usuário que executa o jogo modificar arquivos arbitrários ou mesmo executar comandos com as permissões elevadas do jogo. Se o executável do jogo for setuid, isso permite ao usuário que está executando o jogo modificar o executável do jogo e transformá-lo em um trojan que pode infectar qualquer outro usuário que execute o jogo.

Assim, o usuário que possui os executáveis do jogo não deve ser usado para controlar quem pode executá-los, usar periféricos ou escrever arquivos de alta pontuação. Pode ser usado para controlar quem pode instalar jogos. Se você tiver um usuário games , seu uso seria permitir que os administradores do jogo façam sudo ao usuário game-administrators (um nome mais explícito) e manter um diretório /usr/games ou /usr/local/games de propriedade de game-administrators . Esse administrador do jogo pode obter privilégios de qualquer usuário que jogue esses jogos, portanto, os privilégios de administrador do jogo devem ser concedidos apenas a pessoas de confiança.

Para controlar o acesso a arquivos de pontuação alta, não há problema em torná-los pertencentes a um grupo, que pode ser (e geralmente é chamado de games ). Os jogos com arquivos compartilhados de alta pontuação são então setgid games . Não use o grupo games para algo que não seja a propriedade de pontuações altas e arquivos de interação semelhantes e de executáveis do jogo. Observe, em particular, que os executáveis do jogo não devem ser graváveis pelo grupo games : eles devem ter permissões rwxr-sr-x (2755). Um usuário que consiga explorar uma vulnerabilidade em um jogo setgid poderá modificar arquivos de alta pontuação, mas não causará outros danos.

Se você quiser restringir o acesso a jogos para determinados usuários, crie um grupo game-players e torne o diretório contendo os jogos acessível somente àquele grupo, ou seja, /usr/local/games (ou onde quer que os jogos estejam) de game-administrators:game-players e modo rwxr-x--- (750).

    
por 21.12.2012 / 01:29