# [szukam] monitoring shella

## Kabraxis

Witam, potrzebuje jakiegoś programu do monitoringu usera zalogowanego na shella. Powinno to wyglądać tak, że widzę na bieżąco jakie komendy wypisuje user, a już super byłoby gdybym widział dokładnie to co user. Czy ktoś może mi coś polecić? W ogóle są takie programy?

----------

## msch

pobaw sie screen -em

----------

## Kabraxis

Screen chyba nie ma takich możliwości?

Po pierwsze nie każdy odpala screena do pracy... to się chyba nie nadaje do tego co opisałem, a jeśli się mylę proszę mnie poprawić  :Wink: 

----------

## v7n

Hmm.. screena można dodać do ~/.bashrc czy tam ~/.bash_profile ale z chęcią się dowiem jak można go wykorzystać do monitoringu tego, co dany user robi :>

msch - czekam na małą podpowiedź  :Rolling Eyes: 

----------

## manwe_

screen -x służy do klonowania

----------

## msch

heh nie wiem jak  :Smile:  zarzucilem pomyslem tylko, ze mozna by wykorzystac jakos to narzedzie.

----------

## argasek

```

tail -f /home/user/.bash_history

```

 :Wink: 

----------

## akroplas

agrasek.. no a jak user wychodzac z konta robi rm ~/.bash_history??? Pozatym nie sprawdzisz co robi w tej chwili, tylko co robił...

Ja bym coś pokombinował ze screenem.. wchodzisz na roota, su - user; screen -x i patrzysz co on pisze..., ale zawsze user moze wyjsc ze screena.. Pokombinuj.. a moze.. poGOOGLEuj?

----------

## argasek

 *Quote:*   

> 
> 
> agrasek.. no a jak user wychodzac z konta robi rm ~/.bash_history??? Pozatym nie sprawdzisz co robi w tej chwili, tylko co robił... 
> 
> 

 

Primo, argasek.  :Wink: 

Secundo: żeby sprawdzać co robi "w tej chwili", musiałbyś mieć keystroker. Sprawdzałeś jak działa tail -f? Robi właśnie to, co możliwe: wyświetla na bieżąco najnowszą linijkę dopisaną do pliku - czyli de facto, to co user zrobił przed chwilą. 1-2 sekundowe opóźnienie to chyba nie jest za wiele aby zareagować, nie przesadzajmy :>

Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da.

----------

## Kabraxis

komendy do .bash_history nie są dopisywane na bierząco ale przy wylogowaniu się usera i to też nie zawsze bo jeśli sesja zamknie się powiedzmy przez kill lub error to nic się nie doda.

A nawet jak uruchomie na sile screena to ktos kilknie ctrl+d i juz w nim nie bedzie  :Wink:  I wylogowywac bedzie sie tez musial kilkajac dwa razy ctrl+d czyli zupelnie bez sensu bo to odrazu zauwazy no i ma dodatkowe klikniecie  :Wink: 

Screen raczej zdecydowanie odpada. Pozatym chcialbym moc np. kontrolowac kogos kto jest na roocie z roota co robi przede wszystkim  :Wink: 

----------

## akdmks

Kombinujecie nie w tym kierunku, a odpowiedz jest bardzo prosta.

W systemie FreeBSD sluzy do tego komenda watch, a w linuksie watch robi zupelnie co innego.

Naszczescie jest linuksowy odpowiednik watch z fbsd Snoop.

Niestey nie daje on mozliwosci kontrolowania usera, a tylko podgladu co w danej chwili robi.

----------

## Gogiel

 *argasek wrote:*   

> Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da.

 

Ale zawsze moze zrobic echo > .bash_history

----------

## psycepa

ja probowalem zrobic cos takiego

cat /dev/tty2 

(symulacja ze user jest zalogowany pod 2 terminalem)

i momentami to nawet dzialalo, ale pojawialy sie problemy takie, ze uzytkownik wpisywal np ls, ja to widzialem ale u niego ta komenda nie wyswietlala wynikow

moze gdyby dalo sie jakos to spipeowac, ze user wpisuje komende, leci na jego stdin _i_ np do nasszej sesji teminala czy jakos tak, ale mysle ze to chyba troche za duzo kombinowania  :Smile: 

----------

## manwe_

Kiedyś tam kombinowałem, otwierałem tty na read i write, czytałem z niego i plułem to zarówno na swój ekran jak i spowrotem do tty. Działało prawie dobrze. Terminal "podsłuchiwanego" user'a nie przechodził do kolejnej linii po naciśnięciu enter. Próbowałem różne wersje z przerabianiem 0x10 <-> 0x13, wysyłaniem obydwu, etc. etc. Nic nie pomogło. W końcu odpuściłem.

----------

## Arfrever

 *Gogiel wrote:*   

>  *argasek wrote:*   Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da. 
> 
> Ale zawsze moze zrobic echo > .bash_history

 

A ja używam:

```
$ cat ~/.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

export HISTFILE="/dev/null"

export LESSHISTFILE="-"

export PATH="${HOME}/bin:${PATH}"

export PS1="\033[36m[\033[34m\u\033[0m \033[32m\w\033[36m] \\$\033[0m "
```

