Eu adicionei um usuário ao sistema através da adduser
ferramenta. Então, /etc/passwd
tentei mudar de /bin/bash
para /sbin/nologin
ou para /dev/null
, mas nenhum deles funcionou.
Eu gostaria que o usuário não tivesse a opção de obter um shell interativo e apenas de usá-lo sftp
. Há algum jeito?
Eu sei que já foi perguntado aqui antes, mas parece que ninguém deu uma resposta satisfatória.
Respostas:
O comando que você deve usar para alterar o shell é chsh . O shell nologin pode ser
/sbin/nologin
ou/usr/sbin/nologin
(verifique o que você tem olhando/etc/shells
), mas/bin/false
provavelmente seria uma escolha melhor.Você deve configurar algo como scponly, que fará exatamente o que você deseja.
fonte
/bin/false
e/bin/nologin
estão realmente disponíveis no/etc/shells
!nologin
em/etc/shells
! serverfault.com/a/328424Você também deve conseguir fazê-lo com o OpenSSH 4.9 e superior, com o qual também pode fazer o chroot do usuário para aumentar a segurança.
No seu
/etc/ssh/sshd_config
:Então corra:
O usuário poderá escrever apenas em / home / user / uploads.
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
fonte
Eu acho que a melhor maneira é com mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
Você pode fazer o chroot de um usuário com isso com facilidade e até limitar a largura de banda, se necessário.
fonte
Você pode adicionar um usuário
-s /bin/false
para desativar seu shell, mas o que você realmente deve considerar na configuração é uma conta sftp com chroot. Isso "prende" um usuário em seu próprio diretório e impede que ele possa acessar ou modificar qualquer arquivo ou diretório fora do diretório chroot.fonte