2017-05-22 4 views
0

J'ai quelques vhosts sur le serveur apache et quelques développeurs y travaillent séparément. Je veux leur donner accès à leur site uniquement. Puisque le démon dépasse l'accès à n'importe quel fichier créé sur le site, j'ai créé un script avec inotifywait pour accorder l'autorisation sur un fichier modifié/créé, mais cela ne fonctionne que pour un seul site et le script de duplication pour les autres vhosts ne ressemble pas une solution élégante.Gestion de l'accès via inotifywait pour Vhosts

#!/bin/sh 
monitorDir="/opt/bitnami/apps/wordpress/htdocs" 

inotifywait -m -r --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -q -e create,modify,move "${monitorDir}" | while read date time dir file; do 
     FILECHANGE=${dir}${file} 
     #Change ownership of file 
     chown wpdev1:wpdev1 "$FILECHANGE" 
     #Change permissions of file 
     chmod 755 "$FILECHANGE" 
done 

Est-ce que quelqu'un a une idée de la façon dont cela peut être résolu pour plusieurs dossiers et développeurs? (par exemple j'ai 3 sites Web: wordpress, wordpress2 et wordpress3). Merci.

Répondre

0

Le code suivant fonctionne. Il vérifie pour certain dossier pour les changements et fait des actions pertinentes (chown), si des changements se produisent:

#!/bin/bash 
wordpressDir="/opt/bitnami/apps/wordpress/htdocs" 
wordpress="copyme" 
phpDir="/opt/bitnami/apps/phpmyadmin" 
phpuser="phpme" 

inotifywait -m -r --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -s -q -e create,modify,move "${wordpressDir}" "${phpDir}" | 
while read date time dir file; do 
     FILECHANGE=${dir}${file} 
     if [[ "$dir" == *"$wordpressDir"* ]]; then 
       #Change ownership of file 
       chown $wordpress:$wordpress "$FILECHANGE" 
     fi 
     if [[ "$dir" == *"$phpDir"* ]]; then 
       #Change ownership of file 
       chown $phpuser:$phpuser "$FILECHANGE" 
     fi 
     #Change permissions of file 
     chmod 755 "$FILECHANGE" 
done