
Ich habe Probleme mit den Dateiberechtigungen auf einem Ubuntu-Server. Ich verwende WinSCP, um Dateien auf den Server zu verschieben. Der Server funktioniert einwandfrei, aber nach einer Weile scheint es, als hätte ich keine Berechtigung mehr, eine Datei zu löschen.
Ich verbinde mich mit dem Server über ein Konto namenssvadmin, und das Stammverzeichnis des Apache-Servers ist/var/www. Jede Website hat ihr eigenes Verzeichnis darunter - d.h.
/var/www/site1
/var/www/site2
Dies ist die Ausgabe des Befehls ls ...
cd /var/www
ls -al
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 .
drwxr-xr-x 15 root root 4096 2009-05-05 15:47 ..
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site1
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site2
Nach meinem Verständnis bedeutet dies, dass der Verzeichnisbesitzer über Lese-/Schreib-/Ausführungsrechte verfügt? Wenn ich mich mit dem Svadmin-Konto mit dem Server verbinde, sollte ich dann nicht in der Lage sein, Dateien in /var/www/site1 oder /var/www/site2 zu überschreiben oder zu löschen?
Ich bin mit den Datei-/Verzeichnisberechtigungen unter Linux nicht sehr vertraut und habe daher Schwierigkeiten herauszufinden, was ich tun soll. Für jede Hilfe wäre ich sehr dankbar!
Weitere Informationen: (danke für die schnellen Antworten!)
Ausgabe von ls -al für /var/www/site1
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 .
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 ..
-rw-r--r-- 1 svadmin svadmin 157 2009-05-12 13:23 error.php
-rw-r--r-- 1 svadmin svadmin 158 2009-05-12 13:23 .htaccess
-rw-r--r-- 1 svadmin svadmin 142 2009-05-12 13:23 index.php
drwxr-sr-x 2 svadmin svadmin 4096 2009-05-12 18:40 libraries
Fehlermeldung beim Versuch, die Datei zu löschen:
rm admin.php
rm: cannot remove 'admin.php' : Read-only file system
Noch mehr Infos Nur um einige möglicherweise relevante Informationen hinzuzufügen … bis gestern Nachmittag funktionierte alles. Zu diesem Zeitpunkt entfernte ein Kollege das SAN, auf dem sich die virtuelle Maschinendatei befand, und der Webserver wurde nicht gerade reibungslos heruntergefahren.
Antwort1
Dies ist kein Berechtigungsproblem. Die beiden Hinweise sind:
- rm: „admin.php“ kann nicht entfernt werden: Nur-Lese-Dateisystem
- bis gestern Nachmittag hat alles funktioniert. Dann hat ein Kollege das SAN entfernt, auf dem sich die virtuelle Maschine befand, und der Webserver wurde nicht gerade reibungslos heruntergefahren.
Irgendwie wurde das Dateisystem mit /var/www auf "schreibgeschützt" zurückgesetzt, wahrscheinlich als das SAN verschwand. Die Ausgabe des mount
Befehls sollte dieses Dateisystem mit einem (ro)-Flag am Ende identifizieren.
Die Lösung besteht darin, herauszufinden, warum es passiert ist, sicherzustellen, dass es behoben ist, und das Dateisystem RW mit diesem Befehl erneut zu mounten:
mount -oremount,rw $filesystem
Antwort2
Wenn Sie rwx in einem Verzeichnis haben, bedeutet das, dass Sie die Verzeichnisdatei bearbeiten können, was dem Entfernen und Hinzufügen von Dateien gleichkommt. Das Bearbeiten von Dateien hängt von ihren individuellen Berechtigungen ab. Wie sieht ein ls -l eines der Unterverzeichnisse aus?
Antwort3
Ihr Problem ist der klebrige Teil. Beachten Sie, dass die Dauerwellen dort nicht sind drwxr-xr-x
, sondern sind drwxr-sr-x
. Wikipedia sagt:
Die häufigste Verwendung des Sticky Bits findet sich heute in Verzeichnissen. Wenn es gesetzt ist, können Elemente im Verzeichnis nur vom Eigentümer des Elements, dem Eigentümer des Verzeichnisses oder dem Superuser umbenannt oder gelöscht werden. Ohne gesetztes Sticky Bit kann jeder Benutzer mit Schreib- und Ausführungsberechtigung für das Verzeichnis enthaltene Dateien umbenennen oder löschen, unabhängig vom Eigentümer. Normalerweise wird dies im Verzeichnis /tmp gesetzt, um zu verhindern, dass normale Benutzer Dateien anderer Benutzer löschen oder verschieben. Diese Funktion wurde 1986 in 4.3BSD eingeführt und ist heute in den meisten modernen Unix-Systemen zu finden.
Dateien können daher nur von der Gruppe geschrieben und gelöscht werden, die sie ursprünglich dort abgelegt hat.