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?

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.


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.


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'

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.