1 votes

Limiter les autorisations de l'utilisateur à un seul dossier tout en étant accessible par l'utilisateur apache

J'ai un site web fonctionnant sous Apache sous Linux dans le répertoire /var/www.

Ce site possède quelques fichiers en dehors de la racine du répertoire web dans /var/www-store qui sont écrits et lus par l'utilisateur apache www-data.

J'ai besoin qu'un autre utilisateur ait un accès en lecture et en écriture à un sous-répertoire de ce dépôt de fichiers /var/www-store/sync mais, pour des raisons de sécurité, je ne veux pas qu'il puisse accéder (en lecture ou en écriture) à des fichiers en dehors de ce répertoire ou ailleurs sur le système de fichiers.

De plus, les fichiers écrits par cet utilisateur doivent être accessibles en écriture par l'utilisateur apache et vice versa.

Quelqu'un peut-il m'aider à déterminer les autorisations que je dois définir sur cet utilisateur et ces répertoires pour assurer la sécurité décrite ci-dessus ?

1voto

valid Points 151

Vous pourriez définir la propriété du groupe sur le répertoire et ses fichiers que vous voulez partager avec l'utilisateur et pas n'importe où ailleurs sur le système de fichiers ?

chown -R apache:[user-name-here] /var/www-store/sync/*

Cela définirait récursivement la propriété du groupe sur le répertoire. apache serait le propriétaire et votre utilisateur serait le propriétaire du groupe. Vous devez donc vous assurer que le répertoire et le fichier peuvent être lus et écrits :

chmod ug+rw /var/www-store/sync/*

La ligne ci-dessus autoriserait l'utilisateur et le groupe propriétaire à lire et écrire dans le répertoire.

Vous devez ensuite vous assurer que le répertoire parent ne dispose pas également de droits de lecture ou d'écriture pour tous les utilisateurs. Cela peut également être fait en utilisant chmod :

chmod o-rw /var/www-store/

Remarquez que la ligne ci-dessus n'est pas récursive, sinon elle affecterait le permissinso défini précédemment. Ce devrait C'est tout ce dont vous avez besoin et si ce n'est pas le cas, cela vous permettra au moins de commencer. Avis de non-responsabilité : Je n'ai pas encore essayé, donc je ne peux pas dire avec certitude que ça va marcher, mais sinon chmod y chown devrait vous permettre de faire une partie du chemin. Si vous faites cela pour des raisons de sécurité, vous voudrez probablement le tester de manière approfondie sur un autre répertoire, le mieux étant d'en créer un spécialement pour les tests.

0voto

imoverclocked Points 1

Vous pourriez ajouter l'autre utilisateur à un groupe. Et ensuite donner à ce groupe l'accès en lecture et en écriture au répertoire /var/www-store/sync .

chown -R www-data:somegroup /var/www-store/sync
chmod -R 770 /var/www-store/sync

0voto

poisonbit Points 797

Si l'utilisateur n'a pas besoin d'un TTY physique, vous pouvez essayer de créer un utilisateur sftp uniquement, et configurer le ChrootDirectory d'OpenSSH pour le groupe de l'utilisateur.

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