Como sabemos, "Tudo no Linux" é um arquivo e, além disso, o diretório é apenas um arquivo que contém outros arquivos.
Então, eu não sei se essa "idéia maluca" é possível, mas deve estar de alguma forma, de acordo com o princípio acima.
Em palavras simples, como eu poderia alterar um arquivo vazio existente em um diretório. É possível?
Como uma tempestade cerebral, pensei que alguma modificação nos metadados do arquivo e fizesse isso como metadados do diretório deveriam fazê-lo !!
Qualquer informação é apreciada.
UPDATE: Com certeza, não quero excluir um arquivo e criar o diretório! Só estou tentando saber o quanto a filosofia acima é aplicável se você puder jogar com alguns metadados de arquivo.
Respostas:
Atingindo a conversão
Criando um sistema de arquivos de teste
Para preservar nosso sistema de arquivos principal de qualquer dano possível após a execução desse experimento, criaremos um pequeno sistema de arquivos dentro de um arquivo normal para fins de teste.
Crie um arquivo preenchido com zero chamado
test
com um tamanho de 10 megabytes:Crie um sistema de arquivos Ext4 dentro do arquivo, como se fosse uma partição:
Criando alguns arquivos e diretórios
Agora temos um sistema de arquivos totalmente funcional dentro do
test
arquivo, então vamos criar alguns arquivos e diretórios dentro dele.Monte o sistema de arquivos recém-criado dentro
/mnt
:Crie um arquivo e um diretório:
Verifique o conteúdo do sistema de arquivos:
A saída deve ser algo como isto:
Desmonte o sistema de arquivos de teste:
Trocando o arquivo e a pasta
Execute
debugfs
notest
arquivo com permissão de gravação (-w
sinalizador):Converta
file
em uma pasta:No
debugfs
prompt, digite isto:Um prompt aparecerá solicitando um modo; digite isto:
Continue pressionando returnpara deixar os dados restantes como estão até que o prompt apareça novamente.
Converta
folder
em um arquivo:No
debugfs
prompt, digite isto:Um prompt aparecerá solicitando um modo; digite isto:
Continue pressionando returnpara deixar os dados restantes como estão até que o prompt apareça novamente.
Para sair do
debugfs
prompt, basta pressionar qe, em seguida,returnVerificando o sucesso da operação
Monte o sistema de arquivos de teste novamente:
Verifique o conteúdo do sistema de arquivos:
Agora, ele deve mostrar o arquivo como se fosse um diretório e vice-versa :
Script para calcular modos de inode
Ver script no GitHub
Handicaps
Leitura adicional
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inode_Table
Graças a @tallus . Ele me deu uma ótima dica:
fonte
0100755
deve ser0100644
para não alterar as permissões de um arquivo desde 755 dará execução para o arquivo convertido ...