Jak mogę dowiedzieć się, kto wykonał określone polecenie i który terminal został użyty do jego uruchomienia?
Oryginał :
Skąd mam wiedzieć, że dane polecenie cmd jest wykonywane przez kogo i wiedzieć o moim terminalu
Jak mogę dowiedzieć się, kto wykonał określone polecenie i który terminal został użyty do jego uruchomienia?
Oryginał :
Skąd mam wiedzieć, że dane polecenie cmd jest wykonywane przez kogo i wiedzieć o moim terminalu
Odpowiedzi:
Aby zobaczyć, jakie polecenia są wykonywane, użyj „ps -ef”. Dzięki temu dowiesz się, co wszyscy robią, co zwykle stanowi zbyt wiele informacji.
Aby zawęzić listę i dowiedzieć się, kto uruchamia określone polecenie, możesz dodać filtr „grep” w następujący sposób:
ps -ef | grep scp
Zwróci to wszystkie polecenia scp, ale może również zwrócić polecenie grep szukające scp i wszelkich innych poleceń z osadzonymi w nich literami scp, ponieważ grep po prostu pasuje do ciągu. Być może będziesz potrzebować sprytnego wyrażenia podanego na grep (wiele razy wystarczy go zacytować i dodać spację:
ps -ef | grep "scp "
lub jeszcze lepiej wykorzystać wyrażenia regularne i:
ps -ef | grep "[s]cp "
Jeśli znasz użytkownika i chcesz po prostu wiedzieć, co on działa, to „ps -fu” jest twoim przyjacielem. Na przykład
ps -fu tom
Które można oczywiście połączyć z grep, aby uzyskać procesy SCP Toma:
ps -fu tom | grep "[s]cp "
Kolumna 6 to tty.
Możesz użyć, tty
aby znaleźć nazwę pliku terminala podłączonego do standardowego wejścia.
Dla tej ostatniej części pytania, sudo
czy su
i wtedy grep -c 'command' /home/username/.bash_history
.