Como você permite que um usuário efetue login usando " su -
user ", mas impede que o usuário efetue login usando SSH?
Eu tentei definir o shell para, /bin/false
mas quando eu tento su
não funciona.
Existem várias maneiras de permitir apenas logins por su
?
O SSH é AllowUser
o caminho a seguir? (como eu faria isso se for o caminho a percorrer)
su - -s /bin/bash user
Se você ainda deseja que o su funcione, é possível usá-lo
sudo -u [username]
ou transmiti-s /bin/bash
-lo como um shell temporário. Ambos fazem o mesmo na ausência de uma concha/etc/passwd
.fonte
Se uma conta não tiver uma senha ( passwd -d nome de usuário ), ela não poderá efetuar login interativamente (console, SSH etc.). Se eles tiverem um shell válido, o su continuará funcionando. Observe o "interativamente"; se alguém decidir configurar um par de chaves SSH para a conta, isso funcionará!
fonte
Em sshd_config, adicione uma linha
DenyUser [username]
Observe que isso não impedirá que o usuário efetue login através do console.
fonte
DenyUsers
, com um 's'.Além do que foi mencionado acima (desativar e / ou não definir a senha do usuário), o módulo pam_access (consulte a página de manual em pam_access e access.conf) pode ser usado para controlar o acesso ao login.
fonte
como outros disseram;
DenyUser username
ouDenyGroup groupname
emsshd_config
impediria o login do par de chaves / senha via ssh.embora eu costumo fazer algo assim
AllowGroup ssh
ou algo nesse sentido e adicionar explicitamente pessoas que precisam de acesso ssh a esse grupo.então, você pode fazer o que os outros disseram:
passwd -d username
esvaziar a senha dos usuários, para que eles não possam efetuar login no console ou de outra maneira. ou melhor ainda,passwd -l username
para 'bloquear' a conta. é possível que o ssh negue o acesso a uma conta bloqueada, mesmo com chaves, mas não sou positivo.fonte
Como mencionei em um comentário, acho que você ainda pode criar uma conta com um shell inválido. Portanto, se você definir o shell do usuário como / dev / null ou qualquer que seja o shell do bin, ainda poderá processar o usuário ... mas qualquer tentativa de efetuar logon de qualquer forma fará com que você saia ...
fonte
edite o / etc / shadow adicionando! até o início do hash da senha.
Ao proteger uma nova instalação, é a primeira coisa que faço depois de instalar o sudo, para que ninguém possa usar o usuário root para efetuar login ou ssh no sistema, os usuários do sudo ainda podem executar como usuário root.
fonte
Não especifique uma senha para o usuário não autorizado a efetuar login ou excluí-la.
fonte
Supondo que você queira apenas su usuário da conta root e desabilite todos os outros acessos:
Use isto (execute como root):
Isso desativa o login com senha (como muitas outras respostas recomendaram), mas também expira a conta . Você não pode acessar uma conta expirada, por exemplo, com chaves SSH. Você ainda pode
su user
, apesar de exibir um aviso de que a conta expirou.fonte
Saber qual mecanismo é melhor depende dos requisitos. Se você conhece os requisitos, pode escolher o mecanismo apropriado. Todas as respostas acima são válidas para algum conjunto de requisitos.
Deseja restringir apenas o acesso SSH? Você precisa de acesso para métodos mail ou ssh? O acesso é apenas a partir da raiz?
su - user
exigirá uma senha para o usuário se for executada, seja um usuário que não seja root. No entanto,sudo -u user -i
não requer uma senha para o usuário.fonte