GNU/Linux >> Tutoriels Linux >  >> Linux

Comment restreindre un utilisateur à un dossier et ne pas lui permettre de sortir de son dossier

J'ai résolu mon problème de cette façon :

Créer un nouveau groupe

$ sudo addgroup exchangefiles

Créer le répertoire chroot

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

Créer le répertoire accessible en écriture de groupe

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

Donnez-les tous les deux au nouveau groupe

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

après je suis allé à /etc/ssh/sshd_config et ajouté à la fin du fichier :

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

Maintenant, je vais ajouter un nouvel utilisateur avec le nom d'Obama à mon groupe :

$ sudo adduser --ingroup exchangefiles obama

Maintenant que tout est fait, nous devons donc redémarrer le service ssh :

$ sudo service ssh restart

remarque :l'utilisateur ne peut plus rien faire file répertoire Je veux dire que tout son fichier doit être dans le dossier de fichiers.


Les restrictions sont une question sensible et doivent être définies de manière cohérente. Ce que vous pouvez faire est de définir un shell restreint pour l'utilisateur comme son shell par défaut .

Par exemple, définir /bin/rksh (un kornshell restreint) au lieu du shell prédéfini de l'utilisateur comme shell par défaut pour cet utilisateur dans /etc/profile .

REMARQUE : si l'exécutable portant ce nom n'existe pas sur votre système, créez un lien physique ln /bin/ksh /bin/rksh et ksh déterminera par son nom s'il est restreint ou non.

Le shell restreint empêchera (par exemple) de faire un cd commande, ou en spécifiant une commande avec un / (un chemin explicite) dans l'invocation, et il interdit de changer le PATH , SHELL , ou ENV variable et les redirections de sortie sont également interdites.

Vous pouvez fournir toujours prédéfini des scripts shell à l'utilisateur qui (sous le contrôle des implémenteurs de script !) permettront à l'utilisateur d'exécuter ce ou ces scripts spécifiques dans un environnement sans restriction.


La commande chroot permet de créer une racine restreinte pour un utilisateur, cette question explique le concept de chroot et comment l'utiliser.

Mise à jour :Recherche de prison chroot configurée sur l'océan numérique , affiche une documentation supplémentaire spécifique à leur environnement. En voici quelques-unes qui, je pense, sont liées à ce dont vous pourriez avoir besoin.

Comment configurer les environnements chroot pour les tests sur un VPS Ubuntu 12.04

Comment autoriser l'accès SSH restreint à l'utilisateur chroot emprisonné

En voici un qui concerne le jailkit, suggéré par FloHimself.


Linux
  1. Comment autoriser l'utilisateur à utiliser sudo dans Ubuntu Linux

  2. Comment créer un utilisateur Sudo sur Rocky Linux et CentOS

  3. Comment déplacer des fichiers d'un compte utilisateur à un autre sur le même ordinateur ?

  4. Comment utiliser sudo pour permettre à un utilisateur non root d'exécuter une commande particulière

  5. comment puis-je rechercher des fichiers et les compresser dans un seul fichier zip

Comment ajouter et supprimer des utilisateurs sur CentOS 8

Comment ajouter et supprimer des utilisateurs sur CentOS 7

Comment ajouter et supprimer des utilisateurs sur Debian 9

Comment créer et configurer un utilisateur Sudo sur Arch Linux

Comment créer un utilisateur Sudo sur Ubuntu et Debian

Autorisations de base du répertoire Linux et comment les vérifier