Chcemy, aby niektórzy użytkownicy mogli np. Być sudo
rootem,
Cóż, taki jest problem, który sudo ma rozwiązać, więc ta część jest dość łatwa.
ale z zastrzeżeniem, że użytkownik nie może zmienić hasła roota.
Możesz, jak wskazał SHW w komentarzu, skonfigurować sudo, aby niektórzy użytkownicy mogli wykonywać tylko root jako root. Oznacza to, że można zezwolić user1 zrobić sudo services apache2 restart
, pozwalają użytkownik2 zrobić, sudo reboot
ale nic innego, umożliwiając jednocześnie zatrudniony-as-system-administrator user3
zrobić sudo -i
. Dostępne są instrukcje, jak skonfigurować sudo w ten sposób, lub możesz wyszukać (lub zapytać) tutaj. To jest problem do rozwiązania.
Jednak użytkownik, któremu przyznano zdolność do sudo -i
lub sudo
do powłoki ( sudo bash
na przykład), może zrobić wszystko. Jest tak, ponieważ zanim sudo uruchomi powłokę, samo sudo jest poza obrazem. Zapewnia kontekst bezpieczeństwa innego użytkownika (najczęściej root), ale nie ma wpływu na to, co robi wykonywana aplikacja. Jeśli ta aplikacja zostanie uruchomiona, passwd root
sudo nie może nic z tym zrobić. Pamiętaj, że można to zrobić również za pośrednictwem innych aplikacji; na przykład wiele bardziej zaawansowanych edytorów zapewnia funkcje umożliwiające wykonanie polecenia przez powłokę, powłokę, która zostanie wykonana z efektywnym identyfikatorem użytkownika tego procesu edytora (to znaczy root).
Oznacza to, że nadal możemy zalogować się na tym serwerze i zostać rootem bez względu na to, co zrobią inni użytkownicy.
Przepraszam; jeśli naprawdę masz na myśli „upewnij się, że będziemy w stanie zalogować się i korzystać z systemu bez względu na to, co zrobi z nim użytkownik root”, to (we wszystkich celach i celach) nie można tego zrobić. Szybkie „sudo rm / etc / passwd” lub „sudo chmod -x / bin / bash” (lub cokolwiek innego root root używa), a ty i tak jesteś prawie niezadowolony. „Prawie ukryty” oznacza „musisz przywrócić z kopii zapasowej i mieć nadzieję, że nie zrobili nic gorszego niż potknięcie palcami”. Możesz podjąć pewne kroki, aby zmniejszyć ryzyko przypadkowej wpadki prowadzącej do bezużytecznego systemu, ale nie możesz zapobiec złośliwości powodującej bardzo poważne problemy, włącznie z koniecznością odbudowy systemu od zera lub przynajmniej ze znanego dobre kopie zapasowe.
Zapewniając użytkownikowi nieskrępowany dostęp do systemu w systemie, ufasz temu użytkownikowi (w tym każdemu oprogramowaniu, które zdecyduje się wykonać, nawet tak przyziemnemu jak ls), że nie będzie miał złych zamiarów i nie zadziała przez przypadek. Taka jest natura dostępu do roota.
Ograniczony dostęp do roota np. Sudo jest nieco lepszy, ale nadal musisz uważać, aby nie otwierać żadnych wektorów ataku. A dzięki prawom dostępu root istnieje wiele możliwych wektorów ataku dla ataków eskalacji uprawnień.
Jeśli nie możesz im ufać poziomem dostępu, jaki pociąga za sobą rootowanie, będziesz potrzebować albo bardzo ściśniętej konfiguracji sudo, albo po prostu nie przyznać użytkownikowi dostępu do roota w jakikolwiek sposób, sudo lub w inny sposób.
sudo
aby udzielić uprawnienia tylko określonej aplikacji z uprawnieniami administratora. W ten sposób użytkownik nie będzie mógł zmienić hasła roota