Wie kann ich über die Befehlszeile einen neuen Benutzer als Sudoer hinzufügen?

819

Nachdem ich einen Benutzer mit hinzugefügt habe adduser, kann ich ihn nicht über System> Administration> Benutzer und Gruppen anzeigen, es sei denn, ich melde mich ab und wieder an. Ist das normal?

Kann ich auch einen neu hinzugefügten Benutzer als sudoer festlegen oder muss ich das erst ändern, nachdem ich es hinzugefügt habe? Wie kann ich das über die Shell machen?

Kann ich den ursprünglichen Benutzer löschen, der bei der Erstinstallation von Ubuntu erstellt wurde, oder ist dieser Benutzer irgendwie "speziell"?

David B
quelle

Antworten:

1023

Fügen Siesudo einfach den Benutzer zur Gruppe hinzu :

sudo adduser <username> sudo

Die Änderung wird beim nächsten Anmelden des Benutzers wirksam.

Dies funktioniert, weil /etc/sudoerses vorkonfiguriert ist, um allen Mitgliedern dieser Gruppe Berechtigungen zu erteilen (Sie sollten keine Änderungen daran vornehmen müssen):

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

Solange Sie Zugriff auf einen Benutzer haben, der zu denselben Gruppen gehört wie Ihr "ursprünglicher" Benutzer, können Sie den alten Benutzer löschen.


Realistisch gibt es auch andere Gruppen, in denen Ihr neuer Benutzer Mitglied sein sollte. Wenn Sie den Kontotyp eines Benutzers in den Benutzereinstellungen auf Administrator einstellen, wird er mindestens in alle folgenden Gruppen eingeteilt:

adm sudo lpadmin sambashare

Da Ihre Systemkonfiguration variieren kann, empfehle ich, einen Blick auf die Ausgabe von groups <username>zu werfen, um festzustellen , welche Gruppen normalerweise verwendet werden.

ændrük
quelle
1
@ Dziamid Ich bin mir nicht sicher, wofür die sudoGruppe ist. Lass es uns herausfinden.
ændrük
7
Bitte beachten Sie, dass die adminGruppe in 12.04 LTS nicht existiert.
Ryan
18
Die Frage bezieht sich auf einen vorhandenen Benutzer, aber wenn es sich um einen neuen Benutzer handelte, müsste "sudo adduser <Benutzername> sudo" von "sudo adduser <Benutzername>" vorangestellt werden . Ansonsten erhält man die Fehlermeldung "Der Benutzer <Benutzername> existiert nicht".
Peter Mortensen
9
Das hat bei mir nicht funktioniert. Ich kann sudo immer noch nicht verwenden.
Chovy
10
Musste mich erneut anmelden, damit es funktioniert.
PeterM
193

Ich tat

sudo usermod -a -G sudo <username>

wie hier empfohlen .

Leszek
quelle
28
Gruppensudo existiert nicht
Aaron Esau
Die einzige funktionierende Lösung hier. Ubuntu 16
Makan Tayebi
5
Für einen bestehenden Benutzer ist dies die richtige Lösung. Es sollte als Antwort markiert werden.
Yokai
3
Vergessen Sie nicht, -aFlagge oder Sie werden Benutzer aus allen Gruppen entfernen, außersudo
RousseauAlexandre
@ RousseauAlexandre unbedingt! Dies ist besonders wichtig, wenn Sie versuchen, sich einer Nicht-Sudo-Gruppe hinzuzufügen, und Sie der einzige auf dem Computer sind, der über Sudo-Berechtigungen verfügt ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Öffnen Sie die sudoers-Datei: sudo visudoöffnet die /etc/sudoersDatei in dem in definierten Editor $EDITOR(wahrscheinlich GNU nano - setzen Sie die Variable, wenn es nicht das ist, was Sie wollen, z. B. export EDITOR="nano"und versuchen Sie es sudo visudoerneut).

Fügen Sie die folgende Zeile am Ende der Datei hinzu.

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

