Odpowiedzi:
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.
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'
w/ Linuxwhoani systemu BSD. Pokazują wszystkie pola wszystkim, ponieważ wszystkie dane i tak są przechowywane w jednymutmppliku do odczytu . (W niektórych systemachwpotrzebuje-fopcji pokazania pola, w innych - aby go ukryć, ale jest to jedynie preferencja czasu kompilacji.)