Zur Navigation

neue gruppen in htgroups erzeugt und Access geht nicht mehr

1 Andreas Müller (Gast)

Hallo zusammen,
nachdem ich mit meinen Basicskills meinen Zugang zu Webportal https://www.quartettportal.de seit 2018 mit htaccess regle, bin ich heute auf ein Problem gestoßen, was sicherlich an meinen "Basicsklills" liegt :-O. Bis heute sah meine .htaccess wie folgt aus

#.htaccess-Datei fuer Web-Verzeichnis /quartettportal.de
### BEGIN BASIC BLOCK

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} quartettportal\.de$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

### Aktivieren der Bedingung
Options +MultiViews
Options -Indexes

### Bestimmte IP-Adressen sperren
# order allow,deny
### Einzel-IP Adressen sperren
# deny from 192.168.2.17
# deny from 10.10.20.63
### Ganze Subnetze sperren
# deny from 213.154.63
# allow from all

AuthType Basic
AuthName "Login fuer authorisierte Benutzer"
# AuthName "Login for registered users only"
AuthUserFile /unheimlicherpfad/.htusers
AuthGroupFile /unheimlicherpfad/.htgroups
Require user
Require group admin public temp

### END BASIC BLOCK

Die dazugehörige .htgroups war so aufgebaut

#.htaccess-Gruppendatei fuer quartettportal.de
admin: ich
temp:
public: sowares zuanfang gedacht usw. mit x Usernamen

Da ich das Ganze dann mit
Require group admin public2018_10 public2019_11 public2020_12 public2021_13 public2022_14 temp

und die .htgroups mit

#.htaccess-Gruppendatei fuer quartettportal.de
admin: immernochich
temp:
public2018_10: sosollte esdann aussehen zeilenumbruch\
public2019_11: ebenalles uebersichtlich gemacht\
public2020_12: test nocheintest letztertest\
public2021_13: fachsimpel codekenner nixblicker\
public2022_14: ehefrau tochter

ein wenig übersichtlicher gestalten wollte, bin ich erst mal wieder auf den Boden der Tatsachen zurück geholt worden. Ab sofort war kein Access mehr möglich. Entferne ich die Zahlen und reduziere es auf eine Gruppe public, dann geht es auch sofort wieder.

Worin liegt mein Irrtum oder der Kardinalsfehler den ich begehe?

Vielen Dank für eure Hilfe und Unterstützung
Andreas

10.03.2022 18:00

2 Jörg Kruse

#.htaccess-Gruppendatei fuer quartettportal.de
admin: immernochich
temp:
public2018_10: sosollte esdann aussehen zeilenumbruch\
public2019_11: ebenalles uebersichtlich gemacht\
public2020_12: test nocheintest letztertest\
public2021_13: fachsimpel codekenner nixblicker\
public2022_14: ehefrau tochter

Die \ am Zeilenende sind hier m.E. fehl am Platz. Der Backslash sorgt ja dafür, dass die Umbrüche nicht als solche interpretiert werden. Jede Gruppe muss aber effektiv in einer eigenen Zeile stehen, so wie das bei admin und temp auch der Fall ist.

10.03.2022 18:41

3 derilzemer

Zitat von Jörg
Die \ am Zeilenende sind hier m.E. fehl am Platz. Der Backslash sorgt ja dafür, dass die Umbrüche nicht als solche interpretiert werden. Jede Gruppe muss aber effektiv in einer eigenen Zeile stehen, so wie das bei admin und temp auch der Fall ist.

Damit hast du recht. Ich habe erst mal so umgestellt

.htaccess
Require group admin public public2018_10 temp

.htgroups
#.htaccess-Gruppendatei fuer quartettportal.de
admin: wiederich
temp:
public2018_10: eine Menge wie User1 User2 User 3 User4 etc.
public: eine noch groessere Menge wie User1 User2 User 3 User4 etc.

Ich habe die \ am Zeilenende weggelassen, also pro Gruppe KEINEN Zeilenumbruch. Darauf ging der Login auch tadellos. Ergo bin ich hingegangen und wollte dann eine weitere Gruppe hinzufügen

.htaccess
Require group admin public public2018_10 public2019_11 temp

.htgroups
#.htaccess-Gruppendatei fuer quartettportal.de
admin: wiederich
temp:
public2018_10: eine Menge wie User1 User2 User 3 User4 etc.
public2019_11: noch eine Menge wie User1 User2 User 3 User4 etc.
public: jetzt eine etwas kleinere Menge wie User1 User2 User 3 User4 etc.

