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?
Nie globalnie, nie. Możesz jednak ograniczyć dostęp /usr/bin/w
i 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 setuid
instrukcją.
Rzeczy jak:
w -hus | tr -s ' ' | cut -d' ' -f5-
itp.
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.)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.
źródło