Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Shell Scripting zum Erzeugen und Speichern von .htaccess und .htpasswd Dateien mit variablen Verzeichnisnamen und Übergabe an Cronjob zur Automatisierung.

Mitglied: i-soft

i-soft (Level 1) - Jetzt verbinden

17.10.2014, aktualisiert 18.10.2014, 1725 Aufrufe, 5 Kommentare

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
Mitglied: SlainteMhath
LÖSUNG 17.10.2014, aktualisiert 18.10.2014
Moin,

ich weis nicht ob ich das jetzt ganz Verstanden habe...
01.
echo -e "Bitte geben Sie den Verzeichnisnamen des zu erstellenden Kunden an:" 
02.
read verzeichnis 
03.
 
04.
cat /alte/.htaccess | grep -v "AuthUserFile" > $verzeichnis/.htaccess 
05.
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd"> $verzeichnis/.htaccess 
06.
 
07.
htpasswd -c /var/www/$verzeichnis/.htpasswd benutzername
Ohne Gewähr

lg,
Slainte
Bitte warten ..
Mitglied: i-soft
18.10.2014, aktualisiert um 13:14 Uhr
Hallo Slainte, liebe Community

vielen Dank für Deinen Lösungsansatz, das kommt dem schon sehr nahe. Ich habe gerade deine Lösung ausprobiert, sie funktioniert in etwa so wie es soll, nur das ich dann in der neuen .htaccess Datei eine Zeile zu stehen habe.

AuthUserFile /var/www/$verzeichnis(hier steht der Kundenverzeichnisname)/.htpasswd

Ich würde gern den kompletten Inhalt der .htaccess Datei haben wollen inklusive der oberen Zeile. Also so in etwa,

Inhalt der .htaccess Datei:

AuthType Basic
AuthName "Zugriff verweigert - Bitte User und Passwort eingeben
AuthUserFile /var/www/$verzeichnis(hier steht der Kundenverzeichnisname/.htpasswd
Require valid-user

Deswegen habe ich mir, wie oben die Lösung mit der Schleife ausgedacht, nur leider komme ich nicht drauf, da wenn ich versuche die Schleife durchlaufen zu lassen entweder ein Fehler rausgeschmissen wird bzw. er nur die letzte Zeile: Require valid-user in der neuen Datei zu stehen hat. Dann kam ich auf die Lösung das ich eine Schleife baue mit while read line.

Beispiel:

while read line
do
echo $line
done<alte-htaccess-datei

So bekomme ich alle Zeilen aus der alten Datei ausglesen, aber da funktioniert es wieder nicht mit dem variablen Verzeichnisnamen des Kunden, da nur die alte htaccess Datei durch die Schleife gejagt wird und dort ja der Inhalt 1 zu 1 übernommen wird. Meine nächster Lösungsansatz war eine for Zählschleife einer bestimmten Anzahl an Durchgängen.

z.B.

for now in 1
do
echo "AuthType Basic">htaccess
echo "AuthName "Zugriff verweigert - Bitte User und Passwort eingeben"">htaccess
echo "AuthUserFile /var/www/$verzeichnis(hier steht der Kundenverzeichnisname/.htpasswd">htaccess>htaccess
echo "Require valid-user">htaccess
done

Und wieder bekomme ich nur die letzte Zeile in der neuen Datei. Irgendwie funktioniert die Umleitung in die neue htaccess Datei nicht. Mir fehlt glaube ich noch irgendein Zusatz.

Ich freue mich auf weitere Lösungsvorschläge.

Mit freundlichen Grüßen

i-soft
Bitte warten ..
Mitglied: i-soft
18.10.2014 um 13:22 Uhr
Hallo liebe Community,

ich bin durch etwas rumprobieren selber auf eine Lösung gekommen. Es gibt vielleicht verschiedene Ansätze, hier nochmals vielen Dank an Slainte, aber meine Lösung genügt um mein Vorhaben zu realisieren.

Hier meine Lösung (als Beispiel):

echo -e "Bitte geben Sie das Verzeichnis an:"
read verzeichnis
for now in 1
do
echo "AuthType Basic"
echo "AuthName "Zugriff verweigert - Bitte User und Passwort eingeben""
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd"
echo "Require valid-user"
done>/var/www/$verzeichnis/.htaccess

Über weitere Lösungsansätze würde ich mich sehr freuen.

Mit freundlichen Grüßen

i-soft
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.10.2014, aktualisiert 20.10.2014
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 :
01.
echo "AuthUserFile /var/www/$verzeichnis/.htpasswd">>$verzeichnis/.htaccess 
Grüße Uwe
Bitte warten ..
Mitglied: i-soft
25.10.2014 um 13:31 Uhr
Hallo liebe Comunity,

ich habe nun auf der Arbeit das Script benendet und es funktioniert einwandfrei. Auch hier nochmals vielen Dank an colinardo für den Hinweis.

Vielen Dank an alle.

Grüße

i-soft
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Übergabe der Variablen bei Call funktioniert nicht

gelöst Frage von SupidoBatch & Shell2 Kommentare

Hallo, ich komme mit menem untenstehnden Code nicht weiter. In :install bekomme ich nicht die richtigen Variablen ("%Pathdriver%" "%Printername%") ...

JavaScript

Übergabe einer php-Variable an JS

Frage von Rabauke84JavaScript1 Kommentar

Hallo zusammen, ich hab eine Problem mit einer Übergabe einer Variable in php an JS. Dazu hab ich ein ...

Batch & Shell

Powershell - übergabe von Variablen

gelöst Frage von complexBatch & Shell7 Kommentare

Moin zusammen! ich habe ein kleines Problem mit der Übergabe von Variablen (Achtung bin Powershell-Neuling) Ich möchte eine Read-Host ...

Batch & Shell

Variable in Makefile durch Shell Command

gelöst Frage von nico1999Batch & Shell2 Kommentare

Guten Tag, ich habe ein Makefile namens $(ANDROID_BUILD_TOP)/vendor/beanstalk/config/common.mk, in das ich genau eine einzige Variable namens USE_SU aus einem ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing20 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware11 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement10 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...