Überprüfen Sie vom Root-Benutzer aus die Dateiattribute
# lsattr
wenn Sie i
bemerken (unveränderlich) oder a
(nur Anhängen), entfernen Sie diese Attribute:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
Der häufigste Grund für rm
sich darüber beschweren, dass Sie keine Berechtigung zum Löschen einer Datei haben, besteht darin, dass die Berechtigungen für das Verzeichnis es Ihnen verbieten, die Datei zu löschen. Um eine Datei zu löschen, benötigen Sie Schreibrechte für das Verzeichnis. Die Berechtigungen für die Datei sind irrelevant (rm
ohne -f
fordert zur Bestätigung auf, bevor eine schreibgeschützte Datei gelöscht wird, aber das ist nur eine Bestätigung, keine Einschränkung). Bei einigen Unix-Varianten wie OSX (aber nicht Linux) kann die ACL einer Datei deren Löschung verhindern; ls -l
würde @
anzeigen am Ende des Berechtigungsfelds, wenn es einen ACL-Eintrag für die Datei gab.
Der Zugriff als Root umgeht Berechtigungen, sodass Root Dateien auch in einem schreibgeschützten Verzeichnis löschen kann.
Die Ausgabe von ls -l
zeigt eine .
am Ende der Berechtigungsspalte. Dies weist darauf hin, dass die Datei einen SELinux-Sicherheitskontext hat. Im Gegensatz zu grundlegenden Berechtigungen und ACL kann der SELinux-Sicherheitskontext für eine Datei steuern, wer sie löschen darf. Darüber hinaus kann SELinux nicht immer von root umgangen werden (es ist möglich, dass ein Prozess mit der Benutzer-ID 0 läuft, aber mit so wenigen Rechten, wie der SELinux-Richtliniendesigner ausgewählt hat). Um zu sehen, was der SELinux-Kontext Ihnen ermöglicht, führen Sie ls -lZ . exam_a
aus .
Eine andere Sache, die das Löschen einer Datei verhindern kann, ist, wenn sie oder das Verzeichnis, das sie enthält, das Anfüge-nur- oder unveränderliche Linux-Attribut hat. Führen Sie lsattr -d . exam_a
aus um die Linux-Attribute anzuzeigen. Wenn die a
oder i
-Attribut aktiviert ist, müssen Sie es entfernen (chattr -a -i . exam_a
), um die Datei zu löschen; das kann nur root. Root kann diese Attribute nicht umgehen, um eine Datei zu löschen, die Attribute müssen zuerst ausgeschaltet werden.
Eine weitere Sache, die verhindert, dass eine Datei gelöscht wird, ist, wenn das Dateisystem schreibgeschützt gemountet ist, aber Sie würden in diesem Fall eine andere Fehlermeldung erhalten.