Führen Sie dann WriteOut mit Ctrl+ aus O. Der Editor fragt Sie nach dem Dateinamen, in den Sie schreiben möchten. Die Standardeinstellung ist eine temporäre Datei, mit der visudovor dem Speichern in der eigentlichen sudoersDatei nach Syntaxfehlern gesucht wird . Drücken Sie Enter, um es zu akzeptieren. Beenden Sie den Nano-Editor mit Ctrl+ X.

Getan!

Mithun Sreedharan
quelle
9
Es ist nicht ratsam, der sudoers-Datei explizit einen einzelnen Benutzer hinzuzufügen, anstatt diesen Benutzer einfach der entsprechenden Gruppe hinzuzufügen sudo.
Kzqai
3
Mit sudo visudo können Sie nach /etc/sudoers.tmp ausgeben. Beim Verlassen des Editors wird / etc / sudoers von selbst überschrieben
Climbatize
1
und visudo überprüft die Syntax, um sicherzustellen, dass keine Fehler
vorliegen
Syntaxfehler, wenn Sie dies verwenden.
Jheriko
2
Die anderen Lösungen eignen sich hervorragend für Betriebssysteme mit einer integrierten sudoGruppe, aber für gelegentliche Systeme ohne dedizierte sudoGruppe funktioniert diese Lösung. Die einzige Empfehlung, die ich habe, ist, dass Sie vermeiden möchten, sudosich in die Prozedur einzumischen, da sie möglicherweise noch nicht eingerichtet ist! Einfach zu umgehen su -und dann einfach visudio. Dies funktioniert auf Gentoo.
Tresf
30

Eines muss ich hinzufügen, ich bin sicher, dass viele Leute nicht verstehen:

Wenn Sie bereits eine ausgeführt haben adduser "username", können Sie trotzdem eine adduser "username" sudoausführen. Dieser Benutzer wird dann ordnungsgemäß zur Gruppe hinzugefügt.

Eigentlich klappt es beim ersten mal nicht so sudo adduser username sudo. Es wird Ihnen einen Fehler geben. Zusammenfassend bedeutet dies, dass Sie zuerst das Benutzerkonto erstellen müssen, bevor Sie sie einer Gruppe hinzufügen können.

TaunT406
quelle
11

Alle Mitglieder der Gruppe admindürfen in Ubuntu standardmäßig sudo verwenden. Am einfachsten ist es also, das Benutzerkonto der adminGruppe hinzuzufügen .

Wenn Sie dem Benutzerkonto keinen vollständigen Root-Zugriff gewähren möchten, müssen Sie die Datei / etc / sudoer mit visudo bearbeiten (dies stellt sicher, dass Sie keine Syntaxfehler in der Datei haben und die Sudofähigkeit insgesamt verlieren) dass Sie angeben, welche Befehle dieser Benutzer (oder eine neue Gruppe) als root ausführen darf.

Das sudoer-Handbuch gibt Ihnen weitere Informationen dazu. Sie können festlegen, welche Befehle von einem bestimmten Benutzer / einer bestimmten Gruppe als root ausgeführt werden dürfen.

txwikinger
quelle
1
Ich dachte, dafür war die wheelGruppe?
Marco Ceppi
@Marco Das kenne ich nicht. Kannst du ein bisschen mehr erklären?
ændrük
@MarcoCeppi, die Radgruppe wurde auf einigen Systemen verwendet, um die Verwendungsmöglichkeiten der Benutzer einzuschränken su. Ubuntu verwendet sudound die Admin-Gruppe.
Psusi
11

auf CentOS mache ich als root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
jowan sebastian
quelle
10

Das folgende Snippet gewährt root Zugriff auf den Benutzernamen, ohne sich explizit als root anzumelden.

Stellen Sie sicher, dass der Benutzer zuerst der sudo-Gruppe hinzugefügt wird. Getestet auf Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
quelle
funktioniert das unter Ubuntu?
Jowan Sebastian
1
Ja, überprüft auf Ubuntu 16.04
Sandeep
3
Warum nicht in einer Zeile:useradd -m username --groups sudo
Aidan Melen