Jak mogę dodać się ponownie jako użytkownik sudo?

64

Dzisiaj wyczyściłem Ubuntu 11.10, a następnie zainstalowałem VirtualBox. Wymagało to ode mnie dodania się do grupy vboxusers, a ponieważ wydaje się, że 11.10 nie ma już aplikacji graficznej do dodawania użytkowników do grupy, uruchomiłem następujące polecenie:

sudo usermod -G vboxusers stephane

To jest problem. Teraz widzę, co powinienem był uruchomić:

sudo usermod -aG vboxusers stephane

Rezultat końcowy jest taki, że nie jestem już w grupach, w których powinienem być. Łącznie z dowolną grupą wymaganą do uruchomienia „sudo”. Kiedy teraz uruchamiam dowolne polecenie jako sudo, otrzymuję:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

Czy istnieje sposób, aby to naprawić, czy też muszę ponownie zainstalować od nowa?

Stéphane
źródło

Odpowiedzi:

65
  1. Podczas uruchamiania naciśnij i przytrzymaj lewy Shift klawisz, powinieneś zobaczyć menu GRUB.

  2. Wybierz pozycję zawierającą ( tryb odzyskiwania ) i poczekaj.

  3. Powinieneś teraz zobaczyć menu. Wybierz:

    remount    Remount / read/write and mount all other file systems 
    

    i poczekaj, aż systemy plików zostaną zamontowane z uprawnieniami do odczytu / zapisu, a następnie naciśnij Enter.

    Jeśli ta opcja nie pojawi się lub nie będzie działać, możesz zamiast niej wybrać rootopcję i użyć następującego polecenia, aby zamontować partycję systemową:

    mount -o remount /
    

    Możesz sprawdzić, jaka jest twoja partycja systemowa za pomocą fsckpolecenia lub przeglądając /etc/mtab.

    Po pomyślnym uruchomieniu polecenia mount (tj. Bez komunikatów o błędach) przejdź bezpośrednio do kroku 5 poniżej.

  4. Po wybraniu remountopcji ponownie pojawi się menu. Wybierz:

    root       Drop to root shell prompt
    
  5. Teraz wprowadź jedno z następujących poleceń, aby ponownie dodać użytkownika do admingrupy (dla Ubuntu 11.10 i wcześniejszych):

    adduser <USERNAME> admin
    

    lub do sudogrupy (dla Ubuntu 12.04 i nowszych):

    adduser <USERNAME> sudo
    
  6. Uruchom ponownie i powinieneś móc sudoponownie użyć .

htorque
źródło
3
Jeśli nie widzisz menu „remont”, możesz najpierw wybrać „fsck”, spowoduje to ponowne zamontowanie systemu plików do odczytu / zapisu. Następnie możesz dodać użytkownika w trybie root.
Jiejing Zhang,
1
Działa to dla mnie, tyle że musiałem zamontować system plików za pomocą polecenia mount -o remount,rw /.
Passuf,
To działa idealnie. Wygląda też na duży problem bezpieczeństwa. Myślę, że powinieneś wyłączyć tę funkcję na rozsądnych maszynach? - W trybie odzyskiwania nigdy nie jestem w stanie zrestartować się. Zawsze muszę używać reboot -f.
Romain Vincent
15

Jeśli w systemie jest włączone logowanie roota, po prostu upuść terminal przez Control+ Alt+ F1bez logowania do X. Zaloguj się jako root, a następnie po prostu dodaj żądanego użytkownika do admingrupy (dla Ubuntu 11.10 i wcześniejszych):

adduser desired_user_name admin

W systemie Ubuntu 12.04 i nowszych dodaj użytkownika do sudogrupy:

adduser desired_user_name sudo

Jeśli nie włączyłeś logowania roota, po prostu wybierz tryb odzyskiwania z Grub, a następnie spróbuj powłoki roota.

Root Shell

Zamontuj system plików jako odczyt-zapis:

mount -o rw,remount /

Następnie możesz ponownie dodać żądanego użytkownika do grupy admin(lub sudo).

