Jan
2004
Posted in bash zugriffsrechte rekursiv von dateien und ordnern setzen
#!/bin/sh
# Script zum rekursiven setzen, unterschiedlicher Berechtigungen von Verzeichnissen
# und deren enthaltenen Dateien + deren Besitzer und Gruppe
#
# 2004:01:16 v0.2
# -Rootprüfung
# -Überprüfung der Eingaben durch Benutzer vor Verarbeitung
# -Rechte werden mit der xargs Methode gesetzt
#
# 2004:01:12 v0.1
#
#= = = = = = = = = = = = = = = = = = = Ueberpruefung, ob root angemeldet ist
if [ "`id --user`" != "0" ] ; then
echo -e “nNur der Superuser darf Rechte setzen!n”
exit 1
fi
#= = = = = = = = = = = = = = = = = = = Eingabe des Verzeichnis
echo “Gib den PFAD an [z.B. /foo/bar]:”
read PFAD
if [ "$PFAD" = "" ]; then
echo -e “nkein Pfad stoppe Script!n”
exit 2
fi
#= = = = = = = = = = = = = = = = = = = Eingabe des Bezitzers
echo “Gib den USER an [z.B. nobody]:”
read USER
if [ "$USER" = "" ]; then
echo -e “nkein User stoppe Script!n”
exit 3
fi
#= = = = = = = = = = = = = = = = = = = Eingabe der Gruppe
echo “Gib die GROUP an [z.B. users]:”
read GROUP
if [ "$GROUP" = "" ]; then
echo -e “nkeine Gruppe stoppe Script!n”
exit 4
fi
#= = = = = = = = = = = = = = = = = = = Eingabe der Verzeichnisberechtigung
echo “Gib die DIR -berechtigung an [z.B. 755]:”
read DIR
if [ "$DIR" = "" ]; then
echo -e “nkeine DIR-Berechtigung stoppe Script!n”
exit 5
fi
#= = = = = = = = = = = = = = = = = = = Eingabe der Dateiberechtigungen
echo “Gib die FILE -berechtigung an [z.B. 644]:”
read FILE
if [ "$FILE" = "" ]; then
echo -e “nkeine FILE-Berechtigung stoppe Script!n”
exit 6
fi
#= = = = = = = = = = = = = = = = = = = Checken der Benutzereingabe
echo -e “nSind die folgenden Angaben richtig?n”
date
echo -e “User:$USER”
echo -e “Group:$GROUP”
echo -e “Pfad:$PFAD”
echo -e “Verzeichnis=$DIR”
echo -e “Datei=$FILE”
#= = = = = = = = = = = = = = = = = = = Abfrage: soll Benutzereingabe verarbeitet werden?
echo -e “nAntwort: y/nn”
read CHECK
#= = = = = = = = = = = = = = = = = = = y=ja alles andere führt zum Abbruch
if [ "$CHECK" = "y" ]; then
echo -e “nFuehre Aufgaben aus…n”
cd “$PFAD”
chown -R $USER:$GROUP “$PFAD”
find -type d | xargs chmod $DIR
find -type f | xargs chmod $FILE
echo -e “nErfolgreich beendet.n”
else
echo -e “nBreche ab…!n”
exit 7
fi
exit 0
