Deaktivieren Sie die sudo-Berechtigung für Benutzer über die Befehlszeile

18

Ich habe den root-Benutzer in Ubuntu aktiviert und möchte Ubuntu als Server ohne DE verwenden. Aus diesem Grund möchte ich die sudo-Berechtigung deaktivieren, die dem ersten Benutzer erteilt wurde. Wie kann ich das von der Kommandozeile aus machen? Ich weiß, dass ich eine GUI verwenden kann, aber wie geht das über die Befehlszeile?

sagarchalisieren
quelle
Je nachdem, wie Sie Ihre Gruppen einrichten, geben Sie visudo
wojox

Antworten:

14

Der betreffende Benutzer verfügt über Sudo-Berechtigungen, da er sich in der adminGruppe befindet. Wie von wojox kommentiert, könnten Sie visudosudo-Berechtigungen für die Admin-Gruppe verwenden und daraus entfernen, aber dies würde die sudo-Funktionen für alle Mitglieder der Admin-Gruppe und nicht nur für den einen Benutzer entfernen .

Alternativ können Sie den Benutzer aus der Administratorgruppe entfernen. Wenn vidie Befehlszeile als bildschirmorientiert angesehen wird, führen Sie vigrden Benutzernamen aus und löschen Sie ihn in der entsprechenden Zeile.

Versuchen gpasswdSie für eine "reine" Befehlszeilenlösung, / etc / group zu verwalten und Benutzer zu Gruppen hinzuzufügen und daraus zu löschen.

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

Unten ist meine erste Antwort, bevor mir klar wurde, dass es eine weniger dumme Möglichkeit gibt, dies zu tun.

Wenn Sie eine kompliziertere Vorgehensweise wünschen, können Sie verwenden usermod.

Hier ist ein Zitat aus der usermodManpage:

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

Sie müssen also alle Gruppen für den Benutzer mit Ausnahme von angeben admin.

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

Schließlich verstößt es gegen den Sinn der Frage, aber man könnte users-adminüber die Befehlszeile eingeben, um Benutzer und Gruppen zu ändern.

Bestechungsgelder
quelle
Es sieht aus wie die Gruppe auf präzise zu entfernen , ist jetzt sudostatt
Joril
2

Was auch immer in den obigen Antworten zu finden ist, ich habe das Problem der Aktivierung des Root-Kontos und der Deaktivierung von sudo für einen bestimmten Benutzer wie folgt gelöst.

Aktivieren Sie zuerst das Root-Konto:

$ sudo passwd root

Weitere Informationen in der Ubuntu-Dokumentation .

Dann:

  • wurzel werden
  • sichern und dann bearbeiten / etc / group
  • Werden Sie erneut Benutzer, um die Änderungen zu testen

Das ist:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

Der Benutzer 'guest' wird nun aus der sudoers-Datei entfernt. Wenn alles geklappt hat, sollte ein sudo-Befehl eine Meldung wie die folgende zurückgeben:

guest is not in the sudoers file.  This incident will be reported.

Ein Gast, der sich auf diesem Computer anmeldet, kann nicht mehr versehentlich oder willentlich mit dem System in Konflikt geraten, da Sie dafür root sein müssen. Wenn Sie einen neuen Benutzer hinzufügen, müssen Sie natürlich die Bearbeitung von / etc / group wiederholen.

Prost!

- linuxrev

(Ubuntu 12.04)

user171569
quelle
1

Warnung

Vorsicht, Sie können sich auf diese Weise aus unserem System ausschließen! Stellen Sie immer sicher, dass der Root-Benutzer seine Rechte behält und Sie darauf zugreifen können. Lassen Sie zuvor ein Root-Terminal geöffnet, damit Sie Änderungen rückgängig machen können. Testen Sie die Einstellungen in einem anderen Terminal, bevor Sie Ihr Root-Terminal schließen!

soduers

Wie in einer anderen Antwort beschrieben . Bearbeiten /etc/sudoersdurch Aufrufen von visudo in der Shell:

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

Ändern Sie dann die Zeile, in der etwas Ähnliches steht:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

dazu:

# root may gain root privileges
root ALL=(ALL) ALL

Oder löschen Sie die Zeile, wenn Sie sicher sind, dass Ihr Root-Benutzerkonto aktiviert ist.

Gruppe

Der Standardbenutzer ist Mitglied der Gruppe 'admin'. Wenn Sie es vorziehen, können Sie auch die Mitgliedschaft des Benutzers in dieser Gruppe widerrufen . Folgen Sie dazu meinem letzten Link oder entfernen Sie seinen Namen aus der Zeile admin:x:120:defaultuserin der /etc/groupDatei:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group
verwechseln
quelle
1
@psusi: Nein, du bist falsch. Er kann es löschen. Wie er sagte "Ich habe Root-Benutzer in Ubuntu aktiviert" bedeutet, er kann sich immer als Root-Benutzer anmelden, um Zugriff zu erhalten. Bitte korrigieren Sie Ihre Ablehnung meines Beitrags.
con-f-use