我在apache服务器上有几个vhost,还有一些开发人员分别处理它们。我想让他们只访问他们的网站。由于守护进程超过了在站点内创建的任何文件的访问权限,因此我创建了一个带有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 :(得分: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