Odpowiedzi:
Informacje wykorzystywane przez w
i who
są przechowywane w /var/run/utmp
lub /run/utmp
(czasami /etc/utmp
w starych systemach). Musisz ograniczyć dostęp do odczytu tego pliku.
(Nie przejmuj się usunięciem poleceń; jeśli pozostawisz utmp
tekst 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 FROM
pole 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
/ Linuxwho
ani systemu BSD. Pokazują wszystkie pola wszystkim, ponieważ wszystkie dane i tak są przechowywane w jednymutmp
pliku do odczytu . (W niektórych systemachw
potrzebuje-f
opcji pokazania pola, w innych - aby go ukryć, ale jest to jedynie preferencja czasu kompilacji.)