Disabilita l'autorizzazione sudo per l'utente dalla riga di comando


18

Ho attivato l'utente root in Ubuntu e voglio usare Ubuntu come server senza DE. Per questo voglio disabilitare il privilegio di sudo dato al primo utente. Come posso farlo dalla riga di comando? So di poter usare una GUI ma come farlo dalla riga di comando?


A seconda di come organizzi i tuoi gruppi, digita visudo
wojox

Risposte:


14

L'utente in questione ha i privilegi di sudo perché è nel admingruppo. Come ha commentato Wojox, è possibile utilizzare visudoe rimuovere i privilegi di sudo dal gruppo admin, ma ciò rimuoverà le funzionalità di sudo da tutti i membri del gruppo di amministratori non solo da un solo utente.

In alternativa, è possibile rimuovere l'utente dal gruppo admin. Se l'orientamento dello schermo viè considerato abbastanza da riga di comando, eseguire vigred eliminare il nome utente dalla riga appropriata.

Per una soluzione "pura" da riga di comando, prova gpasswd, poiché gestisce / etc / group e può aggiungere ed eliminare utenti dai gruppi.

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

Di seguito è la mia prima risposta prima di rendermi conto che c'era un modo meno stupido per farlo.

Se desideri un modo più complicato per farlo, puoi usarlo usermod.

Ecco una citazione dalla usermodpagina man:

-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.

Quindi devi specificare tutti i gruppi per l'utente tranne 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)

Infine, viola lo spirito della domanda, ma si potrebbe digitare users-admindalla riga di comando per modificare utenti e gruppi.


Sembra che il gruppo da rimuovere su Precise sia ora sudoinvece
Joril

2

Qualunque saggezza si possa trovare nelle risposte sopra, ho risolto il problema di abilitare l'account root e disabilitare sudo per un utente specificato come segue.

Per prima cosa abilita l'account root:

$ sudo passwd root

Maggiori informazioni nella documentazione di Ubuntu .

Poi:

  • diventare root
  • eseguire il backup e quindi modificare / etc / group
  • diventa di nuovo utente per testare le modifiche

Questo è:

$ 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]

L'utente 'guest' è ora rimosso dal file sudoers. Se tutto è andato bene, qualsiasi comando sudo dovrebbe restituire un messaggio simile a questo:

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

Un ospite che accede a questo computer non può più confondere accidentalmente o volontariamente con il sistema, poiché per farlo è necessario essere root. Naturalmente, se aggiungi un nuovo utente, dovrai ripetere la modifica di / etc / group.

Saluti!

- linuxrev

(Ubuntu 12.04)


1

avvertimento

Attento, puoi bloccare te stesso fuori dal nostro sistema in questo modo! Assicurati sempre che l'utente root mantenga i suoi diritti e tu possa accedervi. Tieni in anticipo un terminale di root in modo da poter annullare le modifiche. Prova le impostazioni in un altro terminale prima di chiudere il tuo root-terminal!

soduers

Come descritto in un'altra risposta . Modifica /etc/sudoersinvocando visudo in shell:

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

Quindi cambia la linea che dice qualcosa di simile a questo:

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

a questo:

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

Oppure elimina la riga, se sei sicuro, il tuo account utente root è abilitato.

gruppo

L'utente predefinito è membro del gruppo "admin". Se lo preferisci, puoi anche revocare l'appartenenza degli utenti a quel gruppo. Fallo seguendo il mio ultimo link o rimuovi il suo nome dalla riga admin:x:120:defaultusernel /etc/groupfile:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group

1
@psusi: No, sei SBAGLIATO. PUO 'cancellarlo. Come ha detto "Ho attivato l'utente root in Ubuntu", può SEMPRE ACCEDERE COME UTENTE DI ROOT PER ACCEDERE A GUADAGNO. Correggi il tuo voto negativo del mio post.
con-f-use
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.