Comment ajouter un utilisateur ssh qui ne dispose que des autorisations 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 utilisateur appelé musteri
. J'ai défini son dossier de départ et son groupe. Je souhaite donc intégrer les musteri
utilisateurs dans "/var/www/xyz.com.tr/musteri". Je ne veux pas qu'il accède à un autre dossier.
ssh
permissions
users
account-restrictions
Violoncelle
la source
la source
scponly
comme un shell, éventuellement enchroot
mode pour restreindre son accès à ce répertoire et nulle part ailleurs.scponly chroot
ourssh chroot
devrait vous conduire à howtos).Réponses:
Il semble que vous souhaitiez que votre müşteriler ait accès au transfert de fichiers dans un dossier sans leur donner de coquilles. C'est une bonne chose car, comme l' a souligné binfalse , donner aux utilisateurs des shells avec un accès limité est délicat car les shells doivent accéder à toutes sortes de choses dispersées sur le système juste pour fonctionner.
Afin de donner l'accès SFTP à un dossier spécifique, vous pouvez faire quelque chose comme ça.
/etc/ssh/sshd_config
) avec ces lignesCela activerait le sous-système sftp à l'intérieur de SSH et forcerait les membres de ce groupe de systèmes à utiliser uniquement ce système lors de la connexion. Il les chrooterait également dans leurs répertoires personnels. Vous pouvez également changer cela pour être un sous-dossier de leurs répertoires personnels avec quelque chose comme
ChrootDirectory %h/musteri_sftp
pour qu'ils ne puissent pas voir le reste de leurs fichiers système mais se connecter directement à un sous-dossier spécial de leur dossier personnel.Kolay gelsin.
la source
À mon avis, c'est très difficile, voire impossible. Lorsque l'utilisateur se connecte via SSH, il a au moins besoin d'un shell, dans votre cas, le
bash
. Pour exécuter,/bin/bash
il a besoin d'autorisations d'accès/bin
.bash
lui-même a besoin de lire certaines choses/etc
(par exemple/etc/bash.bashrc
), donc l'utilisateur doit également y accéder/etc
. En supposant que l'utilisateur ne souhaite pas seulement rester dans ce répertoire, il peut vouloir lire un fichier, mais pour exécuter, par exemple,vim
il doit également y accéder/usr/bin
.Ceci est juste une légère démonstration, il y a d'autres dépendances, par exemple, je ne sais pas vraiment ce qui se passera si l'utilisateur n'a pas accès à
/tmp
..Vous devez penser à votre intention. Voulez-vous simplement que quelqu'un ait un accès en lecture / écriture à une partie de votre service Web? Ensuite, vous pouvez configurer quelque chose comme FTP pour exporter un répertoire spécifique vers cet utilisateur. Il est donc capable de lire / écrire ces fichiers sans accès SSH.
Une autre bonne solution serait un référentiel. Par exemple, configurez un dépôt GIT et laissez l'utilisateur le cloner. Il peut effectuer ses modifications localement et vous envoyer un patch. Vous pouvez décider d'appliquer ou non ce patch, une restauration pour les patchs buggy est également très facile.
la source
rbash
est conçu pour faire exactement cela.