Gelöschtes Mitglied 1550
Guest
G
Guten Morgen,
ich stehe vermutlich gerade extrem auf dem Schlauch. Folgendes Szenario: ich möchte einen Ordner überwachen (sagen wir /var/www) und für alle dort angelegten, geänderten, ... Files und Unterordner die Rechte ändern.
Aktuell läuft ein kleines Skript, das inotifywait verwendet:
[src=bash]#!/bin/sh
inotifywait -mrq -e CREATE --format %w%f "/var/www/" | while read FILE
do
chown www-data:www-data "$FILE"
chmod 755 "$FILE"
done[/src]
Das starte ich via init-Skript, das so aussieht:
[src=bash]#! /bin/sh
### BEGIN INIT INFO
# Provides: inotifywait.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start:
# Should-Stop:
# Short-Description: start inotifywait-daemon
### END INIT INFO
case "$1" in
start|"")
rm -f /var/log/inotifywait.log
/usr/local/sbin/inotifywait.sh >/var/log/inotifywait.log 2>&1 &
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# killall inotifywait ???
;;
*)
echo "Usage: inotifywait.sh [start|stop]" >&2
exit 3
;;
esac
:[/src]
Ich weiß, dass die Lösung nicht wirklich schön, aber bisher funktionstüchtig ist. Heute habe ich in besagtem Unterordner (sagen wir "/var/www/rss") ein git-Projekt via git clone geklont. So weit so gut, das Skript ändert die Rechte aller Ordner und Dateien, die direkt in /var/www/rss liegen, aber nicht die Rechte der Dateien, die in Ordnern darunter liegen (z.B. /var/www/rss/plugins), die haben weiterhin die Rechte des Users, der das Projekt geklont hat.
Lege ich per 'touch test' eine Datei in /var/www/rss/plugins an, werden die Rechte geändert - also scheint es irgendwas mit dem git-Checkout zu tun zu haben?
Ich weiß nicht mehr weiter, es nervt aber ziemlich... habt ihr eine Idee oder einen sinnvolleren Weg?
Danke!
ich stehe vermutlich gerade extrem auf dem Schlauch. Folgendes Szenario: ich möchte einen Ordner überwachen (sagen wir /var/www) und für alle dort angelegten, geänderten, ... Files und Unterordner die Rechte ändern.
Aktuell läuft ein kleines Skript, das inotifywait verwendet:
[src=bash]#!/bin/sh
inotifywait -mrq -e CREATE --format %w%f "/var/www/" | while read FILE
do
chown www-data:www-data "$FILE"
chmod 755 "$FILE"
done[/src]
Das starte ich via init-Skript, das so aussieht:
[src=bash]#! /bin/sh
### BEGIN INIT INFO
# Provides: inotifywait.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start:
# Should-Stop:
# Short-Description: start inotifywait-daemon
### END INIT INFO
case "$1" in
start|"")
rm -f /var/log/inotifywait.log
/usr/local/sbin/inotifywait.sh >/var/log/inotifywait.log 2>&1 &
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# killall inotifywait ???
;;
*)
echo "Usage: inotifywait.sh [start|stop]" >&2
exit 3
;;
esac
:[/src]
Ich weiß, dass die Lösung nicht wirklich schön, aber bisher funktionstüchtig ist. Heute habe ich in besagtem Unterordner (sagen wir "/var/www/rss") ein git-Projekt via git clone geklont. So weit so gut, das Skript ändert die Rechte aller Ordner und Dateien, die direkt in /var/www/rss liegen, aber nicht die Rechte der Dateien, die in Ordnern darunter liegen (z.B. /var/www/rss/plugins), die haben weiterhin die Rechte des Users, der das Projekt geklont hat.
Lege ich per 'touch test' eine Datei in /var/www/rss/plugins an, werden die Rechte geändert - also scheint es irgendwas mit dem git-Checkout zu tun zu haben?
Ich weiß nicht mehr weiter, es nervt aber ziemlich... habt ihr eine Idee oder einen sinnvolleren Weg?
Danke!