¿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 musteriusuarios en "/var/www/xyz.com.tr/musteri". No quiero que acceda a otra carpeta.
ssh
permissions
users
account-restrictions
Violonchelo
fuente
fuente

scponlycomo un shell, posiblemente operando enchrootmodo para restringir su acceso a ese directorio y a ningún otro lugar.scponly chrootorssh chrootdeberí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íneasSubsistema sftp internal-sftp Match Group sftponly ChrootDirectory% h AllowTCPForwarding no X11 Reenvío no ForceCommand internal-sftpEsto 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_sftppara 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/bashnecesita permisos para acceder/bin.bashen 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
rbashestá diseñado para hacer exactamente esto.