2017-05-22 2 views
0

아파치 서버에 약간의 가상 호스트가 있으며, 몇 명의 개발자가 별도로 작업하고 있습니다. 그들에게 그들의 사이트에 대한 액세스 권한 만 부여하고 싶습니다. 데몬이 사이트 내에서 생성 된 모든 파일에 대한 접근을 추월하기 때문에, 나는 변경/생성 된 파일에 대한 권한을 부여하기 위해 inotifywait를 사용하여 스크립트를 만들었지 만 단일 사이트에서만 작동하고 다른 가상 호스트에서 스크립트를 복제하는 것은 우아한 솔루션.유령에 대한 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

다음 코드가 작동합니다. 특정 폴더에서 변경 사항을 확인하고 변경 사항이 발생하면 관련 작업 (변경)을 수행합니다.

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