He agregado un usuario al sistema a través de la adduser
herramienta. Luego, en /etc/passwd
, intenté cambiar el /bin/bash
to /sbin/nologin
o to /dev/null
, pero ninguno de estos funcionó.
Me gustaría que el usuario no tenga la opción de obtener un shell interactivo y solo usarlo sftp
. ¿Hay alguna manera?
Sé que se ha preguntado aquí antes, pero parece que nadie dio una respuesta satisfactoria.
Respuestas:
El comando que debe usar para cambiar el shell es chsh . El shell nologin puede ser
/sbin/nologin
o/usr/sbin/nologin
(verifique lo que tiene mirando/etc/shells
) pero/bin/false
probablemente sería una mejor opción.Deberías considerar configurar algo como scponly que hará exactamente lo que quieres.
fuente
/bin/false
y/bin/nologin
son realmente disponible en/etc/shells
!nologin
en/etc/shells
! serverfault.com/a/328424También debería poder hacerlo con OpenSSH 4.9 y versiones posteriores, con lo que también puede hacer un "chroot" adicional para aumentar la seguridad.
En su
/etc/ssh/sshd_config
:Entonces corre:
El usuario solo podrá escribir en / home / user / uploads.
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
fuente
Creo que la mejor manera es con mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
Puede hacer un chroot de un usuario con esto fácilmente e incluso limitar el ancho de banda si es necesario.
fuente
Puede agregar un usuario
-s /bin/false
para deshabilitar su shell, pero lo que realmente debería considerar para configurar es una cuenta sftp chrooteada. Esto "encarcelará" a un usuario en su propio directorio y evitará que pueda acceder o modificar cualquier archivo o directorio fuera del directorio chroot.fuente