Auch hier habe ich die \ am Zeilenende weggelassen, also pro Gruppe KEINEN Zeilenumbruch, keine Spaces am Ende etc. Jetzt ging der Login nicht mehr :-(. Die EIngabeaufforderung für Username und Passwort poppt sofort wieder auf. Grundsätzlich müsste ich da ja ohne Problem N Gruppen anlegen können, richtig? Noch eine Idee?

mfG
Andreas



10.03.2022 21:15

4 Jörg Kruse

Ich habe die \ am Zeilenende weggelassen, also pro Gruppe KEINEN Zeilenumbruch.

Andersrum: Durch das Weglassen des Backslashs wird der Umbruch tatsächlich als Umbruch interpretiert, womit die Gruppe ihre eigene Zeile hat.

Mithilfe des Backslash könntest du aber eine Gruppe optisch auf mehrere Zeilen verteilen:

group1: user1 user2 user3 \
        user4 user5 user6
group2: user7 user8 user9 \
        user10

Ich nehme an, von so einem Fall hast du den Backslash übernommen?

Noch eine Idee?

Hast du Zugriff auf das Errorlog des Webservers?

10.03.2022 22:14

1 Forenmitglied fand diesen Beitrag gut

5 derilzemer

Zitat von Jörg

Mithilfe des Backslash könntest du aber eine Gruppe optisch auf mehrere Zeilen verteilen:

group1: user1 user2 user3 \
        user4 user5 user6
group2: user7 user8 user9 \
        user10

Ich nehme an, von so einem Fall hast du den Backslash übernommen?

Ja, der Meinung war ich ja auch und hab das auch genauso praktiziert, nur habe ich keinen Space zwischen dem \ und dem Usernamen. So habe ich aktuell auch eine funktionale htgroups

#.htaccess-Gruppendatei fuer quartettportal.de
admin: immernochich
temp:
public2018_10: user1 user2 user3 user4 usw. (kein Space oder Zeilenumbruch am Ende)
public: userx userxyz useru userv userw\ (hier ein Zeilenumbruch am Ende)
user35 user36 user37 user38 (kein Space oder Zeilenumbruch am Ende der umgebrochenen Zeile)

Das funktioniert! Mache ich dann folgende Konstellation:

#.htaccess-Gruppendatei fuer quartettportal.de
admin: immernochich
temp:
public2018_10: user1 user2 user3 user4 usw. (kein Space oder Zeilenumbruch am Ende!!)
public2019_11: userx userxyz useru userv userw usw. (kein Space oder Zeilenumbruch am Ende!!)
public: user35 user36 user37 user38 usw. (auch kein Space oder Zeilenumbruch am Ende!!)

Schluß mit lustig und ich bekomme einen Unauthorized :-(. Verstehen tue ich das ganze nicht bzw. kann da keine Logik hinter sehen.

Hast du Zugriff auf das Errorlog des Webservers?

Ich kann allerlei Logdateien einsehen für http, ftp etc. aber keine Access-Logins, zumindest habe ich keine gefunden.
Ich habe meinem Provider jetzt das Problem wie hier kurz geschildert und ihm eine Uhrzeit der Loginversuche mitgegeben. Schauen wir mal was er spricht oder sieht.

mfG
Andreas

11.03.2022 00:58

6 derilzemer

Hi,

folgendes hat mir der Provider geschrieben:

Log-Einträge gibt es nur bei syntaktischen Fehlern in der .htaccess, die dann einen 500er Error produzieren.
Leider kann ich Ihnen bei dem Problem oben nicht konkreter weiterhelfen, da müssten Sie ggf. selbst noch weiter experimentieren.
Ansonsten finden Sie die offizielle Doku auch hier:
https://httpd.apache.org/docs/2.4/howto/auth.html

Ergo passt das alles was den Syntax angeht :-(. Die Apache Doku sagt mir persönlich nichts neues oder etwas, was mir den Fehler zeigt den ich begehe :-(.

mfg
Andreas

11.03.2022 09:21

7 Jörg Kruse

public2018_10: user1 user2 user3 user4 usw. (kein Space oder Zeilenumbruch am Ende)
public: userx userxyz useru userv userw\ (hier ein Zeilenumbruch am Ende)
user35 user36 user37 user38 (kein Space oder Zeilenumbruch am Ende der umgebrochenen Zeile)

Nur nochmal zur Klarstellung: ein Backslash ("\") am Ende einer Zeile produziert keinen Zeilenumbruch, sondern verhindert im Gegenteil, dass der Zeilenumbruch als solcher interpretiert wird.

Am besten lass die Backslashes erst einmal ganz weg, so dass die Usernamen einer Gruppe jeweils in einer Zeile stehen, auch wenn diese dann überlang werden. Wenn das funktioniert, hast du vermutlich die Backslashes falsch gesetzt. Andernfalls liegt der Fehler wohl woanders.

Problematisch kann es auch sein, wenn die .htgroups Datei Windows- statt Unix-Umbrüche enthält oder ein Durcheinander davon.

11.03.2022 10:47

8 derilzemer

Hallo Jörg,
es hat sich nochmal etwas getan in der Sache. Ich hatte ja jetzt folgende funktionale Konstellation (dachte ich)

public2018_10: user1 user2 user3 user4 usw. (kein Space oder Backslash am Ende)
public: userx userxyz useru userv userw\ (hier ein Backslash am Ende um den Zeilenumbruch zu verhindern ;-) ..)
user35 user36 user37 user38 (kein Space oder Backslash am Ende)

Ich hatte dann ohne größer darauf zu achten 3-4 User zum testen genutzt, womit der Zugriff auch ging. Heute haben sich 2 User gemeldet, die nicht mehr gingen. Der Zugriff mit den Testuser, die ich gestern abend genutzt hatte ging immer noch. Nun habe ich noch einmal genaue rhingeschaut und gesehen, dass die beiden User sich in der Gruppe public2018_10 befinden! Ich habe dann schnell wieder wie folgt umgebaut, damit das erst mal wieder geht:

public: user1 user2 user3 user4\ (Backslash am Ende)
user20 user21 user23 user24 userx userxyz useru userv userw\ (hier auch ein Backslash am Ende)
user35 user36 user37 user38 user65 user67 user68 user69 (kein Space oder Backslash am Ende)


Die htaccess habe ich natürlich auch wieder entsprechend auf
Require group admin public temp
angepasst. Jetzt gehen alle User wieder.

Nach dem Vorfall liegt das Problem eindeutig im Gruppennamen public2018_10 wenn ich das richtig verstehe.
Hat der _ eine tiefere Bewandnis? Das muss ich heute am späten Abend mal testen.

Nun noch zu deinen Anmerkungen
Nur nochmal zur Klarstellung: ein Backslash ("\") am Ende einer Zeile produziert keinen Zeilenumbruch, sondern verhindert im Gegenteil, dass der Zeilenumbruch als solcher interpretiert wird.

Ich habe mich da natürlich nicht präzise ausgedrückt, aber das genau so gmeint wie du es beschreibst, sorry dafür.

Am besten lass die Backslashes erst einmal ganz weg, so dass die Usernamen einer Gruppe jeweils in einer Zeile stehen, auch wenn diese dann überlang werden. Wenn das funktioniert, hast du vermutlich die Backslashes falsch gesetzt. Andernfalls liegt der Fehler wohl woanders.

Die Backslashes machen genau das wofür sie gesetzt sind, das kann ich aktuell auch als funktional bestätigen. Das Problem sehe ich halt in der Benamung der Gruppe, es sei denn du siehst das völlig unkritisch was den _ angeht.

Problematisch kann es auch sein, wenn die .htgroups Datei Windows- statt Unix-Umbrüche enthält oder ein Durcheinander davon.

Dafür nutze ich den Sublime Editor, also schon professionellen Editor, der dann Maschinenzeichen etc. gleich entfernt sofern da irgendwie reinkommen oder drin sind.

Gruß Andreas

11.03.2022 15:11

9 derilzemer

Ich habe jetzt mal eien Test machen können. Dazu habe ich die Gruppe public2018_10 mit public2018 benannt und einen User darein gestopft.
Ergebnis ==> geht trotzdem nicht!
Ich habe dann public2018 in zwanzigachtzehn umbenannt
Ergebnis ==> geht auch nicht!
Ich habe den User in die vorhandene, leere Gruppe temp verschoben
Ergebnis ==> geht auch nicht! (Gruppe ist also für den Allerwertesten :-O)
Jetzt habe ich ja noch die Gruppe admin mit dem User Sysadmin, der geht auch. Den Test-User da rein geschoben
Ergebnis ==> geht!

Jetzt werde daraus mal schlau was da abgeht, frei nach dem Motto finde den Fehler! Any other hints?

Gruß Andreas

11.03.2022 15:47

10 Jörg Kruse

Das riecht für mich danach, dass die Datei verschiedene Umbrüche (Windows vs. Unix) enthält. Schau dir die Datei mal mit einem Hex-Editor an.

11.03.2022 16:24