W jaki sposób ubuntu
użytkownik obrazów AWS dla Ubuntu Server 12.04 ma hasło bez hasła sudo
dla wszystkich poleceń, gdy nie ma w nim konfiguracji /etc/sudoers
?
Używam serwera Ubuntu 12.04 na Amazon. Chcę dodać nowego użytkownika, który zachowuje się tak samo jak domyślny użytkownik Ubuntu. W szczególności chcę sudo
nowego hasła bez hasła .
Dodałem więc nowego użytkownika i przeszedłem do edycji /etc/sudoers
(oczywiście używając Visudo). Po przeczytaniu tego pliku wyglądało na to, że domyślny ubuntu
użytkownik zaczyna uzyskiwać hasło sudo
bez członkostwa w admin
grupie. Dodałem do tego mojego nowego użytkownika. Co nie działało. Potem próbowałem dodać NOPASSWD
dyrektywę do sudoers
. Co też nie działało.
W każdym razie teraz jestem po prostu ciekawa. W jaki sposób ubuntu
użytkownik otrzymuje uprawnienia bez hasła, jeśli nie są zdefiniowane w /etc/sudoers
. Jaki jest mechanizm, który na to pozwala?
Odpowiedzi:
Ok, znalazłem odpowiedź, więc równie dobrze mogę ją tutaj umieścić dla kompletności. Na końcu
/etc/sudoers
jest to, co moim zdaniem było tylko komentarzem:Jednak tak naprawdę obejmuje to zawartość tego katalogu. Wewnątrz którego znajduje się plik
/etc/sudoers.d/90-cloudimg-ubuntu
. Który ma oczekiwaną zawartośćWłaśnie tam mieszka konfiguracja sudo dla domyślnego użytkownika ubuntu.
Powinieneś edytować ten plik za pomocą visudo. Następujące polecenie pozwoli ci edytować poprawny plik za pomocą visudo.
I dodaj linię taką jak:
Na końcu.
źródło
/etc/sudoers.d/90-cloud-init-users
(tak do edycji ...sudo visudo -f /etc/sudoers.d/90-cloud-init-users
). Chociaż tworzenie dodatkowych plików byłoby łatwiejsze niż edytowanie wygenerowanego. Zauważ, że pliki zawierająca.
lub kończące się~
będzie nie zostać uwzględnione.Odkryłem, że najłatwiejszą rzeczą do zrobienia, aby łatwo odtworzyć to zachowanie na wielu serwerach, było:
Zmień tę linię:
do tej linii:
I przenieś go poniżej tej linii:
powinieneś teraz mieć to:
następnie dla każdego użytkownika, który potrzebuje dostępu sudo Z hasłem :
i dla każdego użytkownika, który potrzebuje dostępu sudo BEZ hasła :
i na koniec uruchom to:
I to wszystko!
Edycja: Może być konieczne dodanie grupy administracyjnej, ponieważ nie sądzę, że istnieje ona domyślnie.
Możesz również dodać domyślnego
ubuntu
użytkownika AWS doadmin
grupy za pomocą tego polecenia:Uwaga: Jak wspomniano w @hata , może być konieczne użycie
adm
jako nazwy grupy administracyjnej, w zależności od używanej wersji Ubuntu.źródło
Utworzyłbym własny plik w katalogu /etc/sudoers.d/ - plik utworzony przez Amazon Cloud może zostać nadpisany w przypadku jakiejkolwiek aktualizacji. Po utworzeniu pliku w /etc/sudoers.d dodaj ten wpis,
Uruchom ponownie system, a to zadziała.
źródło
Krótka odpowiedź bez użycia edytora (testowana na bash, bardzo ryzykowne do wykonania na zdalnych hostach).
Skonfiguruj sudo do pracy bez hasła dla bieżącego użytkownika:
Sprawdź edycję za pomocą:
Sprawdź, czy możesz używać sudo bez hasła:
... lub po prostu spróbuj z:
źródło
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
visudo
szczególnie miło jest, że nie pozwalam ci złamać pliku sudoers, a tym samym nie blokuje cię z twojego komputera (lub przynajmniej sudo).visudo
, ale zwykle nie przez przypadek, ponieważvisudo
zapisuje tylko zmiany, które są dobrze uformowane zgodnie z gramatyką plików sudoers . Większość błędów jest błędna składniowo, więc nie powodują szkódvisudo
. Jeśli/etc/sudoers
lub plik w pliku/etc/sudoers.d
jest źle sformułowany,sudo
odmawia podniesienia uprawnień dla kogokolwiek ze względów bezpieczeństwa, dlatego nieużywanievisudo
jest niebezpieczne. (Chociaż czasempkexec
można to naprawić bez ponownego uruchomienia.)W ten sposób zaimplementowałem użytkownika innego niż root, bez hasła, w efemerycznym obrazie Docker do użytku w potoku CICD:
źródło