Das Linux-Dateisystem scheint Schichten und Schichten von Subtilität zu haben, über die ich von Fall zu Fall stolpere:
Ich möchte diese Datei bearbeiten:
[[email protected] ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x 1 user user 144529 Jan 26 2018 /a/b/c/foo.bar
Es sieht so aus, als ob es von Benutzer user
beschreibbar sein sollte - wahr? Aber wenn ich versuche, die Datei in vim zu bearbeiten, erhalte ich eine „W10: Warning: Changing a readonly file
” Warnung.
Ich weiß, dass die Beschreibbarkeit von Dateien von den Berechtigungen des enthaltenden Ordners abhängt. Ich denke, der enthaltende Ordner muss eine Ausführungsberechtigung haben – stimmt das? Ich gehe davon aus, dass die erforderliche Verzeichnisberechtigung auch bis zu /
reicht – wahr?
Es sieht für mich so aus, als hätte der enthaltene Ordnerbaum der notierten Datei Ausführungsberechtigungen:
[[email protected] ~]$ ls -ld /a/b/c/
drwxrwxrwx 2 user user 36864 Mar 5 17:50 /a/b/c/
[[email protected] ~]$ ls -ld /a/b/
drwxrwxr-x 4 user user 4096 Sep 22 2017 /a/b/
[[email protected] ~]$ ls -ld /a/
drwxrwxr-x 9 user user 4096 Sep 15 2017 /a/
[[email protected] ~]$ ls -ld /
drwxr-xr-x 24 root root 0 Aug 24 10:48 /
[[email protected] ~]$ whoami
user
Soweit ich das oben erkennen kann, hat jedes Verzeichnis im relevanten Baum Ausführungsberechtigungen. Zuerst war ich misstrauisch, ob es mit /
zu tun hat im Besitz von root
, hat aber die Ausführungsberechtigung für „andere“. Plus, wenn es Probleme im Zusammenhang mit /
gab im Besitz von root
, stelle ich mir vor, ich hätte Probleme, Dateien irgendwo im Dateisystem als ein anderer Benutzer als root
zu schreiben , aber das ist nicht der Fall.
Kann sich jemand andere Gründe vorstellen/identifizieren, warum die angegebene Datei als schreibgeschützt gilt?
Akzeptierte Antwort:
Zuerst – Sie sind mit unveränderlichem Flag gesetzt
chattr -i yourfilename
Wenn das unveränderliche Flag gesetzt ist, können Sie die Datei nicht ändern. Denken Sie daran, dass Berechtigungen dieses Verhalten nicht überschrieben haben!
Zweitens Überprüfen Sie, ob das Verzeichnis, in dem sich die Datei befindet, auf einer anderen Festplatte oder Partition eingehängt ist , als schreibgeschützt, geben Sie dafür einfach ein:
mount
(ohne Argumente)
Wenn Sie so etwas wie Ihr Verzeichnis als schreibgeschützt gemountet sehen, gibt es den Grund! Remounten Sie es als Read-Write, um Glück zu haben!
Dritter – und am häufigsten , führen Sie gerade ein Dateisystem mit Fehlern aus , um das zu korrigieren, müssen Sie so viel wie möglich sichern, neu starten, sich dann im Einzelmodus anmelden und Folgendes ausführen:
mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)
(ext4 muss möglicherweise auf Ihren Partitionstyp geändert werden)
Viel Glück!
Verwandte:Benutzer- und Kernelzeit eines laufenden Prozesses abrufen?