determina arquivos modificados pelo usuário

2

Eu pretendo reinstalar meu sistema operacional desde que errei algumas coisas. O acesso a arquivos e pastas é dolorosamente lento às vezes, mesmo que contenham apenas alguns arquivos.

Mas é claro que não quero fazer tudo novamente. Lembro-me de adicionar alguns apelidos para ssh para tornar meu trabalho diário mais conveniente, alterei alguns arquivos de realce de sintaxe para gedit e provavelmente muito mais do que lembro atualmente.

Existe uma maneira de ver facilmente quais arquivos foram modificados por um usuário específico ? Como alternativa, existe uma maneira de encontrar arquivos, não encontrados em uma instalação nova? Fazer backup do material no diretório inicial é fácil, mas não quero pesquisar em todos os diretórios apenas para lembrar "Ah, eu também coloquei algo lá".

    
por stefan 14.06.2013 / 20:55

3 respostas

2

Você pode procurar facilmente por arquivos que pertençam a um usuário específico:

find -xdev / -user bob

O Unix não acompanha quem modificou um arquivo.

Não há uma maneira fácil de localizar os arquivos do sistema que você alterou. A maneira normal de manter um sistema unix é deixar o sistema operacional gerenciar seus próprios arquivos e colocar seus próprios arquivos em diretórios separados. No Linux, a convenção é que

  • /bin , /sbin , /lib e /usr fora /usr/local pertencem exclusivamente à distribuição;
  • /usr/local pertence exclusivamente ao administrador do sistema;
  • /etc é preenchido pela distribuição, mas pode ser modificado pela distribuição.

Seu diretório pessoal, claro, pertence a você.

Quando você fizer coisas como adicionar aliases para ssh ou arquivos de realce de sintaxe para o Gedit, faça-o em /usr/local se quiser que eles estejam disponíveis para todos os usuários, ou em seu diretório home de outra forma.

Se você realmente precisar alterar algo em /usr porque um aplicativo procura apenas arquivos lá e não em /usr/local , coloque o arquivo real em /usr/local e crie um link simbólico em /usr .

Para acompanhar os arquivos que você alterou em /etc , recomendo etckeeper . Todas as boas distribuições (inclusive) oferecem isso. (Se a sua distribuição não, tome isso como um comentário sobre a sua distribuição.)

Você pode procurar os arquivos que foram modificados nas versões fornecidas pela distribuição. Isso é diferente para todo gerenciador de pacotes. Como você mencionou o Ubuntu, a ferramenta de gerenciamento de pacotes de baixo nível é dpkg . Para cada pacote, há uma lista de arquivos com suas somas de verificação em /var/lib/dpkg/info/PACKAGENAMES.md5sums . Você pode comparar a lista com o que você instalou em seu sistema.

sort /var/lib/dpkg/info/*.md5sums >/tmp/packaged.md5sums
cd /
find bin etc lib sbin usr -path usr/local -prune -o -exec md5sum {} + | sort >/tmp/actual.md5sums
comm -23 /tmp/actual.md5sums /tmp/packages.md5sums
    
por 16.06.2013 / 03:10
0

I remember adding a few aliases for ssh to make my daily work more convenient, I changed some syntax-highlighting files for gedit and probably a lot more than I currently remember.

Se eu entendi sua pergunta corretamente, esse não é o ponto inteiro da estrutura de diretório /home ? Quase todas as configurações por usuário que você fez provavelmente serão encontradas em sua pasta pessoal. Por exemplo, para gedit , eu apostaria que há uma pasta chamada .gedit em sua pasta pessoal contendo configurações individuais para esse software.

Você pode não querer restaurar toda a sua pasta pessoal, mas pelo menos se você fizer o backup você pode adicionar essas coisas manualmente mais tarde, como quando você descobre que a configuração do gedit acabou, apenas feche o gedit e copie no seu antigo pasta .gedit - e assim por diante.

Para registros históricos de alterações em seus arquivos de texto, você pode querer algo como etckeeper .

    
por 14.06.2013 / 21:04
0

Se possível, você pode querer preservar a instalação existente, e fazer uma nova instalação no espaço em disco não utilizado no momento (ou faça backup em um disco separado (externo?) e reinstale.)

Quando a nova instalação estiver concluída, monte a instalação antiga em (digamos) / old (ou cada um dos sistemas de arquivos da instalação antiga, em (digamos) / old / root, / old / usr, / antigo / home, etc.) e, em seguida, use "diff -r / old" para ajudar a identificar arquivos presentes em / old que são não presente na nova instalação em /. Espere muito falsos positivos de diferentes versões do software instalado. Minimize aqueles tentando instalar exatamente a mesma configuração (distro, versão do sistema operacional, seleção de pacotes). Isto não é um fácil abordagem, mas deve ser exaustivo - e talvez exaustivo. Boa sorte.

    
por 15.06.2013 / 00:08