żartobliwy
źródło
Ale nie mogę uzyskać dostępu do sudo od mojego użytkownika!
Jamie Hutber,
7

Próbowałem różnych kombinacji po zrobieniu tego samego, ponieważ opcja menu remount wydaje się nie być w 12.10. Próbowałem wszystkiego innego w tym poście od roota. Ostatni był

umount -a
mount -o -w /<path> /

Spowodowało to, że system plików wciąż jest ro z powodu ustawienia w fstab, aby uruchomić ro na błędzie systemu plików, myślę, że z informacją, że wyglądał jak ro po zamontowaniu.

W końcu udało mi się to

mount -o rw,remount /

Chociaż nie jestem pewien, jak to się różni od poprzedniego zestawu poleceń.

Po zastosowaniu tej odmiany dodawanie użytkownika do grupy admin(11.10 i wcześniejszej) lub sudo(12.04 i późniejszej) odbywa się w ten sam sposób:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later
Jodi
źródło
2

Stare pytanie, ale przytrafiło mi się również (Ubuntu 14.04).

Nie udało mi się zalogować do trybu odzyskiwania i uzyskać dostępu do powłoki roota, co opisuje wiele odpowiedzi tutaj i gdzie indziej: dostęp do powłoki roota z GRUB-a wydaje się być chroniony hasłem.

Więc rozwiązałem problem w ten sposób:

  1. uruchomić na pendrive USB
  2. otwórz muszlę
  3. uzyskać dostęp do głównego systemu plików HD Linux (jego punkt montowania można znaleźć w pasku adresu eksploratora plików GUI, zwykle po CTRL-L). cdw tym.
  4. edytuj plik etc/group(powiedz za pomocą nano etc/grouplub cokolwiek innego)
  5. znajdź wiersz „sudo”. Powinien wyglądaćsudo:x:27:admin,bob,alice
  6. dodaj się do sudowiersza, oddzielając przecinkami

Oczywiście oznacza to, że plik etc/sudoersnadal ma linię

%sudo   ALL=(ALL:ALL) ALL

co oznacza, że ​​wszyscy członkowie grupy sudomają całkowitą kontrolę. Najpierw sprawdź to.

Pracował bezproblemowo.

kebs
źródło
0

Popełniłem ten sam błąd, dodając moje konto do grupy (zapomniałem -a). Miałem zainstalowany system z zablokowanym loginem roota, a moje konto było jedynym na komputerze.

Przyjęta odpowiedź nie pomogła mi. Podczas uruchamiania w trybie odzyskiwania dostałem tylko nieprzydatną wiadomość

Nie można otworzyć dostępu do konsoli, konto root jest zablokowane. Więcej informacji na stronie podręcznika użytkownika sulogin (8)
Naciśnij ENTER, aby kontynuować

Po naciśnięciu klawisza ENTER system uruchomił się normalnie: nie można uzyskać dostępu do konta root, aby rozwiązać problem. Pozostawiam tę odpowiedź na wypadek, gdyby ktoś w tym momencie znalazł się w moich butach. Użyj następujących opcji tylko wtedy, gdy nie możesz przejść do trybu odzyskiwania za pomocą menu Grub .

