Datei nach dem Befehl chmod in / var / www / html noch nicht beschreibbar


2

Ich habe Probleme beim Versuch, einige Anwendungen auf meinem Linux-System zu installieren. Es heißt, dass die Dateien in meinem / var / www / html / xxx-Verzeichnis, in dem ich sie abgelegt habe, nicht beschreibbar sind. Es chmod 777 xxxwurde versucht, den Befehl zum Laufen zu bringen, aber der Fehler bleibt bestehen, wenn ich die Anwendungen erneut öffne.

Um genau zu sein, möchte ich phpFreeChat auf meinem System installieren, so hatte ich diese Dateien im Verzeichnis / var / www / html / Kostenloses Chat - Verzeichnis, cddort und getippt chmod 777 data/private, chmod 777 data/publicauf bash. Hier ist das Ergebnis von list -al data:

drwxr-xr-x.  4 root root 4096  Jun 17 15:07 .
drwxr-xr-x. 13 root root 4096  Jun 17 15:22 ..
drwxrwxrwx.  2 root root 4096  Jun 17 15:07 private
drwxrwxrwx.  3 root root 4096  Jun 17 15:07 public

Dies alles schien mir in Ordnung zu sein, bis ich http://localhost/freechatmeinen Browser eintippte. Hier ist das Ergebnis:

phpFreeChat kann nicht initialisiert werden, bitte korrigieren Sie diese Fehler:

/var/www/html/freechat/src/../data/private ist nicht beschreibbar /var/www/html/freechat/src/../data/private/cache kann nicht erstellt werden / var / www / html /freechat/src/../data/private/cache ist nicht beschreibbar /var/www/html/freechat/src/../data/private/cache ist nicht lesbar kann / var / www / html / freechat / src nicht erstellen /../data/public/themes/default kann /var/www/html/freechat/src/../data/public/themes/default /var/www/html/freechat/src/../data/ Privat / Chat kann nicht erstellt werden /var/www/html/freechat/src/../data/private/chat ist nicht beschreibbar /var/www/html/freechat/src/../data/private/chat ist nicht lesbar /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada kann nicht erstellt werden / var / www / html / freechat / src / ../ data / private / chat / s_d0ba868e1391b6c0d897996049a68ada ist nicht beschreibbar /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada ist nicht lesbar

Ich bin ziemlich verwirrt, weil diese Situation nicht nur bei der Installation dieser Anwendung, sondern bei allen aufgetreten ist. Fehler müssen von mir gemacht werden, aber was ist das?


Chmod 777 zu machen ist falsch. Ich schlage vor, dass Sie sich die Verzeichnisse mod_userdir und user ansehen.
vtest

Antworten:


1

Dieses Problem wurde durch einen Befehl setenforce 0behoben, der SELinux beenden würde.

Wie albern ich bin! Ich habe nie über dieses Zeug nachgedacht.

Danke Flimzy und njd trotzdem.


0

Sie müssen ein rekursives chmod ausführen, um alle Dateien und Unterverzeichnisse in data / private und data / public zu beeinflussen:

chmod -R 777 /var/www/html/freechat/private
chmod -R 777 /var/www/html/freechat/public

Allerdings sollten Sie NICHT den Modus 777 verwenden. Insbesondere, wenn auf diesem Server ein anderer Benutzer als Sie über ein Anmeldekonto verfügt. 777 steht für world read-, write- und executable. Grundsätzlich kann jeder Benutzer auf Ihrem System diese Dateien lesen, schreiben, löschen oder auf andere Weise in Unordnung bringen.

Zumindest sollten Sie dies in den Modus 774 ändern, was bedeutet, dass nur der Benutzer und die Gruppe (die beide im Moment root sind) die Dateien schreiben können, aber jeder Benutzer sie lesen kann.

Im Idealfall würden Sie auch die Dateien alle dem gleichen Nicht-Root-Benutzer gehören lassen, der die freechat-Software ausführt, und nur diesem Benutzer / dieser Gruppe Lese- / Schreibrechte erteilen.

Ändern Sie mindestens Ihren Modus auf 770, sodass nur der Root-Benutzer und die Root-Gruppe über die entsprechenden Zugriffsrechte verfügen


Danke, aber der Fehler bleibt bestehen, auch wenn ich die rekursive Methode verwende, um den Modus 777 zu
aktivieren.

chmodIhnen hat entweder der Befehl nicht funktioniert, weil Sie ihn als normaler Benutzer und nicht als root ausgeführt haben; oder Sie müssen sicherstellen, dass die vorhergehenden Verzeichnisse (/ var / www / html / freechat und so weiter bis /) von jedem Konto, das für den httpd-Dienst verwendet wird, mindestens durchsuchbar sind (Flag ausführen).
NJD

Es gibt einen Grund zu der Annahme, dass der chmodBefehl für diese Verzeichnisse tatsächlich funktioniert drwxrwxrwx, es sei denn, er hat ls -almich betrogen. :)
lastland

Und ich habe versucht, chowndiese Verzeichnisse zu apache.apache, die von festgelegt wird /etc/httpd/conf/httpd.conf. Das Ergebnis hat sich nicht zuletzt geändert.
Lastland

0

Wenn Sie sich die Berechtigungen für jedes Verzeichnis ansehen:

ls -ld / /var /var/www /var/www/html /var/www/html/freechat

und beachten Sie die erste Spalte, Sie sollten Zeilen sehen, die wie folgt beginnen:

drwxr-xr-x  

Zumindest sollte am Ende der ersten Spalte ein x stehen : Ohne das kann der Webserver nicht auf den Inhalt des Freechat-Verzeichnisses zugreifen.

Möglicherweise müssen Sie es also tun

chmod o+x /var/www/html

und sogar

chmod o+x /var/www

dr-xr-xr-xist das /Verzeichnis und drwxr-xr-xsind die anderen. In keinem Verzeichnis fehlt ein x .
Lastland

0

Der richtige Weg dies zu tun, ohne SE zu töten, ist dies zu tun

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/freechat/data(/.*)'

restorecon -R / var / www / html / freechat / data Schnelle Erklärung:

Das erste Bit besagt: "Jedes Element, das mit / var / www / html / freechat / data beginnt, sollte den Standardkontext 'httpd_sys_rw_content_t' haben."

Die andere sagt: "Setze alle Kontexte in den Dateien / Verzeichnissen in httpd_sys_rw_content_t (rekursiv) auf die Standardwerte (die gerade geändert wurden)."

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.