Shell Scripting zum Erzeugen und Speichern von .htaccess und .htpasswd Dateien mit variablen Verzeichnisnamen und Übergabe an Cronjob zur Automatisierung.
Hallo Community,
ich habe mich hier im Forum neu angemeldet, weil ich auf meiner Arbeit an einem Problem arbeite, an dem ich mir momentan richtig die Zähne ausbeisse. Da ich vor kurzem erst meine Ausbildung zum Informatiker abgeschlossen habe und ich noch viel lernen muss, wage ich heute den Schritt in dieses Forum. Nun gut, also zu meinem Problem.
Ich habe vor kurzem eine Lernplattform für die Arbeit mit unseren Kunden auf ein Debian System installiert. Der Zugriff auf die Lernplattform (Webserver) erfolgt aus dem Internet heraus und wird durch htaccess geschützt. (Kunde wollte es so.) Da von seiten meines Unternehmens gewünscht wird, das jeder Kunde eine eigene Installation (mit eigenem Verzeichnisnamen) für die Lernplattform auf dem Server erhalten soll, muss jede einzelne Installation der Lernplattform mit einer .htaccess und .htpasswd Datei versehen werden.
Das habe ich auch alles gelöst bekommen, nur ich komme einfach nicht weiter bei der Automatisierung. Da ich jedesmal für einen Kunden, eine Installation vornehmen muss, wo ich diverse Arbeiten ausführen muss, wie ein neues Verzeichnis erstellen + zufälligen Verzeichnisnamen vergeben, Dateirechte vergeben, Datenbank erzeugen, Datenbank überprüfen, Datenbank Backup, Nutzer nach X Tagen inaktiv schalten und nach X Tagen löschen etc., habe ich ein Shell Script angelegt das soweit gut funktioniert.
Nur ich stehe momentan auf dem Schlauch, beim Einbinden der .htaccess und htpasswd Datei.
Beispiel:
Ich habe eine Abfrage im Shell Script eingebaut:
echo -e "Bitte geben Sie den Verzeichnisnamen des zu erstellenden Kunden an:"
read verzeichnis
Wenn nun das Verzeichnis erstellt wurde und die Installation abgeschlossen ist, so soll die .htaccess und die .htpasswd Datei ebenfalls für den Kunden neu erstellt werden.
Der Inhalt der .htaccess Datei soll in meinem Script selber durch eine Schleife ausgelesen werden und der Pfad zur .htpasswd Datei soll aus der Variablen $verzeichnis kommen, die ich vorher durch die Abfrage auf der Konsole eingegeben habe. Danach soll der komplette Inhalt in eine neue .htaccess Datei geschrieben werden. Beide Dateien .htaccess und .htpasswd sollen im jeweiligen Kundenverzeichnis liegen.
So in etwa (Ist nur ein Beispiel/keine Gewähr auf Richtigkeit):
while [ Bedingung ??????]
do
echo "AuthType Basic">.htaccess
echo "AuthName "Zugriff verweigert - Bitte User und Passwort eingeben"">.htaccess
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd">.htaccess
echo "Require valid-user">.htaccess
done
Danach soll dann ebenfalls die .htpasswd Datei erzeugt werden.
htpasswd -c /var/www/$verzeichnis/.htpasswd benutzername
Auch hier soll wieder die Variable $verzeichnis das neue Kundenverzeichnis sein und aus der vorherigen Abfrage durch Eingabe auf die Konsole stammen. Ich möchte das komplette Installationsszenario inklusive aller weiteren Arbeiten in einem Script verarbeiten um dann später dieses Script im Cronjob laufen zu lassen.
Ich hoffe es kann mir jemand auf die Sprünge helfen.
Mit freundlichen Grüßen
i-soft
ich habe mich hier im Forum neu angemeldet, weil ich auf meiner Arbeit an einem Problem arbeite, an dem ich mir momentan richtig die Zähne ausbeisse. Da ich vor kurzem erst meine Ausbildung zum Informatiker abgeschlossen habe und ich noch viel lernen muss, wage ich heute den Schritt in dieses Forum. Nun gut, also zu meinem Problem.
Ich habe vor kurzem eine Lernplattform für die Arbeit mit unseren Kunden auf ein Debian System installiert. Der Zugriff auf die Lernplattform (Webserver) erfolgt aus dem Internet heraus und wird durch htaccess geschützt. (Kunde wollte es so.) Da von seiten meines Unternehmens gewünscht wird, das jeder Kunde eine eigene Installation (mit eigenem Verzeichnisnamen) für die Lernplattform auf dem Server erhalten soll, muss jede einzelne Installation der Lernplattform mit einer .htaccess und .htpasswd Datei versehen werden.
Das habe ich auch alles gelöst bekommen, nur ich komme einfach nicht weiter bei der Automatisierung. Da ich jedesmal für einen Kunden, eine Installation vornehmen muss, wo ich diverse Arbeiten ausführen muss, wie ein neues Verzeichnis erstellen + zufälligen Verzeichnisnamen vergeben, Dateirechte vergeben, Datenbank erzeugen, Datenbank überprüfen, Datenbank Backup, Nutzer nach X Tagen inaktiv schalten und nach X Tagen löschen etc., habe ich ein Shell Script angelegt das soweit gut funktioniert.
Nur ich stehe momentan auf dem Schlauch, beim Einbinden der .htaccess und htpasswd Datei.
Beispiel:
Ich habe eine Abfrage im Shell Script eingebaut:
echo -e "Bitte geben Sie den Verzeichnisnamen des zu erstellenden Kunden an:"
read verzeichnis
Wenn nun das Verzeichnis erstellt wurde und die Installation abgeschlossen ist, so soll die .htaccess und die .htpasswd Datei ebenfalls für den Kunden neu erstellt werden.
Der Inhalt der .htaccess Datei soll in meinem Script selber durch eine Schleife ausgelesen werden und der Pfad zur .htpasswd Datei soll aus der Variablen $verzeichnis kommen, die ich vorher durch die Abfrage auf der Konsole eingegeben habe. Danach soll der komplette Inhalt in eine neue .htaccess Datei geschrieben werden. Beide Dateien .htaccess und .htpasswd sollen im jeweiligen Kundenverzeichnis liegen.
So in etwa (Ist nur ein Beispiel/keine Gewähr auf Richtigkeit):
while [ Bedingung ??????]
do
echo "AuthType Basic">.htaccess
echo "AuthName "Zugriff verweigert - Bitte User und Passwort eingeben"">.htaccess
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd">.htaccess
echo "Require valid-user">.htaccess
done
Danach soll dann ebenfalls die .htpasswd Datei erzeugt werden.
htpasswd -c /var/www/$verzeichnis/.htpasswd benutzername
Auch hier soll wieder die Variable $verzeichnis das neue Kundenverzeichnis sein und aus der vorherigen Abfrage durch Eingabe auf die Konsole stammen. Ich möchte das komplette Installationsszenario inklusive aller weiteren Arbeiten in einem Script verarbeiten um dann später dieses Script im Cronjob laufen zu lassen.
Ich hoffe es kann mir jemand auf die Sprünge helfen.
Mit freundlichen Grüßen
i-soft
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252298
Url: https://administrator.de/forum/shell-scripting-zum-erzeugen-und-speichern-von-htaccess-und-htpasswd-dateien-mit-variablen-verzeichnisnamen-252298.html
Ausgedruckt am: 28.04.2025 um 21:04 Uhr
5 Kommentare
Neuester Kommentar
Moin,
ich weis nicht ob ich das jetzt ganz Verstanden habe...
Ohne Gewähr
lg,
Slainte
ich weis nicht ob ich das jetzt ganz Verstanden habe...
echo -e "Bitte geben Sie den Verzeichnisnamen des zu erstellenden Kunden an:"
read verzeichnis
cat /alte/.htaccess | grep -v "AuthUserFile" > $verzeichnis/.htaccess
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd"> $verzeichnis/.htaccess
htpasswd -c /var/www/$verzeichnis/.htpasswd benutzername
Ohne Gewähr
lg,
Slainte
Hallo i-soft,
@SlainteMhath hatte nur einen Mini-Fehler
in seinem Script, es fehlte in Zeile 5 des Scripts nur ein zusätzliches > Zeichen damit die Zeile stattdessen anhängt wird :
Grüße Uwe
@SlainteMhath hatte nur einen Mini-Fehler
in seinem Script, es fehlte in Zeile 5 des Scripts nur ein zusätzliches > Zeichen damit die Zeile stattdessen anhängt wird :
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd">>$verzeichnis/.htaccess