Przewodnik dotyczący uzyskania powłoki roota:

  1. Uruchom system w menu Grub i zaznacz (ale nie naciskaj Enterdalej!) Normalną (domyślną, nie odzyskiwanie!) Opcję rozruchu.
  2. Prasa e. Grub wyświetli edytor wiersza poleceń z wieloma wierszami, z których każdy może wydawać się nieznany, jeśli nie onieśmiela. Nie martw się, wszelkie wprowadzone zmiany nie zostaną zapisane na stałe.
  3. Znajdź linię, która czyta linux ... ro .... To jest linia poleceń jądra. Wymień rożeton rw, aby korzeń systemu plików do zapisu / odczytu, a także dodać kolejną linię poleceń parametr jądra init=/bin/sh. To instruuje jądro do wykonania shzamiast /sbin/init. W końcu linia powinna wyglądać linux ... rw init=/bin/sh .... Uwaga: Możesz sobie poradzić nawet z gołym grub>monitem. Z przyjemnością wyjaśnię krok po kroku, jeśli wszystko inne zawiedzie dla ciebie; zostaw komentarz do tej odpowiedzi.
  4. Po zmianie naciśnij, F10aby użyć poleceń edytora do uruchomienia systemu (lub przeczytaj instrukcje uruchamiania bezpośrednio pod oknem edytora, jeśli Grub jest skompilowany inaczej). Dostaniesz monit o powłokę roota, ponieważ proces init działa jako PID 1 z tożsamością roota.
  5. Wprowadź na przykład zmianę, którą chcesz wprowadzić usermod -a -Gadm,sudo YOURUSERID. Potwierdź id -a YOURUSERID, że odzyskałeś członkostwo sudo. Jeśli pojawi się błąd „nie znaleziono polecenia”, użyj /sbin/usermodi /bin/id.
  6. W tym momencie nie można zamknąć systemu ani zrestartować systemu. reboot, haltLub poweroffnie będzie działać, a exitod powłoki spowoduje panikę jądra, ponieważ proces PID 1 nie oczekuje się po prostu wyjść. Następne dwa polecenia, które musisz wydać, to:

    sync
    exec /sbin/init
    

    syncna wypadek, gdyby coś poszło nie tak, aby zapisać wszystkie zmiany na dysku i execzastąpić powłokę rzeczywistą init(która może być systemd, upstart lub System V init, ale zawsze jest wywoływana /sbin/init). System najprawdopodobniej będzie nadal uruchamiał się normalnie (bez trybu odzyskiwania).

  7. Zaloguj się i zrestartuj system raz, np. sudo reboot- powinieneś odzyskać swoje uprawnienia sudo. Ponowne uruchomienie jest zalecane, ponieważ (choć bardzo rzadko) initmożna przekazać dodatkowe parametry podczas normalnego rozruchu, czego nie zrobiliśmy. W przypadku execniepowodzenia po prostu zresetuj maszynę i pozwól jej uruchomić się normalnie. Wszystkie nowoczesne systemy plików kronikowania, takie jak ext4, xfs i btrfs, odzyskują się szybko (najwyżej kilka sekund na sprawdzenie dziennika, jeśli synced przed resetowaniem), i wszystko będzie gotowe.

Trochę tła

Nie było dyskusji na temat zgłoszenia Debiana na temat tego samego problemu, i, o ile rozumiem, to zdecydowano funkcję, a nie błąd, który sądzę, aby były raczej pomyłka. Będąc w tym biznesie od 25 lat, nie mogę się nie zgodzić z argumentem Michaela Biebl w przesłaniu nr 31 w tym wątku:

Zastanów się: masz laptopa z zablokowanym kontem głównym. Domyślnie program ładujący gruba generuje pozycję rozruchową dla trybu ratunkowego. Tak więc, nawet jeśli zablokujesz bios, aby uniemożliwić uruchamianie z płyty CD-ROM lub USB, a ty zabezpieczysz gruba hasłem, ktoś może łatwo uzyskać dostęp do roota, jeśli zostawisz laptopa na chwilę bez nadzoru.

Poprawny, IMO, jeśli nie dość ogólny, sprzeciw został podany w wiadomości nr 70 przez Felipe Sateler:

Dla wielu (większości?) Komputerów dostęp fizyczny oznacza utratę bezpieczeństwa ze względu na bezpieczeństwo, ponieważ można po prostu zdemontować urządzenie i uzyskać dysk twardy.

Jest to szczególnie ważne w przypadku laptopa, o którym mowa w argumencie Michaela: jeśli pozostawisz go na chwilę bez opieki, a ktoś będzie szukał twoich danych, laptop po prostu zniknie, aby nigdy więcej go nie zobaczyć. I dla każdej maszyny, nie „wielu” lub „większości”, nawet tych przykręconych w 8 punktach do szafy, gdy tylko atakujący uzyska fizyczny dostęp do maszyny, gra naprawdę się kończy.

km
źródło