Jak dodać użytkownika do grupy „sudo”?

186

W /etc/sudoerswidzę tak:

# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL

Jak mogę dodać użytkownika do tej sudogrupy?

młynek do kawy
źródło
Czy ktoś jeszcze próbuje zmusić sudo do pracy bez hasła na Ubuntu 17?
Adam F
@AdamF spójrz tutaj . Następnym razem zadaj nowe pytanie, jeśli chcesz uzyskać szybszą odpowiedź. ;-)
Fabby
Młynek do kawy: czy mógłbyś zmienić swoją akceptację na najbardziej pozytywną odpowiedź, ponieważ jest to lepszy sposób? (brak hasła)
Fabby

Odpowiedzi:

249
sudo usermod -aG sudo <username>

To ajest bardzo ważne. Bez niego zostaną usunięte ze wszystkich innych grup. Aby to zadziałało, musisz ponownie uruchomić powłokę / terminal lub wylogować się i zalogować ponownie.

Zobacz też:

maco
źródło
Zrobiłem to, co zaleciłeś, ale terminal powiedział mi bash: sudo: command not found, dlaczego?
Teifi
@Teifi, co oznacza, że ​​prawdopodobnie nie masz sudozainstalowanego lub z jakiegoś dziwnego powodu nie znajduje się na twojej drodze. Co dzieje się, gdy biegniesz which sudo?
n0pe
Nowe terminale nie wystarczyły. Skończyło się ponowne uruchamianie z innego powodu i teraz działa. Prawdopodobnie wylogowanie / zalogowanie.
deed02392
Wiem, że ajest to append, ale myślę, że bardziej przydatne będzie zastosowanie append jako domyślnego zachowania. Utworzenie aliasu jest łatwe, więc groupadd grouppo prostu go dołącz. Wykonałem polecenie bez -a dzisiaj, ponieważ nie pamiętałem -aargumentu.
erm3nda
Chociaż jest to forum Ubuntu, dla CentOS musiałem to zrobić sudo usermod -aG sudo <username>. Ponieważ nie było łatwego sposobu, aby się tego dowiedzieć.
akki
43

Możesz użyć do tego interfejsu GUI do zarządzania użytkownikami (to samo miejsce, w którym tworzysz użytkowników) lub użyć sudo adduser <username> sudow wierszu polecenia.

txwikinger
źródło
2
Jest to również wspomniane w dokumentacji ubuntu na temat RootSudo, chociaż odnoszą się one do grupy administracyjnej zamiast do grupy sudo
icc97
8
+1: to najłatwiejszy do zapamiętania, prosty i intuicyjny sposób na dodanie użytkownika do grupy!
Andrea Corbellini,
Daje mi to błąd mówiącUsage: adduser [options] LOGIN\n adduser -D\n adduser -D [options]\n
akki
23

Możesz także użyć interfejsu graficznego. Kliknij koło zębate w prawym górnym rogu panelu, a następnie wybierz „Ustawienia systemu”, a następnie „Konta użytkowników”

Musisz kliknąć mały przycisk odblokowania, aby móc edytować rzeczy w tym oknie. Następnie kliknij konto danej osoby i wybierz odpowiednie menu „Rodzaj konta”

wprowadź opis zdjęcia tutaj

qbi
źródło
Mam Ubuntu 10.10, ale mój interfejs graficzny jest jakoś zablokowany. Otwiera się, ale po naciśnięciu przycisków nic się nie dzieje. Przypuszczam, że jest to coś związanego z uprawnieniami (właściwie jestem sudoer). Jak mogę rozwiązać ten problem?
linello
Czy kliknąłeś przycisk „odblokuj”?
daboross
Niezła animacja! Chciałbym zrobić taką animację gif, aby pokazać nowe funkcje mojej aplikacji internetowej? Jestem na Lubuntu 16.04 ...
Stephane
20

To naprawdę proste, jeśli używasz Unity jako środowiska pulpitu.

Jeśli już utworzyłeś użytkownika, możesz po prostu zmienić go ze Standardowego na Administratora , w przeciwnym razie upewnij się, że wybrałeś Administratora podczas tworzenia nowego.

Nie zapomnij odblokować przed próbą zmiany

wprowadź opis zdjęcia tutaj

Bruno Pereira
źródło
2
Bardzo fajnie wyglądająca animacja GIF! +1 Jak to zrobiłeś? Przeniesiono pytanie tutaj .
hhh
2

sudo gpasswd -a $USER sudo

joschi
źródło
2

Jestem spóźniony na przyjęcie, ale ta odpowiedź może pomóc komuś, kto używa Ubuntu w kontenerze Docker.

Niedawno stworzyłem kontener Docker oparty na Ubuntu 16.04.1.

Domyślnie obraz Docker Ubuntu jest uproszczoną wersją Ubuntu, która nie ma zdecydowanej większości popularnych narzędzi, w tym sudo.

Poza tym domyślnie użytkownik jest zalogowany do kontenera Docker jako root.

Dlatego uruchomiłem kontener docker runpoleceniem i zainstalowałem pakiet „sudo”:

root@default:/# apt-get install sudo

Uruchomienie polecenia adduser myuser sudozgłosiło błąd adduser: The user 'myuser' does not exist.. Po przeczytaniu tej odpowiedzi najpierw uruchomiłem polecenie, aby utworzyć użytkownika:

root@default:/# adduser myuser

Następnie uruchom następujące polecenie:

root@default:/# adduser myuser sudo
Adding user `myuser' to group `sudo' ...
Adding user myuser to group sudo
Done.

Użytkownik myuser został pomyślnie dodany do grupy sudo.

Antony
źródło
1

Użyj usermod. Dodaj uprawnienie sudo za pomocą następującego polecenia:

usermod -aG sudo <your username>

Pamiętaj, że musisz to zrobić, używając konta root lub innego konta z uprawnieniami sudo. Jeśli z jakiegoś powodu nie masz dostępu do innego konta i nie znasz hasła roota, będziesz potrzebować Live CD z Ubuntu (lub inną dystrybucją Linuksa), a następnie musisz chrootować do systemu plików Ubuntu i uruchom powyższe polecenie z chroota.

CodeExecution
źródło
1

Oto jak skonfigurować użytkownika innego niż root przy użyciu podstawowego obrazu ubuntu:18.04:

RUN \
    groupadd -g 999 foo && useradd -u 999 -g foo -G sudo -m -s /bin/bash foo && \
    sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^#includedir.*/## **Removed the include directive** ##"/g' && \
    echo "foo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
    echo "Customized the sudoers file for passwordless access to the foo user!" && \
    echo "foo user:";  su - foo -c id

Co dzieje się z powyższym kodem:

  • Użytkownik i grupa foozostaną utworzone.
  • Użytkownik foozostanie dodany zarówno do, jak fooi do sudogrupy.
  • Wartość uidi gidjest ustawiona na wartość 999.
  • Katalog domowy jest ustawiony na /home/foo.
  • Powłoka jest ustawiona na /bin/bash.
  • sedKomenda robi inline aktualizacje do /etc/sudoerspliku, aby umożliwić fooi rootużytkowników bez podawania haseł dostępu do sudogrupy.
  • sedKomenda wyłącza #includedirdyrektywy, który pozwoliłby żadnych plików w podkatalogach, aby zastąpić te aktualizacje wbudowanych.
Seth Bergman
źródło