Lösung 1:
> sudo ls -al ./log
...
drw-rw-r-- 3 bob bob 4096 Jun 2 04:11 .
Es sieht nicht so aus, als hätte Bob Ausführungsberechtigungen für ./log, also kann er nicht cd
dazu.
Aber
> ls -al .
...
drwxr-xr-x 2 bob bob 4096 June 1 14:22 log
zeigt, dass er es tut. Aber es sieht nicht so aus, als würden sie auf dieselbe Datei verweisen (unterschiedliche Berechtigungen, unterschiedliche Modtime).
Versuchen Sie es mit sudo ls -ail ./log
und ls -ail
um zu sehen, ob der Inode derselbe ist.
Lösung 2:
Die Dinge sind einfacher als Dateisystembeschädigung oder Selinux. Wie Sie sehen können, fehlt Ihnen die x-Berechtigung (ausführbar) für das Protokollverzeichnis. Eigentlich bedeutet x für Verzeichnisse, dass jemand in dieses Verzeichnis wechseln kann. Führen Sie einfach ein "chmod +x log" durch, um diese Perm zu reparieren, und Sie sollten darauf zugreifen können.
Lösung 3:
Ich habe solche Dinge gesehen, wenn das Dateisystem beschädigt wurde oder wenn Sie ein fehlerhaftes Laufwerk haben. Die Lösung besteht normalerweise darin, fsck für das Dateisystem auszuführen und gefundene Fehler korrigieren zu lassen.
Lösung 4:
Überprüfen Sie auch die SE/Linux-Einstellungen. Manchmal haben die Berechtigungen für die Datei nichts damit zu tun, ob Sie darauf zugreifen können oder nicht.
Lösung 5:
Für die Dateien können die unveränderlichen oder nur erweiterte Attribute festgelegt sein. Mir ist das schon einmal passiert und nicht einmal root konnte die Datei löschen.
Erweiterte Attribute können über "lsattr" eingesehen und über "chattr" geändert werden