Dlaczego proste hasło użytkownika pozwala na dostęp do roota na Ubuntu?

1

Mam klienta, którego skonfigurowałem na maszynie z systemem Linux. Nie jest on zbytnio obeznany z technologią i oczywiście potrzebował prostego hasła, aby zalogować się do Ubuntu. Jego nazwa użytkownika i hasło przypominają:

user: John
password: GoodDeals

Z drugiej strony hasło roota na maszynie jest znacznie bardziej złożone i jest czymś, do czego tylko ja powinienem mieć dostęp.

Ale kiedy używam polecenia:

sudo su -

Ubuntu wyświetla monit o podanie prostego hasła Johna, a następnie przyznaje dostęp rootowi do całego komputera.

Może to być problem, ponieważ gdy pracownik znał proste hasło do zalogowania się na maszynie, mógł zasadniczo uzyskać dostęp do roota.

Czy to jest zamierzone zachowanie?

Dlaczego znajomość hasła do konta użytkownika automatycznie zapewnia dostęp do konta root?

some1
źródło
2
Możesz skonfigurować, którzy użytkownicy / grupy mogą korzystać z sudo i jakie kooperacje mogą uruchamiać z sudo.
Tom Yan
Czy root powinien być w grupie sudo? Zdałem sobie sprawę, że muszę usunąć Johna z sudo, ale roota tam nie ma. Tak być powinno?
jakieś1
1
Nie. Wartość domyślna /etc/sudoerma wiersz dla root.
Tom Yan
Obowiązkowe xkcd.com/1200
grawity

Odpowiedzi:

4

Domyślnie dystrybucja Linuksa Ubuntu ma wyłączony login root i hasło root root, więc aby podnieść poziom uprawnień, użytkownik musi uruchamiać polecenia sudo, i jest to dozwolone tylko wtedy, gdy użytkownik jest sudoer (ma wpis w sudoerspliku) w skrócie:

Członkowie grupy administracyjnej mogą uzyskać uprawnienia roota

%admin  ALL=(ALL) ALL

Pozwól członkom sudo grupy wykonywać dowolne polecenia

%sudo   ALL=(ALL:ALL) ALL

Root i użytkownicy w kole grup mogą uruchamiać wszystko na dowolnym komputerze jak każdy użytkownik

root            ALL = (ALL) ALL
%wheel          ALL = (ALL) ALL

Sysadmini w pełnym wymiarze czasu mogą uruchamiać wszystko na dowolnym komputerze bez hasła

FULLTIMERS      ALL = NOPASSWD: ALL

W niepełnym wymiarze czasu administratorzy mogą uruchamiać wszystko, ale potrzebują hasła

PARTTIMERS      ALL = ALL

Polecenie, które uruchamiasz, to

sudo /sbin/su -

który, uruchamiany przez sudoużytkownika, nie będzie pytał o hasło (hasło sudo nie hasło root), jeśli RootSudoTimeout nie wystąpił, aby to ograniczyć

John może sutylko do operatora

john        ALL = /usr/bin/su operator

John May sukażdemu oprócz root i flagi nie są dozwolone

john        ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
8zero2.ops
źródło
2

Znajomość hasła do konta użytkownika nie daje automatycznie dostępu do konta root. Sudo jest przeznaczony do dostępu do roota dla uprzywilejowanych użytkowników, takich jak twój John, używających hasła użytkownika w przeciwieństwie do su , którzy potrzebują hasła roota, aby wykonać dowolne polecenie. Pokaż wynik polecenia id dla Johna. Podejrzewam, że skonfigurowałeś Ubuntu z tą nazwą użytkownika, aby John był domyślnie w grupie sudo.

Oleg Bolden
źródło
„John jest domyślnie w grupie sudo”. - dobrze wiedzieć, jak to się stało.
some1
2

Odkryłem, że John był w grupie sudo, kiedy nie powinien. Usunięto Johna z sudo za pomocą tego polecenia:

gpasswd -d john sudo

I to rozwiązało problem. Jeśli teraz spróbuje zwiększyć uprawnienia, nie będzie mógł tego zrobić.

some1
źródło
Warto pamiętać, że ubuntu automatycznie zakłada, że ​​pierwszym dodanym użytkownikiem (podczas instalacji) jest administrator. Ja osobiście konfiguruję moje domyślne konto administratora, a następnie dodaję dowolne (uprzywilejowane) konta w razie potrzeby później.
Journeyman Geek