Was ist eine "seltsame Datei"?

38

Eine Anwendung, die ich verwende, startet nicht mit der folgenden Benutzermeldung: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

Als ich verwendete ls, zeigte sich die Datei als solche:

?--------- 1 root root     0 Dec 31  1969 .config

Das Ausführen von stat in der Datei gibt mir Folgendes:

% stat .config
  File: .config
  Size: 0           Blocks: 0          IO Block: 4096   weird file
Device: 2dh/45d Inode: 9799944     Links: 1
Access: (0666/?rw-rw-rw-)  Uid: ( 1000/     sleblanc)   Gid: ( 1000/         sleblanc)
Access: 1969-12-31 19:00:00.000000000 -0500
Modify: 1969-12-31 19:00:00.000000000 -0500
Change: 2018-04-07 23:40:22.549653691 -0400

Am überraschendsten ist die Erwähnung einer "seltsamen Datei".

Was ist eine seltsame Datei?

sleblanc
quelle
Was stat -c '%f' .configdruckt? (Sie sollten eine vierstellige Hexadezimalzahl erhalten.) Was wird auch stat -f .configgedruckt? (Dieser Bericht enthält Informationen zum Dateisystem .config.)
zwol
4
Die Datei hat den Eigentümer / die Gruppe von root, die die ID Null hat. Dies unterstützt die Annahme von @ peterh, dass einige der Metadaten auf Null gesetzt wurden.
CSM
Verwenden Sie eCryptfs?
Kasperd

Antworten:

39

(Angenommen, GNU ...) Wenn statnicht klar ist, um welchen Typ es sich handelt (Verzeichnis, (leere) reguläre Datei, Link, Socket, ...), heißt es weird file. Ich würde die Beschädigung des Dateisystems erraten und vorschlagen fsck.


Im Jahr 2014 wurden zusätzliche erkannte Dateitypen zu GNU coreutils hinzugefügt. Wenn Ihre Version älter als diese ist, kann es sich unter bestimmten Umständen durchaus um eine vernünftige Datei handeln, aber eine App speichert ihre Konfiguration höchstwahrscheinlich in einer regulären Datei.

muru
quelle
Manche Software verwendet jedoch möglicherweise einen Socket oder Link eines ungeraden Typs mit dem Namen .config ...
rackandboneman
1
@rackandboneman statvon GNU coreutils auf meinem System meldet glücklich einen Socket als socket. Symlinks werden als gemeldet symbolic link. Hardlinks sind nicht von "regulären" Dateien zu unterscheiden und werden als regular file(das ist es schließlich) gemeldet , mit der Ausnahme, dass die Anzahl der Links> 1 ist.
ein CVn
"Irgendein seltsamer Typ" - Ich bezog mich auf die anderen Dutzende von sockety- oder linky-Typen, die in diesem überaus ausführlichen Abschnitt von C-Code zu finden sind (es gibt sicherlich einen guten Grund, nicht nur ein Array von Zeichenfolgen mit der Dateitypnummer zu indizieren. .. Ich denke, ...) :)
Rackandboneman
@rackandboneman Base POSIX bietet keine Möglichkeit, eine "Dateitypnummer" aus einer Statistikstruktur zu extrahieren, sondern nur die Makros S_ISxxx (). Einige Unixe bieten eine Reihe von "XSI" -Erweiterungen an, die eine Möglichkeit bieten, dies zu tun. Coreutils versucht jedoch, nicht von XSI abhängig zu sein.
zwol
Ahhh OK. Ich habe irgendwie falsch angenommen, dass coreutils mehr GNU / Linux-zentriert ist, als es sein soll :)
rackandboneman