2017-05-22 3 views
0

私は、Apacheサーバ上にいくつかの仮想ホストを持ち、いくつかの開発者はそれらを個別に処理しています。私は彼らに彼らのサイトへのアクセス権を与えたい。デーモンはサイト内で作成されたファイルに対してアクセスを追い抜くので、私はinotifywaitを使って変更/作成されたファイルに対して許可を与えるスクリプトを作成しましたが、これは単一のサイトでしか動作せず、エレガントなソリューションです。Vhostsのためのinotifywait経由のアクセスを管理する

#!/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 

これは複数のフォルダと開発者にとってどのように解決できるのでしょうか? (例えば私は3つのウェブサイトを持っている:wordpress、wordpress2、wordpress3)。 ありがとうございます。

答えて

0

次のコードが機能します。特定のフォルダの変更を確認し、変更が発生した場合は関連する操作(chown)を行います。

#!/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 
関連する問題