Jak mogę dodać nowego użytkownika jako sudoer za pomocą wiersza poleceń?

819

Po dodaniu użytkownika za pomocą addusernie widzę go za pomocą opcji System> Administracja> Użytkownicy i grupy, chyba że wyloguję się, a następnie zaloguję ponownie. Czy to normalne?

Czy mogę również ustawić nowo dodanego użytkownika jako sudoer, czy muszę to zmienić dopiero po dodaniu? Jak mogę to zrobić za pomocą powłoki?

Wreszcie, czy mogę usunąć pierwotnego użytkownika, który został utworzony podczas pierwszej instalacji Ubuntu, czy może ten użytkownik jest w jakiś sposób „specjalny”?

David B.
źródło

Odpowiedzi:

1023

Wystarczy dodać użytkownika do sudogrupy :

sudo adduser <username> sudo

Zmiana zacznie obowiązywać przy następnym logowaniu użytkownika.

Działa /etc/sudoersto, ponieważ jest wstępnie skonfigurowane do udzielania uprawnień wszystkim członkom tej grupy (nie należy wprowadzać żadnych zmian w tym):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Tak długo, jak masz dostęp do użytkownika należącego do tej samej grupy, co „oryginalny” użytkownik, możesz usunąć starego.


Realistycznie istnieją też inne grupy, do których powinien należeć nowy użytkownik. Jeśli ustawisz typ konta użytkownika na Administrator w Ustawieniach użytkowników, zostanie on umieszczony w co najmniej wszystkich tych grupach:

adm sudo lpadmin sambashare

Ponieważ konfiguracja systemu może się różnić, sugeruję przyjrzeć się wynikowi, groups <username>aby zobaczyć, które grupy są normalnie używane.

ændrük
źródło
1
@Dziamid Nie jestem pewien, do czego sudosłuży grupa. Dowiedzmy Się.
ændrük
7
Należy pamiętać, że admingrupa nie istnieje w 12.04 LTS.
Ryan
18
Pytanie dotyczy istniejącego użytkownika, ale gdyby było dla nowego użytkownika, „sudo adduser <nazwa użytkownika> sudo” musiałby być poprzedzony „sudo adduser <nazwa użytkownika>” . W przeciwnym razie pojawia się komunikat o błędzie „Użytkownik <nazwa użytkownika> nie istnieje”.
Peter Mortensen
9
to nie działało dla mnie. nadal nie mogę używać sudo.
chovy
10
Musiałem zalogować się ponownie, aby działało.
PeterM,
193

Zrobiłem

sudo usermod -a -G sudo <username>

zgodnie z zaleceniami tutaj .

Leszek
źródło
28
grupa sudo nie istnieje
Aaron Esau
Jedyne działające rozwiązanie tutaj. Ubuntu 16
Makan Tayebi
5
Dla istniejącego użytkownika jest to prawidłowe rozwiązanie. Powinien być oznaczony jako odpowiedź.
Jokai
3
Nie zapomnij -aflagi lub usuniesz użytkownika ze wszystkich grup z wyjątkiemsudo
RousseauAlexandre
@RousseauAlexandre absolutnie! co najważniejsze, zwłaszcza jeśli próbujesz dołączyć do grupy innej niż sudo i jesteś jedynym na komputerze z uprawnieniami sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Otwórz plik sudoers: sudo visudootworzy /etc/sudoersplik w edytorze zdefiniowanym w $EDITOR(prawdopodobnie GNU nano - ustaw zmienną, jeśli nie jest to, czego chcesz, np. export EDITOR="nano"I spróbuj sudo visudoponownie).

Dodaj poniższy wiersz na końcu pliku.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Następnie wykonaj WriteOut za pomocą Ctrl+ O. Edytor poprosi o nazwę pliku, w którym chcesz zapisać. Domyślnie będzie to plik tymczasowy, który służy visudodo sprawdzania błędów składniowych przed zapisaniem do rzeczywistego sudoerspliku. Naciśnij, Enteraby zaakceptować. Zamknij edytor nano za pomocą Ctrl+ X.

Gotowy!

Mithun Sreedharan
źródło
9
Byłoby niewskazane, aby jawnie dodać pojedynczego użytkownika do pliku sudoers, zamiast po prostu dodać tego użytkownika do odpowiedniej grupy sudo.
Kzqai
3
dzięki sudo visudo możesz wyprowadzać dane do pliku /etc/sudoers.tmp, gdy opuszczasz edytor, sam nadpisuje / etc / sudoers
Climbatize
1
a visudo zweryfikuje składnię, aby upewnić się, że nie ma błędów
mchid
błąd składniowy, jeśli go używasz.
jheriko
2
Inne rozwiązania działają doskonale dla systemów operacyjnych z wbudowaną sudogrupą, ale w przypadku systemu okazjonalnego bez dedykowanej sudogrupy to rozwiązanie działa. Jedyne zalecenie, jakie mam, to unikanie stawiania sudosię w procedurze, ponieważ może jeszcze nie zostać skonfigurowana! Łatwe do obejścia przez wykonanie, su -a następnie po prostu visudio. Działa to na Gentoo.
tresf
30

Muszę dodać, że na pewno wiele osób nie rozumie:

Gdy już to zrobisz adduser "username", nadal możesz wrócić i zrobić adduser "username" sudo, a następnie poprawnie doda tego użytkownika do grupy.

Właściwie to nie zadziała za pierwszym razem sudo adduser username sudo. To da ci błąd. Co w skrócie oznacza, że ​​musisz najpierw utworzyć konto użytkownika, aby móc dodać je do grupy.

TaunT406
źródło
11

Wszyscy członkowie grupy adminsą w systemie Ubuntu domyślnie dopuszczeni do korzystania z sudo, więc najprostszym sposobem jest dodanie konta użytkownika do admingrupy.

Jeśli nie chcesz udzielać użytkownikowi konta pełnego dostępu do katalogu głównego, musisz edytować plik / etc / sudoer za pomocą visudo (upewnia się, że nie ma żadnych błędów składniowych w pliku i nie tracisz możliwości sudo) w pewien sposób że określasz, jakie polecenia ten użytkownik (lub nowa grupa) może wykonywać jako root.

Podręcznik sudoer dostarczy ci więcej informacji na ten temat. Możesz określić, które polecenia mogą być wykonywane przez określonego użytkownika / grupę jako root.

txwikinger
źródło
1
Myślałem, że po to jest wheelgrupa?
Marco Ceppi
@Marco Nie znam tego. Czy możesz wyjaśnić coś więcej?
ændrük
@MarcoCeppi, grupa kół była używana w niektórych systemach w celu ograniczenia możliwości korzystania przez użytkowników su. Używa Ubuntu sudoi grupa administracyjna.
psusi
11

na CentOS robię jako root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
Jowan Sebastian
źródło
10

Poniższy fragment zapewnia rootowi dostęp do nazwy użytkownika bez jawnego logowania się jako root.

Upewnij się, że użytkownik został najpierw dodany do grupy sudo. Testowane na Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
źródło
czy to działa na Ubuntu?
Jowan Sebastian
1
Tak sprawdzono na Ubuntu 16.04
Sandeep
2
dlaczego nie w jednej linii:useradd -m username --groups sudo
Aidan Melen,