Co to jest „dziwny plik”?


38

Aplikacja, której używam, nie uruchomi się z tym komunikatem użytkownika: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

Kiedy użyłem ls, plik pojawił się jako taki:

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

Uruchomienie statystyki na pliku daje mi to:

% 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

Najbardziej zaskakujące jest wspomnienie o „dziwnym pliku”.

Co to jest dziwny plik?


Co stat -c '%f' .configdrukuje? (Powinieneś dostać czterocyfrową liczbę szesnastkową.) Co również stat -f .configdrukuje? (Podaje informacje o systemie plików zawierającym .config.)
zwol

4
Plik ma właściciela / grupę root, która ma identyfikator zero. Potwierdza to przypuszczenie @ peterh, że niektóre metadane zostały wyzerowane.
CSM,

Czy używasz eCryptfs?
kasperd

Odpowiedzi:


39

(Zakładając, że GNU ...) Jeśli statnie mogę powiedzieć, jaki to typ (katalog, (pusty) zwykły plik, link, gniazdo, ...), mówi weird file. Domyślam się uszkodzenia systemu plików i sugeruję fsck.


W 2014 r. Dodatkowe podstawowe typy plików zostały dodane do GNU coreutils. Tak więc, jeśli twoja wersja jest starsza, może to być rozsądny plik w pewnych szczególnych okolicznościach, ale istnieje duże prawdopodobieństwo, że aplikacja przechowa swoją konfigurację w zwykłym pliku.


Jednak niektóre programy mogą wykorzystywać gniazdo lub łącze jakiegoś nieparzystego typu o nazwie .config ...
rackandboneman,

1
@rackandboneman statz GNU coreutils w moim systemie szczęśliwie zgłasza gniazdo jako socket. Dowiązania symboliczne są zgłaszane jako symbolic link. Odsyłacze twarde są nie do odróżnienia od „zwykłych” plików i są zgłaszane jako regular file(przecież takie są), z tym wyjątkiem, że liczba odsyłaczy wynosi> 1.
CVn

„jakiegoś nieparzystego typu” - miałem na myśli inne dziesiątki socketycznych lub łączących typów znalezionych w tej bardzo szczegółowej sekcji kodu C (z pewnością jest dobry powód, aby nie indeksować tablicy ciągów o numerze typu pliku. .. Chyba ...) :)
rackandboneman

@rackandboneman Base POSIX nie zapewnia żadnego sposobu na wyodrębnienie „numeru typu pliku” ze struktury statystyki, tylko makra S_ISxxx (). Niektóre Uniksy oferują zestaw rozszerzeń „XSI”, które zawierają sposób, aby to zrobić, ale coreutils stara się nie polegać na XSI, lub zrobiłem to po raz ostatni.
zwolnić

Ach, w porządku. Byłam trochę błędnie zakładając Coreutils być bardziej GNU / Linux centric, że ma być :)
rackandboneman
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.