Como desativo completamente uma conta? passwd -l
não permitirá que ninguém faça login em uma conta usando uma senha, mas você ainda pode fazer login por meio de chaves públicas / privadas. Como eu desabilitaria a conta completamente? Como uma correção rápida, renomeei o arquivo para authorized_keys_lockme
. Existe outro caminho?
users
account-restrictions
Braiam
fonte
fonte
Respostas:
A maneira correta de acordo com
usermod(8)
é:(Na verdade, o argumento para
--expiredate
pode ser qualquer data anterior à data atual no formatoYYYY-MM-DD
.)Explicação:
--lock
bloqueia a senha do usuário. No entanto, o login por outros métodos (por exemplo, chave pública) ainda é possível.--expiredate YYYY-MM-DD
desativa a conta na data especificada. De acordo comman shadow 5
1970-01-01, é um valor ambíguo e não deve ser usado.Eu testei isso na minha máquina. Não é possível efetuar login com senha nem chave pública após executar este comando.
Para reativar a conta posteriormente, você pode executar:
fonte
usermod --unlock --expiredate '' username
vai fazer isso.usermod
diz:Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1.
--expiredate 1
não basta por si só?sudo su username
parece funcionar usando outra conta.Bloqueie a senha e altere o shell para
/bin/nologin
.(Ou mais concisamente
sudo usermod -L -s /bin/nologin username
.)fonte
ssh username@hostname /bin/bash
, o usuário receberá um prompt do bash, independentemente do shell padrão.sudo chsh -s /bin/nologin
seria melhor do que editar/etc/passwd
manualmente. Além disso, em alguns sistemas, é/sbin/nologin
.Aqui está outra maneira simples. Você pode definir a conta do usuário expirada. Isso impedirá os logins com base em senha e ssh com base em chaves da conta, mas não toca na senha.
Para bloquear a conta:
A conta de usuário 'nome de usuário' será bloqueada no sistema. Para reativar a conta de usuário, faça o seguinte.
Para desbloquear a conta:
A conta de usuário 'nome de usuário' será reativada em seu sistema com a mesma senha de antes. O binário 'chage' faz parte do pacote shadow-utils no Red Hat Linux ou do pacote passwd no Debian Linux.
fonte
Não tenho representante suficiente para comentar a resposta do Legate, mas queria compartilhar que essa resposta nos ajudou em outro caso de uso:
1.) conta em questão é uma conta de serviço local executando um aplicativo, não uma conta de usuário final.
2.) os usuários finais se conectam e
sudo /bin/su <user>
se tornam usuários e administram aplicativos devido a um requisito de trilha de auditoria de que a conta de serviço não pode ter a capacidade de login direto.3.) a conta de serviço deve ter um shell válido (
/bin/bash
, não/sbin/nologin
), porque uma Enterprise Scheduling Platform (agente é executado como raiz localmente) deve ser capazsu - <user>
e não possuir asu -s /bin/bash <user>
capacidade de um shell completo e é necessária para executar tarefas remotamente para operações em lote maiores que abrangem vários servidores e bancos de dados.Portanto ...
passwd -l <user>
Não atende a restrições porque a autenticação de chave pública ignora o PAM e ainda permite o login direto.
usermod -s /sbin/nologin <user>
Não satisfaz restrições porque quebra o agendador da empresa
usermod --lock --expiredate 1970-01-01 <user>
Este é o nosso vencedor. O login remoto é desativado, mas o root ainda pode
su <user>
, assim como outros usuários,sudo
para que o planejador funcione corretamente e que os usuários finais autorizados possam se tornar a conta de serviço de destino, conforme necessário.Obrigado pela solução!
fonte
Para excluir completamente, use
userdel
.Observe que, se você excluir uma conta, existe o risco de que seu ID de usuário ainda seja usado no sistema de arquivos em algum lugar, e um novo usuário herdará a propriedade desses arquivos se ele vier com o mesmo ID de usuário.
Você deseja alterar o proprietário de todos os arquivos pertencentes ao usuário excluído.
Se você deseja adicionar o usuário novamente mais tarde, salve suas linhas de
/etc/passwd
(e no Solaris/etc/shadow
) em arquivos temporários, como/etc/passwd_deleted
.Dessa forma, quando você o adiciona novamente, você pode usar o mesmo ID de usuário e a mesma senha (criptografada em um dos arquivos acima)
Isenção de responsabilidade: eu aprendi o UNIX por conta própria, para não me surpreender se houver uma maneira melhor de desativar temporariamente o usuário. Na verdade, eu nem sei do que você está falando sobre as chaves públicas / privadas. Também tenho certeza de que existe um
find
comando que pode ser usado para procurar os arquivos com esse proprietáriofonte
Alguém já tentou fazê-lo via ssh_config? Talvez isso possa ajudar http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-security/86
fonte