Quais são os efeitos colaterais de ter vários usuários UNIX compartilhando um UID?

6

O pacote sys-apps / shadow no meu sistema GNU / Linux vem com um comando useradd que suporta uma opção que eu ignorei anteriormente: --non-unique . Por uma questão de conveniência, quando shellig home da universidade, eu criei um apelido para o meu nome de usuário original (nome casual em casa) assim:

useradd --non-unique -u 1001 \
     --no-create-home --home-dir /home/casualname \
     -g 1001 -G 'id casualname -G | tr ' ' ,' universityUsername

Isso permite que eu faça o login no campus com o loginUsernameUsername sem criar um alias ~ / .ssh / config ou especificando a opção -l para ssh . Após o login, whoami informa que sou um nome casual. Isso se deve ao fato de que o nome casual aparece mais próximo do topo do arquivo / etc / passwd.

Gostaria de saber o quanto esses aliases são amplamente suportados e se há alguma desvantagem em usá-los. E também, existe uma maneira de selecionar o alias de usuário preferido como o agindo (em que $ USER está definido) em um sistema onde o usuário não pode reordenar entradas em / etc / passwd?

    
por Ярослав Рахматуллин 15.04.2014 / 23:53

1 resposta

10

Você não pode ter vários usuários com o mesmo UID. Se eles tiverem o mesmo UID, eles são o mesmo usuário.

O que você tem é várias entradas no banco de dados do usuário para o mesmo usuário. Isso é possível em todas as variantes unix que vi. O nome do usuário determina qual entrada é usada e, portanto, qual senha, diretório inicial e shell se aplicam no momento do login. A primeira entrada determina quais pesquisas baseadas em id para o banco de dados do usuário retornarão. Alguns aplicativos procuram o banco de dados do usuário pelo nome (usando talvez $USER ), outros pelo UID; se eles usarem o UID, eles receberão a primeira entrada e você não poderá fazer nada a respeito.

Esta é uma configuração fofa, mas é uma dessas coisas fofas, mas quase inúteis. É incomum: se você tem algum administrador, eles não vão agradecer por isso; muitos aplicativos não se preocupam em cobrir este caso e podem se comportar de maneira abaixo do ideal (por exemplo, dependa de seu $LOGNAME para alguma funcionalidade, resultando na utilização de dados diferentes dependendo de qual nome de usuário você fez login como). Também é propenso a erros: você precisa usar o acesso root para criar a segunda entrada, você precisa se lembrar de editar ambas as entradas em passwd ou shadow (por exemplo, para alterar sua senha, que exigirá acesso root ao contrário de normal co_de % de invocação). Você deve fazer isso apenas se tiver um bom motivo.

Se tudo o que você queria era ter o mesmo nome de usuário para SSH, o modo como todos os outros fazem isso é com aliases em passwd . É para isso que eles são. É mais simples de configurar, não requer mais privilégios e não configura uma configuração incomum e potencialmente confusa.

Um uso útil de várias entradas para o mesmo usuário é um usuário de resgate quando as coisas dão errado. Por exemplo, uma conta .ssh/config (nome tradicional) cujo shell é um binário ligado estaticamente, que você usa apenas para o reparo do sistema.

    
por 16.04.2014 / 03:13