Ria
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo Ubuntuianer, ich bekomme irgendwie ein Grundsatzproblem nicht in den Griff, irgendwie habe ich diese Woche eine Serie. "You don't have permission to access on this server." die Log: [error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.html denied
[error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.cgi denied
[error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.pl denied
[error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.php denied
[error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.xhtml denied
[error] [client 127.0.0.1] (13)Permission denied: access to /riaweb2/index.htm denied nochmal meine Rechtevergaben, die ich durchprobiert habe: sudo chmod 0775 /var/www/
sudo chgrp -R www-data /var/www
sudo adduser ria www-data
sudo a2ensite riaweb2
Site riaweb2 already enabled
sudo /etc/init.d/apache2 restart
[ OK ]
sudo find /var/www/riaweb2/ -type d -exec chmod 755 {} +
sudo find /var/www/riaweb2/ -type f -exec chmod 644 {} +
sudo /etc/init.d/apache2 restart
[ OK ] das verfolgt mich schon tagelang, leider glaube ich schon mehrmals alles versucht zu haben, anscheinend fehlt mir da was an Wissen, was mache ich jetzt bloß am besten? Gruss Ria
|
venty
Anmeldungsdatum: 23. August 2009
Beiträge: 123
Wohnort: Wien
|
Schau dir nochmal chmod an, und dann ändere die Rechte auch für die Dateien im Ordner.
|
Ria
(Themenstarter)
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo venty, ja danke, dies hier hat erstmal geholfen: sudo find /var/www/riaweb2/ -type d -exec chmod 755 {} +
sudo find /var/www/riaweb2/ -type f -exec chmod 644 {} + das hat ja auch gereicht bei den anderen Webseiten in /www, inzwischen habe ich diese Webseite + DB gelöscht gehabt und installiere neu. Mein Fehler ist wohl, dass ich nach kopie Aktionen usw. sudo find nicht neu ausführe. Dachte, wenn der data-user einmal gesetzt ist, brauche ich das nicht mehr. Verstehe ich das jetzt richtig, lösche ich was und kopiere z.B. von einem USB Stick (FAT) etwas wieder rein, dann muß die "Rechtearie" wiederholt werden? Gruss Ria
|
John_W
Anmeldungsdatum: 10. Juli 2010
Beiträge: 571
|
Tipp von mir: Statt ellenlangen find-Aufrufen in dem Falle einfach
chmod -R u=rwX,og=rX verzeichnis
Das X setzt die Berechtigung zum Ausführen nur für Verzeichnisse, Dateien bekommen das Flag nicht.
Verstehe ich das jetzt richtig, lösche ich was und kopiere z.B. von einem USB Stick (FAT) etwas wieder rein, dann muß die "Rechtearie" wiederholt werden?
Ja, FAT kennt die Berechtigungen der ext-Dateisysteme nicht.
|
Ria
(Themenstarter)
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo John W, habe ich nicht hiermit schon die Berechtigung für das Verzeichnis: sudo chmod 0775 /var/www/
sudo chgrp -R www-data /var/www
sudo adduser ria www-data und /var/www/riaweb2/ (riaweb2 ist kein Verzeichnis sondern der Webseitenordner) da ich riaweb2 aber von einem USB kopiert habe:
Ja, FAT kennt die Berechtigungen der ext-Dateisysteme nicht.
dann war das ja der "Fehler". Nützt es was den USB Stick zu formatieren, also statt FAT ext4? Gruss Ria
|
John_W
Anmeldungsdatum: 10. Juli 2010
Beiträge: 571
|
habe ich nicht hiermit schon die Berechtigung für das Verzeichnis
Du hast die Berechtigung, aber die Frage war ja offenbar: Hat der Webserver die auch? Wenn der Server das nicht lesen kann, hagelt es 403en. (zumindest hab ich das Problem so verstanden). Nützt es was den USB Stick zu formatieren, also statt FAT ext4?
Schon, aber ext4 kannst du nicht auf Windows-Systemen öffnen. Andere Idee: Die Dateien in einen anderen Ordner, der per bindfs auf /var/www/ zeigt, kopieren und bindfs die Arbeit mit den Berechtigungen machen lassen. Dazu müsstest du z.B. Folgendes in der fstab eintragen:
bindfs#/var/www /home/ria/var_www/ fuse user=ria,create-for-user=www-data,create-for-group=www-data 0 0
Damit werden alle Dateien und Ordner deinem Benutzer und der Gruppe www-data virtuell im Verzeichnis /home/ria/var_www/ gegeben. Das sollte dann so auch mit dem Kopieren klappen. Vorsicht: Wenn der Bindfs-Mount fehlschlägt, bleibt dein System beim Booten stecken - ich such selbst noch nach einer Möglichkeit, das anders als über noauto in den Optionen zu lösen, aber nofail failed da leider doch...
|
Ria
(Themenstarter)
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo John W, bitte, bitte noch mal zurück hierhin:
Du hast die Berechtigung, aber die Frage war ja offenbar: Hat der Webserver die auch?
ja dies Problem bekomme ich immer wieder mal und bekomme es nicht geregelt! Ich habe keine Info dazu, wie (womit)gebe ich dem Webserver die Berechtigung? das hier: chmod -R u=rwX,og=rX verzeichnis soll ja der Ersatz für den find Befehl sein, anstelle Verzeichnis meinst Du /var/www? Gruss Ria
|
John_W
Anmeldungsdatum: 10. Juli 2010
Beiträge: 571
|
Ja, der Befehl setzt die Berechtigungen in einem Rutsch für Verzeichnisse auf 755 und für Dateien auf 644. Der Server kann die Dateien nur schreiben, wenn die Dateien ihm (= dem Benutzer www-data) auch gehören - das wird vermutlich nicht gebraucht, wenn doch, kannst du den Benutzer so setzen:
# Für Dateien:
sudo chown www-data:www-data datei
# Für Verzeichnisse:
sudo chown -R www-data:www-data verzeichnis
|
Ria
(Themenstarter)
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo John W, danke für Deine Geduld mit mir. Verstehe trotzdem noch was nicht:
Der Server kann die Dateien nur schreiben, wenn die Dateien ihm (= dem Benutzer www-data) auch gehören
hmm, der Webserver braucht nicht die Berechtigung sondern der Benutzer www-data? Das ist erst mal für mich verwirrend, dachte 1x der Server und einmal der Benutzer, also der Server hat die Berechtigung dann automatisch, wenn der Benutzer www-data die Rechte erhalten hat? und: sudo chown -R www-data:www-data verzeichnis wie schreibt sich das "Verzeichnis" nur www oder /var/www ? Gruss Ria
|
John_W
Anmeldungsdatum: 10. Juli 2010
Beiträge: 571
|
Der Server läuft unter dem Benutzerkontext www-data und besitzt somit alle Rechte dieses Benutzers. Der Start des Servers sieht etwa so aus: sudo -u www-data server - sudo ohne Benutzerangabe per -u Benutzer führt ein Programm unter dem Benutzerkontext (und deshalb mit den Rechten) von root aus (das ist auch der Grund, warum man sich nicht als root am System anmelden soll - man dürfte alles kaputt machen, da alle Programme, die man startet, alle Rechte bekämen).
wie schreibt sich das "Verzeichnis" nur www oder /var/www ?
In diesem Falle /var/www. Pfade sind immer entweder absolut (wie /, /var und /var/www) oder relativ (wie Desktop, Downloads/Dokumente ; oder kurz: Alles ohne Slash am Anfang ist relativ). Du könntest z.B. entweder
sudo chown -R www-data:www-data /var/www
machen oder auch
cd /var # "change directory", also Verzeichnis wechseln
sudo chown -R www-data:www-data www
Beide Wege führen zum Ziel.
|
Ria
(Themenstarter)
Anmeldungsdatum: 4. August 2009
Beiträge: 948
|
Hallo John W, ja danke nochmal. Werde mir das mal extra kopieren (+ausdrucken). Glaube dies ist die größte Falle für Linuxanfänger, plötzlich "irgendwo" keine Berechtigungen mehr zu haben (die man vorher hatte). Obwohl man glaubt den richtigen Code schon benutzt zu haben. Ich denke jetzt habe ich es endgültig intus. Hat ja lange genug gedauert. Gruss Ria
|