Vim – zabezpieczenie dokumentów

Jedynym słusznym edytorem w trybie tekstowym jest Vim. W trybie graficznym również ;-) (no dobra, na Windows używam gVim). Nawet do prostej edycji wybieram go zamiast nano czy mcedit (sic!). Ot, przyzwyczajenie.

Czasami zdarza mi się zapisać gdzieś jakieś poufne informacje, nawet na publicznych serwerach (oczywiście nie tak: pl.internet.polip: wpa2 aktualizacja). Zwykłe chmod 600 raczej jest słabe do zabezpieczenia, bo nie ufam sysadminom :>
Dlatego szukałem lepszego rozwiązania i w miarę wygodnego – szyfrowanie osobnym narzędziem po zakończeniu edycji prędzej czy później pokazało by, że jestem najsłabszym ogniwem w tym procesie. Testowałem kilka wtyczek do edytora, których nazw już nie pamiętam. Dawały super-bezpieczeństwo, ale bywały z nimi problemy jak niekompatybilność pomiędzy wersjami czy potrzeba ściągania na każdą maszynę (co wprawdzie jest do opanowania, ale na początku dość upierdliwe).
Jakiś czas temu zdecydowałem się na natywne rozwiązanie wbudowane w Vim. Sami autorzy twierdzą, że nie jest doskonałe, niemniej daje mi poziom bezpieczeństwa jaki chciałem osiągnąć. Wścibskim podglądaczom mówimy stanowcze ‘Nie!’.

Uruchomienie Vim z szyfrowaniem: -x. Przed każdą kolejną edycją program spyta nas o hasło. Zaszyfrowanie wcześniej stworzonego dokumentu – :X.
Więcej informacji:

Zabezpieczenie dokumentów jednakże to nie tylko zaszyfrowanie treści. Tworzenie kopii też zawiera się w tym temacie. Oczywiście, tak jak szyfrowanie, można to zrobić na innej warstwie, ale nie każda maszyna podłączona jest do systemu kopii i nie zawsze mamy możliwość korzystania z systemu kontroli wersji.
Co daje nam Vim? W standardzie możemy włączyć tworzenie kopii przy każdej edycji. Wystarczy komenda :set backup. Najlepiej zamieścić ją w ~/.vimrc. Spowoduje to utworzenie kopii pliku przed zamianami w tym samym katalogu. Kopia będzie miała dodany suffix ~. Oczywiście to wszystko jest elastyczne i tak katalog możemy zmienić za pomocą :set backupdir (przy okazji katalog na swap możemy ustawić przy użyciu :set directory), a suffix – :set backupext (to pełne nazwy komend, skrócone to odpowiednio bdir i bex).
Powyższe rozwiązanie zapewni nam ostatnią kopię. To może być niewystarczające, jeśli więc chcemy trzymać dłuższą historię, możemy użyć podręcznikowego:

:autocmd BufWritePre * let &backupext = '-' . strftime("%Y%b%d%X") . '~'

To nic innego jak dynamiczne ustawianie backupext przy każdym zdarzeniu BufWritePre. Jeśli mamy dedykowany katalog na kopie plików, możemy zrezygnować z tyldy na końcu nazwy (choć jednoznacznie określa, że to kopia), a i format daty warto ustawić na jakiś bardziej przyjazny (np.: %Y%m%d_%H%M%S czy też %s – sortuje się łatwiej).
Bardziej zaawansowane rozwiązania to numerowane kopie z rotacją czy też tworzenie plików różnicowych:

Tagi:

Jedna odpowiedź do “Vim – zabezpieczenie dokumentów”

  1. [...] w kwietniu pisałem o kopiach bezpieczeństwa plików edytowanych w Vim byłem świeżo po zdarzeniu, gdzie na serwerze z jednym kontem z powłoką dostępnym dla wielu [...]

Dodaj odpowiedź