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

18

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

sagarchalise
la source
Selon la façon dont vous configurez vos groupes, tapez visudo
wojox

Réponses:

14

L'utilisateur en question dispose des privilèges sudo car il fait partie du admingroupe. Comme l'a commenté wojox, vous pouvez utiliser visudoet supprimer les privilèges sudo du groupe admin, mais cela supprimerait les capacités sudo de tous les membres du groupe admin et pas seulement du seul utilisateur.

Vous pouvez également supprimer l'utilisateur du groupe d'administration. Si l'écran viest suffisamment considéré comme une ligne de commande, exécutez vigret supprimez le nom d'utilisateur de la ligne appropriée.

Pour une solution de ligne de commande "pure", essayez gpasswd, car il administre / etc / group et peut ajouter et 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

Voici ma première réponse avant de réaliser qu'il y avait une façon moins stupide de le faire.

Si vous souhaitez une manière plus compliquée de le faire, vous pouvez l'utiliser usermod.

Voici une citation de la usermodpage de manuel:

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

Enfin, cela viole l'esprit de la question, mais on pourrait taper users-admindepuis la ligne de commande pour modifier les utilisateurs et les groupes.

Bribles
la source
Il semble que le groupe à supprimer sur Precise soit maintenant à la sudoplace
Joril
2

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

Activez d'abord le compte root:

$ sudo passwd root

Plus d'informations dans la documentation Ubuntu .

Alors:

  • devenir root
  • sauvegarder puis éditer / etc / group
  • redevenez 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 «invité» est désormais supprimé du fichier sudoers. Si tout s'est bien passé, toute commande sudo devrait renvoyer un message semblable à celui-ci:

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

Un invité qui se connecte sur cet ordinateur ne peut plus accidentellement ou volontairement jouer avec 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)

user171569
la source
1

avertissement

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

soduers

Comme décrit dans une autre réponse . Modifiez /etc/sudoersen invoquant visudo dans le shell:

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

Modifiez ensuite 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 d'utilisateur root est activé.

groupe

L'utilisateur par défaut est membre du groupe «admin». Si vous le préférez, vous pouvez tout aussi bien révoquer l'appartenance des utilisateurs à ce groupe. Pour ce faire, suivez mon dernier lien ou supprimez son nom de la ligne admin:x:120:defaultuserdu /etc/groupfichier:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group
embrouiller
la source
1
@psusi: Non, vous avez tort. Il PEUT le supprimer. Comme il l'a dit "J'ai activé l'utilisateur root dans ubuntu", il peut TOUJOURS SE CONNECTER EN TANT QU'UTILISATEUR RACINE POUR GAGNER L'ACCÈS. Veuillez corriger votre downvote de mon message.
con-f-use