6 votes

Emprisonner l'utilisateur dans son répertoire personnel tout en l'autorisant à créer et à supprimer des fichiers/dossiers.

J'essaie de donner à un client un accès SFTP au répertoire racine de son site sur mon serveur (Ubuntu 10.10) afin qu'il puisse gérer son site lui-même.

Bien que j'aie réussi à enfermer un utilisateur dans un répertoire et à lui donner un accès SFTP, il n'est autorisé à créer et à supprimer de nouveaux fichiers que dans les sous-répertoires (les répertoires qu'il possède). Cela signifie que je dois leur donner accès au répertoire parent de la racine de leur site.

Jusqu'à présent, j'ai suivi les instructions figurant dans le document suivant tutoriel comme suit :

addgroup filetransfer
usermod -G filetransfer username
chown root:root /home/username
chmod 755 /home/username
cd /home/username
mkdir docs public_html
chown username:username *

Comment puis-je les limiter à la racine de leur site (par exemple public_html) tout en leur permettant de créer et de supprimer des fichiers. Tous les tutoriels que j'ai lus suggèrent que la racine doit être le propriétaire du répertoire personnel de l'utilisateur, ce qui les empêche d'accéder en écriture à l'intérieur de ce répertoire.

Je suis relativement novice en matière de gestion de mon propre serveur, donc tout conseil me serait très utile.

Merci beaucoup.

1voto

Laurent Couvidou Points 155

Vous devez indiquer ce que vous avez fait exactement pour y parvenir. Si ce n'est pas déjà fait, vous devriez probablement essayer d'utiliser chroot (conseils ici : http://www.unixwiz.net/techtips/chroot-practices.html ).

Pour votre problème spécifique, vous devez donner à vos utilisateurs des droits d'écriture sur leur dossier racine. Soit vous les définissez comme propriétaires et vous vous assurez que les droits d'écriture sont bien définis. Je ne vois pas pourquoi ce serait une si mauvaise idée :

# chown someuser /user/root/folder
# chmod u+w /user/root/folder

Ou si vous voulez que root reste le propriétaire, vous pouvez le faire avec un groupe :

# addgroup somegroup
# adduser someuser somegroup
# chgrp somegroup /user/root/folder
# chmod g+w /user/root/folder

EDIT

Comme le mentionnent les commentaires dans le lien fourni, il semble que root doive être le propriétaire du répertoire concerné pour que le chroot fonctionne correctement. Mais rien ne semble empêcher de changer de groupe. En suivant les indications de ce tutoriel, cela pourrait donc faire l'affaire :

# chown root:filetransfer /home/username
# chmod 775 /home/username

Remarquez que les autorisations sont maintenant 775 et non 755, cela donne le droit d'écriture à tous les utilisateurs appartenant au groupe filetransfer.

EDIT 2

Non, ce n'est pas suffisant. Peut-être que ce n'est tout simplement pas faisable.

0voto

Faron Points 327

Pour le système Ubuntu --

J'ai utilisé cette commande avec les arguments suivants :

sudo useradd -d /home/node -m node

Je l'ai ensuite testé avec ce nom d'utilisateur et sftp en ssh - j'ai réussi à emprisonner ce nom d'utilisateur, et un skelton bin/Shell est donné à ce nom d'utilisateur mais avec des fonctions limitées.

C'est la solution la plus simple et la meilleure que j'ai trouvée il y a quelques nuits.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X