Nie tak podchodzisz do problemu. Kiedy dajesz użytkownikowi dostęp do powłoki, powierzasz mu, aby zrobił wszystko, do czego ma odpowiednie uprawnienia. Zapomnij o logowaniu poleceń, istnieje zbyt wiele sposobów na wykonanie polecenia w dowolnym systemie uniksowym.
Na przykład użytkownik może uruchomić klienta pocztowego (na przykład jedynym zalogowanym poleceniem pine
), tam wybiera „Utwórz”, który uruchamia VI, a od VI uruchamia dowolne polecenie, za pomocą którego chce :!cmd
. To polecenie nie jest nigdzie logowane, a z punktu widzenia systemu jest jak każda aplikacja pomocnicza wywoływana przez VI, na przykład grep lub sort. Jedynym poleceniem zarejestrowanym przez powłokę było pine
.
Wygląda na to, że tak naprawdę chcesz nazywać się audytem . Włącz podsystem kontroli i użyj auditctl
polecenia i auditd
demona z pakietu kontroli , aby kontrolować, co jest rejestrowane. Więcej informacji znajduje się na stronie podręcznika auditctl (8) .
Pamiętaj, że rejestrowanie każdej instancji procesu może również nie być optymalne. Na przykład proste ./configure
dla pakietu oprogramowania (utworzonego za pomocą narzędzi automatycznych) jest godne uwagi w przypadku tworzenia tysięcy instancji procesów. Spowoduje to zalanie dziennika audytu tak dużą ilością hałasu, że bardzo trudno będzie go później przeanalizować.
Wydaje mi się, że szukasz czegoś takiego jak rootsh ( strona podręcznika użytkownika ). Aby zacytować stronę podręcznika:
Mimo nazwy może być używany przez każdego użytkownika.
źródło
Prawdopodobnie lepiej, aby użytkownicy używali sudo (lub podobnego) do uruchamiania poleceń, na których Ci zależy, i ufając użytkownikom na pewnym poziomie. Im bardziej zbliżasz się do „pełnej kontroli” rzeczy, tym trudniej jest wyśledzić, co robią. Ostatnio przyglądałem się na przykład takim narzędziom. Przeważnie tworzą one dzienniki, które są trudne do zarządzania, jeśli masz wystarczającą liczbę użytkowników i maszyn, aby coś takiego było opłacalne. :)
Rozważ wszystkie informacje, które będziesz generować. Jak bardzo ci na tym zależy? Prawdopodobnie bardzo mało - więc generujesz dzienniki, które są w większości bezwartościowe. Audytowanie rzeczy, na których ci naprawdę zależy, jak sugerują inni, prawdopodobnie prowadzi cię do lepszego stanu końcowego.
źródło
Bash można kompilować z obsługą syslog od wersji 4.1.
Nie jest to niezawodne (rozliczanie procesów może być lepsze do tego), ale głównie interakcja użytkownika; wolumin powinien być łatwiejszy w zarządzaniu, a będziesz mógł przejść na coś bardziej szczegółowego, jeśli podejrzewasz coś nienormalnego.
To powiedziawszy, jest to dość inwazyjne i jako użytkownik oczekiwałbym bardzo konkretnego ostrzeżenia o prywatności, zanim zaczniesz to robić.
źródło
Istnieje również sudosh ( http://sudosh.sourceforge.net ), który będzie rejestrował sesje. Masz możliwość uruchomienia go jako zdefiniowanej powłoki dla użytkownika lub poprzez sudo. Śledzi także czasy dla każdej sesji, dzięki czemu możesz odtworzyć sesję i obejrzeć ją (w tym sesje edycji i tak dalej).
źródło