Comment append un user ssh qui n'a que des permissions pour accéder à un dossier spécifique?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
J'ai créé un user appelé musteri
. J'ai mis son dossier de départ et le groupe. Donc, je veux intégrer les users de musteri
dans "/var/www/xyz.com.tr/musteri". Je ne veux pas qu'il accède à un autre dossier.
On dirait que vous voulez que votre müşteriler ait access au dossier de transfert à un dossier sans réellement leur donner des coquilles. C'est une bonne chose car, comme l' a souligné Binfalse , il est difficile de donner aux coquilles un access limité car les obus ont besoin d'accéder à toutes sortes de choses éparpillées sur le système pour fonctionner.
Afin de donner l'access SFTP à un dossier spécifique, vous pouvez faire quelque chose comme ça.
/etc/ssh/sshd_config
) avec ces lignes Sous-système sftp internal-sftp Groupe de correspondance sftponly ChrootDirectory% h AllowTCPForwarding non X11Forwarding non ForceCommand interne-sftp
Cela activerait le sous-système sftp à l'intérieur de SSH et forcerait les membres de ce groupe système à utiliser uniquement ce système lors de la connection. Il les chrooterait aussi dans leurs directorys personnels. Vous pourriez changer cela pour être un sous-dossier de leurs home-directores aussi bien avec quelque chose comme ChrootDirectory %h/musteri_sftp
afin qu'ils ne puissent pas voir le rest de leurs dossiers de système mais se connecteraient directement à un sous-dossier spécial de leur dossier de départ .
Kolay gelsin.
À mon avis, c'est très difficile, voire impossible. Lorsque l'user se connecte via SSH il a au less besoin d'un shell, dans votre cas le bash
. Pour exécuter /bin/bash
il a besoin d'permissions pour accéder à /bin
. bash
lui-même a besoin de lire quelques trucs de /etc
(par exemple /etc/bash.bashrc
), donc l'user a également besoin d'accéder à /etc
En supposant que l'user ne veut pas seulement traîner dans ce directory, il peut vouloir lire un file, mais pour exécuter par exemple vim
il a également besoin d'accéder à /usr/bin
.
C'est juste une petite démonstration, il y a plus de dependencies, par exemple je ne sais pas vraiment ce qui se passera si l'user n'a pas access à /tmp
..
Vous devriez penser à votre intention. Voulez-vous que quelqu'un ait access en lecture / écriture à une partie de votre service Web? Ensuite, vous pouvez configurer quelque chose comme FTP pour exporter un directory spécifique à cet user. Il est donc capable de lire / écrire ces files sans access SSH.
Une autre bonne solution serait un référentiel. Par exemple, configurez un repo GIT et laissez l'user le cloner. Il peut faire ses changements localement et vous envoyer un patch. Vous pouvez décider d'appliquer ce patch ou non, un rollback pour les patchs buggy est également très facile.