2010-06-23 5 views
1

Je configure un serveur nginx. Je crée un utilisateur nginx pour l'exécution du serveur. Et j'ai quelques données dans la maison d'un autre utilisateur, victor. J'essaye de placer l'ACL pour laisser le nginx lire ces données; Voici ce que j'ai fait.Problème de lien ACL et symbolique

L'emplacement des données:

/home/victor/web/folder/folder2/folder3/data 

Je veux laisser nginx lire ces fichiers, de sorte que je crée un dossier

/home/victor/webshare/ 

Je tournai l'ACL sur le dossier vainqueur

# file: victor 
# owner: victor 
# group: victor 
user::rwx 
user:nginx:--x 
group::--- 
mask::--x 
other::--- 

Je ne veux pas que d'autres choses sous le dossier victor soient vues depuis nginx, donc je le mets en exécution seulement. Et je également mis ACL sur webshare

# file: webshare 
# owner: victor 
# group: victor 
user::rwx 
user:nginx:r-x 
group::--- 
mask::--x 
other::--- 

Pour l'instant, je peux ls/home/vainqueur/webshare/

[[email protected] home]#ls victor/webshare 
hello static 

Et pour nginx d'accéder aux fichiers de données, créer un symbole statique lien. J'ai également défini l'ACL pour permettre à nginx de toucher le dossier de données; Cependant, cela ne fonctionne pas.

[[email protected] home]#ls victor/webshare/static 
ls: victor/webshare/static: Permission denied 

Pourquoi ne peut les lire à partir nginx compte unique du lien symbolique statique? Comment puis-je exposer les données à nginx sans exposer d'autres données importantes?

Répondre

4

Pour utiliser un lien symbolique pour accéder à un fichier, vous devez disposer des droits d'accès sur tous les répertoires que la valeur symbolique traverse. Donc, vous devez vous assurer que nginx a accès:

/ 
/home 
/home/victor 
/home/victor/web 
/home/victor/web/folder 
/home/victor/web/folder/folder2 
/home/victor/web/folder/folder2/folder3 
/home/victor/web/folder/folder2/folder3/data 

Pour les dossiers, la recherche (x) l'autorisation est suffisante (tant que le logiciel n'a pas besoin de scanner la liste des fichiers dans le répertoire - il doit connaître les noms de fichiers). Pour les fichiers auxquels il doit accéder, nginx doit aussi être capable de lire les fichiers.

Questions connexes