Jak zmienić dane wyjściowe za pomocą poleceń „kto” i „w”?

1

Nie chcę, aby moi użytkownicy widzieli nawzajem informacje dotyczące adresu IP / logowania, więc chcę zmienić dane wyjściowe, gdy używają komendy „kto” i „w”, aby ukryć te informacje - czy jest na to sposób?

James
źródło

Odpowiedzi:

1

Nie globalnie, nie. Możesz jednak ograniczyć dostęp /usr/bin/wi umieścić plik alternatywny jako /usr/local/bin/w. Może to być prosty skrypt wywołujący oryginalne narzędzie z parametrami i argumentami filtru oraz setuidinstrukcją.

Rzeczy jak:

w -hus | tr -s ' ' | cut -d' ' -f5-

itp.

polemon
źródło
1

Informacje wykorzystywane przez wi whosą przechowywane w /var/run/utmplub /run/utmp(czasami /etc/utmpw starych systemach). Musisz ograniczyć dostęp do odczytu tego pliku.

(Nie przejmuj się usunięciem poleceń; jeśli pozostawisz utmptekst czytelny, każdy może uzyskać adresy za pomocą dwuminutowego skryptu).


Nie spowoduje to jednak ukrycia nazw logowania innych użytkowników. W tym celu musisz uniemożliwić zwykłym użytkownikom zobaczenie wszystkich procesów - co można zrobić tylko za pomocą takich łat do jądra, jak grsec . (Jeśli zamierzasz przyznać dostęp losowym, niezaufanym osobom, grsec może być dobrym pomysłem.)

Po drugie, jeśli chcesz zachować prywatność, musisz uniemożliwić użytkownikom wyświetlanie wszystkich kont systemowych; nie można tego zrobić w przypadku tradycyjnego systemu Unix /etc/passwd, ponieważ ograniczenie dostępu do odczytu spowodowałoby uszkodzenie wielu rzeczy. Zamiast tego potrzebujesz osobnego katalogu użytkownika, takiego jak sssd , LDAP, być może trochę bazy danych SQL.

grawitacja
źródło
0

Domyślnie FROMpole w jest pokazane tylko jako rootowanie, a nie „zwykli” użytkownicy. Zakładając, że użytkownicy korzystają ze zwykłych kont, nie powinni widzieć szczegółów, które widzisz. Jeśli skompilowana wersja to robi, użyj przełącznika -f, aby ukryć informacje:

w -f

Możesz dodać to jako alias dla w w profilach użytkowników (~ / .bash_profile):

alias w='w -f'
Oldskool
źródło
Jest to niepoprawne w przypadku domyślnego procps w / Linux whoani systemu BSD. Pokazują wszystkie pola wszystkim, ponieważ wszystkie dane i tak są przechowywane w jednym utmppliku do odczytu . (W niektórych systemach wpotrzebuje -fopcji pokazania pola, w innych - aby go ukryć, ale jest to jedynie preferencja czasu kompilacji.)
grawity
Niestety wydaje się, że tak nie jest w przypadku CentOS 5. Nawet zwykli użytkownicy widzą to z pola.
James
0

Możesz pomyśleć o tym, aby dać użytkownikom ograniczoną powłokę i skonfigurować dla nich specjalny katalog bin, w którym masz opakowane lub specjalne wersje „w” i „who”. Zobacz sekcję strony podręcznika bash OGRANICZONA MORZA.

ott--
źródło