¿Cómo agregar un usuario ssh que solo tiene permisos para acceder a una carpeta específica?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Creé un usuario llamado musteri
. Configuré su carpeta de inicio y grupo. Por lo tanto, deseo integrar a los musteri
usuarios en "/var/www/xyz.com.tr/musteri". No quiero que acceda a otra carpeta.
ssh
permissions
users
account-restrictions
Violonchelo
fuente
fuente
scponly
como un shell, posiblemente operando enchroot
modo para restringir su acceso a ese directorio y a ningún otro lugar.scponly chroot
orssh chroot
debería guiarlo hacia los procedimientos).Respuestas:
Parece que quiere que su müşteriler tenga acceso de transferencia de archivos a una carpeta sin darles realmente shells. Esto es algo bueno porque, como señaló Binfalse , es difícil proporcionar shells a las personas con acceso limitado porque los shells necesitan acceder a todo tipo de cosas dispersas en el sistema solo para ejecutarse.
Para dar acceso SFTP a una carpeta específica, puede hacer algo como esto.
/etc/ssh/sshd_config
) con estas líneasEsto activaría el subsistema sftp dentro de SSH y forzaría a los miembros de ese grupo de sistemas a usar solo ese sistema al iniciar sesión. También los incluiría en sus directorios de inicio. También puede cambiarlo para que sea una subcarpeta de sus directores de inicio con algo así
ChrootDirectory %h/musteri_sftp
para que no puedan ver el resto de sus archivos del sistema, sino que inicien sesión directamente en una subcarpeta especial de su carpeta de inicio.Kolay gelsin.
fuente
En mi opinión, esto es muy difícil, si no imposible. Cuando el usuario se conecta a través de SSH, al menos necesita un shell, en su caso el
bash
. Para ejecutar/bin/bash
necesita permisos para acceder/bin
.bash
en sí mismo necesita leer algunas cosas de/etc
(por ejemplo/etc/bash.bashrc
), por lo que el usuario también necesita acceso/etc
. Suponiendo que el usuario no solo quiera pasar el rato en este directorio, es posible que desee leer un archivo, sino que para ejecutarlo, por ejemplovim
, también necesita acceso/usr/bin
.Esto es solo una pequeña demostración, hay algunas dependencias más, por ejemplo, realmente no sé qué sucederá si el usuario no tiene acceso a
/tmp
...Debes pensar en tu intención. ¿Desea que alguien tenga acceso de lectura / escritura a una parte de su servicio web? Luego, puede configurar algo como FTP para exportar un directorio específico a este usuario. Entonces puede leer / escribir estos archivos sin acceso SSH.
Otra buena solución sería un repositorio. Por ejemplo, configure un repositorio GIT y deje que el usuario lo clone. Él puede hacer sus cambios localmente y enviarle un parche. Puede decidir si desea aplicar este parche o no, una reversión para parches con errores también es muy fácil.
fuente
rbash
está diseñado para hacer exactamente esto.