J'ai un serveur ubuntu sur digitalocean et je veux donner à quelqu'un un dossier pour son domaine sur mon serveur, mon problème est, je ne veux pas que cet utilisateur voit mes dossiers ou fichiers ou puisse sortir de leur dossier.
Comment puis-je restreindre cet utilisateur dans son dossier et ne pas lui permettre de sortir et de voir d'autres fichiers/répertoires?
J'ai résolu mon problème de cette façon:
$ Sudo addgroup exchangefiles
$ Sudo mkdir /var/www/GroupFolder/
$ Sudo chmod g+rx /var/www/GroupFolder/
$ Sudo mkdir -p /var/www/GroupFolder/files/
$ Sudo chmod g+rwx /var/www/GroupFolder/files/
$ 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 obama à mon groupe:
$ Sudo adduser --ingroup exchangefiles obama
Maintenant, tout est fait, nous devons donc redémarrer le service ssh:
$ Sudo service ssh restart
remarque: l'utilisateur ne peut plus rien faire dans le répertoire file
Je veux dire que tout son fichier doit être dans le dossier file.
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, en définissant /bin/rksh
(une coquille restreinte) 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 dur ln /bin/ksh /bin/rksh
et ksh
détermineront par son nom s'il est restreint ou non.
Le shell restreint empêchera (par exemple) d'exécuter une commande cd
ou de spécifier une commande avec un /
(un chemin explicite) dans l'invocation, et il interdit de modifier la variable PATH
, Shell
ou ENV
, et les redirections de sortie sont également interdites.
Vous pouvez fournissez 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
vous permet de créer une racine restreinte pour un utilisateur, ceci question explique le concept de chroot
et comment l'utiliser.
Mise à jour: La recherche de prison chroot configurée sur Digital Ocean , apporte une documentation supplémentaire spécifique à leur environnement. Voici un couple qui, je pense, est lié à 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 à un utilisateur emprisonné chroot
Voici celui qui concerne jailkit , qui FloHimself suggéré.