Eu tenho um monte de dispositivos Raspberry PI 3 rodando Linux, que são compartilhados entre vários engenheiros. Por uma questão de simplicidade, cada caixa do Linux tem o mesmo nome de usuário / senha padrão (ou seja, todos fazem login como root) para testar o software que desenvolvemos. Este é um requisito hard (ou seja, não é possível alterar isso).
Ocasionalmente, dois usuários (normalmente um trabalhando no escritório e outro remotamente via VPN) efetuam login no mesmo dispositivo ao mesmo tempo, e os dois usuários podem causar problemas um ao outro se ambos estiverem executando um software que tenta obter acesso exclusivo ao hardware conectado à caixa. Além disso, às vezes um usuário reinicializa o sistema, o que realmente incomoda o outro desenvolvedor. Embora tentemos implementar agendamentos para acesso exclusivo, eles geralmente são ignorados quando alguém "precisa apenas fazer uma verificação rápida".
Existe uma maneira, sob demanda (ou seja, eu nem sempre quero que esse "recurso" seja ativado), para um usuário reservar o uso de uma conta (ou seja, raiz) para interação / logons SSH não interativos, de modo que somente o endereço IP (ou seja, SSH_CLIENT
) associado a esse indivíduo possa ser usado? Por exemplo, digamos que Bob e Alice desejam fazer login no host darkstar
com username root
. Bob faz login primeiro e seu endereço IP é 192.168.1.100
. Bob deseja acesso exclusivo a darkstar
por 10 minutos, portanto, ele executa um comando especial (por exemplo, bash /opt/mine_for_10_mins.sh
) e, nesses 10 minutos:
ssh
, scp
, sftp
, etc.), desde que seja do mesmo endereço IP de origem de 192.168.1.100
(ou seja o que for armazenado em SSH_CLIENT
). 10.10.0.200
, não consegue fazer o login até que o período de 10 minutos tenha se passado ou Bob desconecte-se. Eu gostaria de ter os dois e definir um limite superior, então Bob não pode reservar uma caixa por 48 horas, sair para o fim de semana e deixar as pessoas impossibilitadas de fazer login: se Logon de Bob cedo, ótimo; mas ele não pode reservar por mais de 10 minutos (ou talvez 12 horas) de cada vez. Idealmente, eu gostaria de fazer isso com um temporizador, ou se for muito pouco prático / difícil, eu gostaria que a "reserva" terminasse quando Bob terminasse todas as sessões de login de 192.168.1.100
.
Eu tentei tocar com touch
'ing /etc/nologin
, mas não consegui encontrar uma maneira de garantir que ele fosse excluído automaticamente e se nossos engenheiros estivessem trabalhando remotamente (configuração flexível de trabalho de casa) ), Eu não quero que todos sejam bloqueados fora das caixas a menos que alguém entre consertar o dispositivo remotamente (embora estejamos olhando para um KVM habilitado para rede para remediar isso).
Há também a possibilidade de executar um script que periodicamente (ou seja, a cada 5 segundos) auto-inicializa outros usuários de outros IPs, eliminando suas sshd
instâncias, mas eu gostaria de tentar evitar logins completamente, como é É muito comum as pessoas executarem sessões ssh
não interativas com scripts que podem interferir com outros usuários na mesma caixa do Linux, e uma abordagem baseada em pesquisa não impediria isso.
Obrigado.