Czyli HISTFILE="/dev/null".

Sveikinu

Arfrever

----------

## v7n

@Kabraxis

można dodać do .bash_profile takie coś

```
screen

exit
```

po zakończeniu procesu 'screen' ( czyli po ctrl+d ) wykonywany jest proces exit ( bonusowe ctrl+d )

pytanie - czy to jest eleganckie?   :Twisted Evil: 

----------

## Kabraxis

 *akdmks wrote:*   

> Kombinujecie nie w tym kierunku, a odpowiedz jest bardzo prosta.
> 
> W systemie FreeBSD sluzy do tego komenda watch, a w linuksie watch robi zupelnie co innego.
> 
> Naszczescie jest linuksowy odpowiednik watch z fbsd Snoop.
> ...

 

Jest w portage? Może pod jakąś inną nazwą?

----------

## akdmks

Nie ma chyba, ale sciagasz sobie http://mesh.dl.sourceforge.net/sourceforge/snoop/snoop-0.2.0.tar.gz i instalujesz z palca ./configure && make && make install

U mnie dziala bardzo dobrze  :Wink: 

----------

## Gogiel

 *v7n wrote:*   

> @Kabraxis
> 
> można dodać do .bash_profile takie coś
> 
> ```
> ...

 

A co jak nacisnie Ctrl + A + D?

----------

## akroplas

 *argasek wrote:*   

> Primo, argasek. 

 

Przepraszam... bije sie w piersi  :Wink: 

Juz koledzy wytlumaczyli o co mi chodzilo...

----------

## yuric

 *argasek wrote:*   

> 
> 
> Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da.

 

Moge wiedzieć jak chcesz to zrobić, .bash_history jest w katalogu usera więc nawet jak root będzie właścicielem tego pliku, plik będzie maił uprawniena 000 to i tak user go będzie mógł skasować - bo znajduje się w katalogu którego do którego user "ma prawo". Widze że koledzy nie dokońca filozofie uprawnień rozumieją :Wink: 

----------

## argasek

 *yuric wrote:*   

>  *argasek wrote:*   
> 
> Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da. 
> 
> Moge wiedzieć jak chcesz to zrobić, .bash_history jest w katalogu usera więc nawet jak root będzie właścicielem tego pliku, plik będzie maił uprawniena 000 to i tak user go będzie mógł skasować - bo znajduje się w katalogu którego do którego user "ma prawo". Widze że koledzy nie dokońca filozofie uprawnień rozumieją

 

Mea culpa, wtopiłem, faktycznie  :Embarassed: , zaćmienie umysłowe, wpływ śniegu, etc., etc.  :Wink: . Katalog nadrzędny musiałby mieć wtedy -x, żeby ta metoda zadziałała. Natomiast możliwe, że problem udałoby się rozwiązać za pomocą ACLi. Drugi pomysł to spatchowanie basha tak, aby plik ~/.bash_history wyrzucał po prostu gdzie indziej, ale to już dość okrężne...

----------

## Arfrever

 *argasek wrote:*   

> spatchowanie basha

 

Zbędne.

 *argasek wrote:*   

> aby plik ~/.bash_history wyrzucał po prostu gdzie indziej

 

Jak już napisałem wcześniej, wystarczy ustawić odpowiednio zmienną HISTFILE.

Możecie sprawdzić:

```
cd

echo $HISTFILE

bash

HISTFILE="${HOME}/Biling"

ls

echo -e "\033[0;31mT\033[32mE\033[34mK\033[31mS\033[32mT"

exit

cat Biling

rm Biling
```

Sveikinu

Arfrever

----------

## Raku

 *yuric wrote:*   

>  *argasek wrote:*   
> 
> Tertio: problem z usuwaniem .bash_history nie jest nierozwiązywalny, wystarczy żeby właściciel tego pliku był inny niż user, z prawem do zapisu przez basha - i już 'rm' się nie da. 
> 
> Moge wiedzieć jak chcesz to zrobić, .bash_history jest w katalogu usera więc nawet jak root będzie właścicielem tego pliku, plik będzie maił uprawniena 000 to i tak user go będzie mógł skasować - bo znajduje się w katalogu którego do którego user "ma prawo". Widze że koledzy nie dokońca filozofie uprawnień rozumieją

 

i vice versa  :Razz: 

man chattr (szczególnie -a)

----------

## Arfrever

 *Raku wrote:*   

> man chattr (szczególnie -a)

 

To dotyczy tylko systemów plików ext[234]. Ktoś może przecież używać ReiserFS [34], XFS, JFS itd.

Sveikinu

Arfrever

----------

## v7n

@Gogiel

wiedziałem, że to by było zbyt proste )-;

----------

## Raku

 *Arfrever wrote:*   

>  *Raku wrote:*   man chattr (szczególnie -a) 
> 
> To dotyczy tylko systemów plików ext[234]. Ktoś może przecież używać ReiserFS [34], XFS, JFS itd.
> 
> 

 

wybór systemu plików zależy od funkcjonalności, jakiej od niego oczekujemy.

----------

