Comment append un user ssh qui n'a que des permissions pour accéder à un dossier spécifique?

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.

    1. Ajoutez un nouveau groupe au système, dites «sftponly».
    2. Ajoutez des users sur votre système qui devraient avoir des droits restreints sur ce groupe. Vous pouvez également leur donner des shells restreints comme / bin / true, mais ce n'est pas obligatoire.
    3. Modifiez votre file de configuration ssh (généralement /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.