Jak mogę ograniczyć mojego użytkownika do wykonywania tylko selektywnych poleceń. Mam użytkownika tomc w grupie tomc. Potrzebuję tego użytkownika, aby był użytkownikiem sudo, a następnie mieć ograniczony bash. Próbowałem śledzić kod w /etc/sudoers
pliku, ale nie działa, ponieważ użytkownik jest w stanie wykonać inne polecenia, takie jak mkdir
,rm
%tomc ALL=/bin/bash,/usr/bin/vim /*
sudo bash
jest pod wieloma względami równoważne z hasłem root. Z poziomusudo bash
powłoki mogą uruchamiać dowolne polecenia administratora, instalować lub usuwać oprogramowanie, usuwać użytkowników i katalogi itp.Odpowiedzi:
Możesz iść na to w niewłaściwy sposób. Zamiast dawać użytkownikowi „ograniczoną” powłokę bashową, powinieneś dać mu dostęp tylko do poleceń, które musieliby uruchomić jako root. Na przykład w pliku sudoers:
Bądź ostrożny, pozwalając użytkownikom uruchamiać vima jako root. Vim ma wiele wbudowanych funkcji, takich jak ucieczki do powłoki i możliwość uruchamiania poleceń z poziomu vima. W zależności od dystrybucji możesz mieć
sudoedit
dostępne. Działa to tak samo jak normalny Vim, z tym wyjątkiem, że jest zaprojektowany do obsługi ucieczek powłoki i tym podobnych.źródło
vim
możesz uruchamiać dowolne polecenia powłoki. A druga linia prawdopodobnie pozwoliless /var/log/myapp/../../../etc/shadow
! Według moich eksperymentów bezpieczne używanie sudo jest trudne ! Ale jeśli możesz uniknąć*
s i użyćsudoedit
zamiastvim
tego, możesz być w porządku.*
nie wystarczy! Razless
jakoroot
użytkownik, spróbuj wpisać!tail /var/log/secure
. Jak to jest PrzestudiujNOEXEC
tag. Ale weź sobie wiadomość @ joeytwiddle do serca: bezpieczeństwo sudo jest naprawdę trudne.Na mojej Synology Diskstation z uruchomionym DSM 6 tylko użytkownicy administracyjni mogą konsekwentnie ssh (użytkownicy niebędący administratorami mają powłokę jako / sbin / nologin w / etc / passwd - możesz ustawić tę opcję na / bin / sh, aby tymczasowo zezwolić na ssh, ale przy ponownym uruchomieniu plik / etc / passwd jest resetowany). Z tego powodu potrzebne jest pewne ograniczenie sudo dla konta, które w innym przypadku istnieje tylko w celu wykonania np. / Sbin / poweroff. Dla mnie działały następujące wiersze w / etc / sudoers:
Tłumaczenie: nie zezwalaj na wszystkie polecenia, a następnie zezwól tylko na żądane polecenie (w tym przypadku bez pytania o hasło).
Przy tej konfiguracji sudo pyta o hasło, a następnie nie wykonuje poleceń innych niż z białej listy:
źródło