Eu trabalhei em organizações nas quais, em vez de criar um novo usuário do Ubuntu por pessoa que deseja fazer login em uma máquina, os administradores de sistemas simplesmente adicionam a chave ssh de cada usuário .ssh/authorized_keys
e todos os usuários ssh
na máquina como ( por exemplo ) ubuntu@host
ou ec2-user@host
. (Aliás, eu também vi isso praticado em Mac minis compartilhados em um laboratório.) Essa prática é aceita ou é um antipadrão?
Os hosts em questão são usados principalmente para teste, mas também são executadas ações que normalmente exigem configuração por usuário e são rastreadas como sendo executadas por um usuário específico, como criar e enviar confirmações git, que atualmente são feitas usando um git genérico do utilizador.
fonte
Respostas:
Sim, é um mau hábito. Ele se baseia na suposição básica de que ninguém é malicioso (ou será) por perto e que ninguém comete erros. Ter uma conta compartilhada torna trivial que as coisas aconteçam sem responsabilidade e sem limite - um usuário que quebra algo quebra isso para todos.
Se o motivo desse esquema de compartilhamento de uid é simplesmente reduzir o custo administrativo da criação de novas contas e configuração de compartilhamento, talvez os administradores devam investir algum tempo em um sistema de automação como Ansible , Chef , Puppet ou Salt que cria coisas como criar usuários contas em várias máquinas extremamente simples.
fonte
Para começar, isso não me choca, e eu trabalho em um ambiente extremamente seguro. Todo mundo tem seu próprio usuário, máquina e chave ssh, e, para trabalhar em um servidor, efetuamos o ssh, como root ou como outro usuário, através de um relé de registro, se necessário. Tudo o que fazemos é registrado como tendo sido feito pelo proprietário da chave ssh, portanto, a prestação de contas está OK.
Qual seria a alternativa? Muitas coisas devem ser feitas como um determinado usuário, para não mencionar o root. Sudo? Não há problema em certas tarefas muito restritas, mas não na administração da máquina.
No entanto, não tenho certeza do seu último parágrafo, você quer dizer que alguém poderia enviar um git a um usuário genérico por enviar um git? Isso quebraria a responsabilidade, e quebrar a responsabilidade é ruim. Fazemos o git a partir da máquina em que estamos logados e autenticamos o git com nossa chave ssh ...
Autenticação, autorização e contabilidade (AAA) é a expressão clássica: você está autenticado com sua chave ssh, está autorizado a fazer qualquer coisa que o usuário genérico possa fazer porque sua chave está nas chaves_comentárias e você precisa de contabilidade para que você faça o que faz pode ser revisado após o fato.
fonte
sudo
aceitável para administração geral de uma máquina?Depende claramente do caso de uso do sistema. Se é um sistema para testes de tempos em tempos, está bem para mim. Nós também temos esses sistemas. Se a empresa não possui nenhum tipo de gerenciamento de identidade (LDAP, IPA), criar um novo usuário sem nenhum controle remoto no sistema aleatório é um fardo.
Mas para o trabalho diário, quando alguém cometer erros, torna toda a empresa incapaz de operar, não é uma boa idéia.
fonte
Todas essas respostas abordam a preocupação de prestação de contas, que é um problema importante e real em si, mas o uso de uma conta compartilhada também permite ataques não tão sutis a outros usuários:
Considere um invasor criando um
ssh
script mal-intencionado que registra a senha digitada e a colocaPATH
para o usuário compartilhado (o que é feito facilmente). Agora, a próxima pessoa que fizer logon na máquina com o usuário compartilhado e decidir irssh
para outro lugar (desta vez com sua conta pessoal, não compartilhada) pode ter uma surpresa desagradável.Basicamente, usar uma conta compartilhada no computador é como beber no banho de pés na piscina pública.
fonte
Em geral, compartilhar uma conta é uma má ideia pelos seguintes motivos:
E com certeza há ainda mais desvantagens ... Mas não quero aprofundar mais.
O ponto é que talvez você esteja enfrentando a necessidade de compartilhar uma conta para gerenciar um serviço que é executado sob uma determinada conta de usuário na qual todos os administradores devem poder acessar.
Em tal configuração, você tem a possibilidade de compartilhar esta conta para fazer login (nas opções acima, eu preferiria não fazer isso) ou você faz o login individualmente e alterna o usuário para a conta compartilhada (eu sugeriria isso).
As ferramentas de auditoria ainda permitem rastrear quem executou o quê, mas ainda compartilha a mesma conta.
fonte