web-dev-qa-db-fra.com

Désactiver l'autorisation Sudo pour l'utilisateur à partir de la ligne de commande

J'ai activé l'utilisateur root dans Ubuntu et souhaite utiliser Ubuntu en tant que serveur sans DE. Pour cela, je souhaite désactiver le privilège Sudo accordé au premier utilisateur. Comment puis-je faire cela en ligne de commande? Je sais que je peux utiliser une interface graphique, mais comment le faire en ligne de commande?

18
sagarchalise

L'utilisateur en question dispose des privilèges Sudo car il appartient au groupe adminname__. Comme l'a commenté wojox, vous pouvez utiliser visudoet supprimer les privilèges Sudo du groupe d'administration, mais cela supprime les capacités de Sudo des membres tous du groupe d'administration, et pas uniquement de l'utilisateur.

Vous pouvez également supprimer l'utilisateur du groupe d'administrateurs. Si viorienté écran est considéré comme suffisant pour la ligne de commande, exécutez vigret supprimez le nom d'utilisateur de la ligne appropriée.

Pour une solution "pure" en ligne de commande, essayez gpasswdname__, car il administre/etc/group et permet d'ajouter et de supprimer des utilisateurs des groupes.

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

Ci-dessous ma première réponse avant que je réalise qu'il y avait un moyen moins bête de le faire.

Si vous souhaitez une méthode plus compliquée, vous pouvez utiliser usermodname__.

Voici une citation de la page de manuel usermodname__:

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

Vous devez donc spécifier tous les groupes pour l'utilisateur, à l'exception de adminname__.

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)

Enfin, cela enfreint l'esprit de la question, mais vous pouvez taper users-admin à partir de la ligne de commande pour modifier les utilisateurs et les groupes.

14
Bribles

Quelle que soit la sagesse trouvée dans les réponses ci-dessus, j'ai résolu le problème de l'activation du compte root et de la désactivation de Sudo pour un utilisateur spécifié, comme suit.

Commencez par activer le compte root:

$ Sudo passwd root

Plus d'informations dans le Documentation Ubunt .

Ensuite:

  • devenir racine
  • sauvegarder puis éditer/etc/group
  • redevenir utilisateur pour tester les modifications

C'est:

$ 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'utilisateur 'guest' est maintenant supprimé du fichier sudoers. Si tout se passe bien, toute commande Sudo devrait renvoyer un message comme celui-ci:

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

Un invité qui se connecte à cet ordinateur ne peut plus accidentellement ni volontairement perturber le système, car vous devez être root pour le faire. Bien sûr, si vous ajoutez un nouvel utilisateur, vous devrez répéter l’édition de/etc/group.

À votre santé!

- linuxrev

(Ubuntu 12.04)

2
user171569

Attention

Attention, vous pouvez vous verrouiller hors de notre système de cette façon! Assurez-vous toujours que l'utilisateur root conserve ses droits et vous pourrez y accéder. Laissez au préalable un terminal root ouvert pour pouvoir annuler les modifications. Testez les paramètres dans un autre terminal avant de fermer votre terminal root!

sodeurs

Comme décrit dans autre réponse . Editez /etc/sudoers en appelant visudo dans Shell:

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

Puis changez la ligne qui dit quelque chose de similaire à ceci:

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

pour ça:

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

Ou supprimez la ligne, si vous êtes sûr, votre compte utilisateur root est activé.

groupe

L'utilisateur par défaut est membre du groupe 'admin'. Si vous le préférez, vous pourriez tout aussi bien révoquer l'adhésion des utilisateurs à ce groupe. Pour ce faire, suivez mon dernier lien ou supprimez son nom de la ligne admin:x:120:defaultuser dans le fichier /etc/group:

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