O que é um "arquivo estranho"?


38

Um aplicativo que estou usando não será iniciado com esta mensagem de usuário: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

Quando eu usei ls, o arquivo apareceu da seguinte forma:

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

A execução do stat no arquivo me dá o seguinte:

% 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

O mais surpreendente é essa menção a um "arquivo estranho".

O que é um arquivo estranho?


O que stat -c '%f' .configimprime? (Você deve obter um número hexadecimal de quatro dígitos.) Além disso, o que é stat -f .configimpresso? (Este relatórios informações sobre o sistema de arquivos que contém .config.)
Zwol

4
O arquivo possui o proprietário / grupo de raiz, que é o ID zero. Isso suporta a suposição de @ peterh de que alguns dos metadados foram zerados.
CSM

Você está usando eCryptfs?
kasperd

Respostas:


39

(Supondo que o GNU ...) Se statnão era possível dizer que tipo (diretório, arquivo (vazio) regular, link, soquete, ...), diz weird file. Eu acho que a corrupção do sistema de arquivos e sugerir fsck.


Em 2014 , tipos de arquivos reconhecidos adicionais foram adicionados aos coreutils do GNU. Portanto, se sua versão for anterior a isso, pode ser um arquivo razoável para alguma circunstância especial, mas é muito provável que um aplicativo armazene sua configuração em um arquivo regular.


No entanto, alguns softwares pode usar uma tomada ou link de algum tipo estranho chamado config ...
rackandboneman

1
@rackandboneman statdo GNU coreutils no meu sistema relata felizmente um soquete como a socket. Os links simbólicos são relatados como symbolic link. Os hardlinks são indistinguíveis dos arquivos "regulares" e são relatados como regular file(afinal, são eles), exceto que a contagem de links é> 1.
um CVn

"de algum tipo estranho" - eu estava me referindo às outras dezenas de tipos de sockety ou linky encontrados nessa seção super verbosa do código C (certamente há uma boa razão para não apenas indexar uma matriz de strings com o número do tipo de arquivo. .. eu acho ...) :)
rackandboneman

@rackandboneman O POSIX não fornece nenhuma maneira de extrair um "número de tipo de arquivo" de uma estrutura stat, apenas as macros S_ISxxx (). Alguns Unixes oferecem um conjunto de extensões "XSI" que incluem uma maneira de fazer isso, mas o coreutils tenta não depender do XSI, ou fez a última vez que procurei de qualquer maneira.
Zwol 12/04/19

Ahhh OK. Eu era uma espécie de mis-levando em consideração coreutils a ser mais GNU / Linux centric que se destina a ser :)
rackandboneman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.