Czy mogę zalogować aktywność vi?

10

Czy istnieje metoda rejestrowania działań vi? Podejrzewam, że inny użytkownik wydaje polecenia, wchodząc do powłoki wewnątrz edytora vi, najwyraźniej to polecenie nie zapisuje się w historii.

vnix27
źródło

Odpowiedzi:

6

Możesz także włączyć rozliczanie procesów (s / can / should /!)

Następnie możesz użyć:

lastcomm(1)

aby zobaczyć polecenie uruchomione i jeśli zostały uruchomione po rozwidleniu, z lub bez exec.

W połączeniu z systemem IDS opartym na gospodarzu powinno to dać ci to, czego potrzebujesz, „aby sprawiedliwość króla mogła zostać wykonana na nim”.

chiggsy
źródło
+1 za dobry punkt na temat rachunkowości.
Phil Hollenback
7

Jak teraz rejestrujesz ich działania? Najłatwiej jest zablokować je przed wystrzeliwaniem pocisków z vi.

# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc

Jeśli używasz specjalnej powłoki do rejestrowania ich poleceń, możesz zmienić vi, aby używała tylko tej powłoki.

Steven
źródło
+1 za dobry prosty sposób ograniczenia dostępu vi.
Phil Hollenback
2
ale wydaje się łatwe do ominięcia: „vim -u / dev / null”.
jlliagre
Tak, jest to w zasadzie nierozwiązywalny problem. Gdy tylko ktoś uzyska dostęp do twojego systemu za pomocą loginu, może obalić maszynę. Najlepsze, co możesz zrobić, to naprawdę utrudnić.
Phil Hollenback
4

Czy mówisz o historii muszli? vi tryb powłoki ( :sh) uruchamia domyślną powłokę użytkownika Jeśli to jest bash, możesz upewnić się, że rejestrowanie historii jest zawsze włączone, edytując globalny plik / etc / bashrc i dodając:

set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'

zapewni to, że każde polecenie użytkownika zostanie zalogowane do pliku, nie zostanie nadpisane i będzie aktualizowane za każdym razem, gdy pojawi się monit powłoki.

Pamiętaj, że użytkownicy mogą to zmienić osobiście, ~/.bashrcwięc nie jest to absolutna gwarancja, że ​​nastąpi rejestrowanie.

Niektóre wersje vi (jak nvi) obsługują tryb awaryjny, który wyłącza dostęp do powłoki poprzez uruchomienie vi jako nvi -S. Możesz ustawić globalny alias, /etc/bashrcaby domyślnie wymuszać ten tryb.

Zauważ, że ogólnie problem z dostępem do powłoki za pomocą nieoczekiwanych środków jest klasycznym problemem uniksowym. Nie ma sposobu, aby całkowicie to wyłączyć, najlepiej możesz spróbować domyślnie ograniczyć dostęp. Zaawansowany użytkownik (lub nawet użytkownik, który umie korzystać z Google) zawsze może obejść te ograniczenia. Na przykład, jeśli użytkownik nie chce, aby historia jego powłoki była rejestrowana, zawsze mógł po prostu wykonać nową kopię powłoki z dowolnymi opcjami, których chciał użyć.

Oto świetny opis tego, jak wymusić logowanie w bash i sposoby na obejście tego logowania.

Wreszcie, czy zastanawiałeś się nad rozmową z użytkownikiem w celu ustalenia, co robi? 99% czasu prosta komunikacja werbalna może usunąć wszelkie nieporozumienia. Jeśli rejestrujesz aktywność tego użytkownika, ponieważ mu nie ufasz, być może możesz porozmawiać z nim o swoich obawach.

Phil Hollenback
źródło