web-dev-qa-db-fra.com

Comment ajouter un utilisateur SSH qui n'a que des autorisations uniquement pour accéder à un dossier spécifique?

Comment ajouter un utilisateur SSH qui n'a que des autorisations uniquement 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 et son groupe. Donc, je veux intégrer les utilisateurs musteri dans "/var/www/xyz.com.tr/musteri". Je ne veux pas que cela accède à un autre dossier.

17
Cell-o

On dirait que vous voulez que votre Müşteriler ait un accès de fichier accès à un dossier sans leur donner des obus. C'est une bonne chose parce que comme Binfalse a souligné , donnant aux gens des coquillages à un accès limité est délicat car les obus doivent accéder à toutes sortes de choses dispersées sur le système juste pour courir.

Afin de donner accès à 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 utilisateurs de votre système qui devraient avoir des droits restreints à ce groupe. Vous pouvez également leur donner des obus restreints comme/bin/true, mais ce n'est pas nécessaire.
  3. Changez votre fichier de configuration SSH (généralement /etc/ssh/sshd_config) avec ces lignes
[.____ ForceCommand interne-sftp 

Cela permettrait d'activer le sous-système SFTP à l'intérieur de SSH et des membres de la force de ce groupe système à utiliser uniquement ce système lors de la connexion. Cela les chrootez également à leurs annuaires de domicile. Vous pouvez modifier cela pour être un sous-dossier de leurs domaines à domicile ainsi que quelque chose comme ChrootDirectory %h/musteri_sftp Pour qu'ils ne puissent pas se voir le reste de leurs fichiers système mais se connecteraient directement à un sous-dossier spécial de leur dossier à domicile.

Kolay Gelsin.

19
Caleb

À mon avis, c'est très difficile, sinon impossible. Lorsque l'utilisateur se connecte via SSH, il a au moins besoin d'une coquille, dans votre cas, le bash. Pour exécuter /bin/bash Il a besoin d'autorisations pour accéder à /bin. bash elle a lui-même besoin de lire certaines choses à partir de /etc (E.g. /etc/bash.bashrc), donc l'utilisateur doit également accéder à /etc. En supposant que l'utilisateur ne veuille pas seulement se bloquer dans ce répertoire, il peut vouloir lire un fichier, mais pour exécuter par exemple vim il a besoin également d'accéder à /usr/bin.
[.____] C'est juste une légère manifestation, il y a des dépendances supplémentaires, par exemple Je ne sais pas vraiment ce qui va arriver si l'utilisateur n'a pas accès à /tmp.

Vous devriez penser à votre intention. Voulez-vous simplement que quelqu'un ait un accès lu/écriture dans une partie de votre service Web? Ensuite, vous pourriez configurer quelque chose comme FTP pour exporter un répertoire spécifique à cet utilisateur. Il est donc capable de lire/écrire ces fichiers sans accès SSH.
[.____] Une autre belle solution serait un référentiel. Par exemple, configurez un repo git et laissez-le cloner l'utilisateur. Il peut faire ses changements localement et vous envoyer un patch. Vous pouvez décider d'appliquer ce correctif ou non, un retour pour les patchs de buggy est également très facile.

2
binfalse