Comment puis-je ajouter un nouvel utilisateur en tant que sudoer à l'aide de la ligne de commande?

820

Après avoir ajouté un utilisateur adduser, je ne peux pas le voir via Système> Administration> Utilisateurs et groupes, sauf si je me déconnecte puis me reconnecte. Est-ce normal?

De plus, puis-je définir un utilisateur nouvellement ajouté sudoou si je ne dois le modifier qu'après l'avoir ajouté? Comment puis-je faire cela via le shell?

Enfin, puis-je supprimer l'utilisateur d'origine créé lors de l'installation initiale d'Ubuntu ou cet utilisateur est-il en quelque sorte «spécial»?

David B
la source

Réponses:

1024

Ajoutezsudo simplement l'utilisateur au groupe :

sudo adduser <username> sudo

La modification prendra effet à la prochaine connexion de l'utilisateur.

Cela fonctionne car il /etc/sudoersest préconfiguré pour accorder des autorisations à tous les membres de ce groupe (vous ne devriez pas avoir à modifier cela):

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

Tant que vous avez accès à un utilisateur appartenant aux mêmes groupes que votre utilisateur "d'origine", vous pouvez supprimer l'ancien.


De manière réaliste, il existe également d'autres groupes dont votre nouvel utilisateur devrait être membre. Si vous définissez le type de compte d'un utilisateur sur Administrateur dans les paramètres de l'utilisateur, il sera placé dans au moins tous les groupes suivants:

adm sudo lpadmin sambashare

Étant donné que la configuration de votre système peut varier, nous vous conseillons de jeter un coup d'œil à la sortie groups <username>pour voir quels groupes sont normalement utilisés.

ændrük
la source
1
@ Djiamid, je ne suis pas sûr de savoir à quoi sudosert le groupe. Découvrons-le.
ændrük
7
Veuillez noter que le admingroupe n'existe pas dans 12.04 LTS.
Ryan
18
La question concerne un utilisateur existant, mais s'il s'agissait d'un nouvel utilisateur, "sudo adduser <nom d'utilisateur> sudo" devrait être précédé de "sudo adduser <nom d'utilisateur>" . Sinon on obtient le message d'erreur "L'utilisateur <nom d'utilisateur> n'existe pas".
Peter Mortensen
9
cela n'a pas fonctionné pour moi. ne peut toujours pas utiliser sudo.
Chovy
10
J'ai dû me connecter à nouveau pour que cela fonctionne.
PeterM
193

J'ai fait

sudo usermod -a -G sudo <username>

comme recommandé ici .

Leszek
la source
28
groupe sudo n'existe pas
Aaron Esau
La seule solution de travail ici. Ubuntu 16
Makan Tayebi
5
Pour un utilisateur existant, c'est la solution correcte. Il devrait être marqué comme la réponse.
Yokai
3
N'oubliez pas le -adrapeau ou vous retirerez l'utilisateur de tous les groupes saufsudo
RousseauAlexandre
@RousseauAlexandre absolument! le plus important, surtout si vous essayez de vous ajouter à un groupe autre que sudo et que vous êtes le seul sur la machine à avoir des privilèges sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Ouvrez le fichier sudoers: sudo visudoouvrira le /etc/sudoersfichier dans l'éditeur défini dans $EDITOR(probablement GNU nano - définissez la variable si ce n'est pas ce que vous voulez, par exemple, export EDITOR="nano"et réessayez sudo visudo).

Ajoutez la ligne ci-dessous à la fin du fichier.

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

Puis effectuez WriteOut avec Ctrl+ O. L'éditeur vous demandera le nom du fichier dans lequel écrire. Le fichier par défaut sera un fichier temporaire utilisé visudopour vérifier les erreurs de syntaxe avant l'enregistrement dans le sudoersfichier réel . Appuyez sur Enterpour l'accepter. Quittez l'éditeur nano avec Ctrl+ X.

Terminé!

Mithun Sreedharan
la source
9
Il serait déconseillé d’ajouter explicitement un utilisateur unique au fichier sudoers au lieu d’ajouter simplement cet utilisateur au groupe approprié sudo.
Kzqai
3
avec sudo visudo, vous pouvez sortir vers /etc/sudoers.tmp. En quittant l'éditeur, il écrasera / etc / sudoers par lui
Climbatize le
1
et visudo vérifiera la syntaxe pour s'assurer qu'il n'y a pas d'erreur
mchid
erreur de syntaxe si vous utilisez ceci.
Jheriko
2
Les autres solutions fonctionnent très bien pour les systèmes d’exploitation avec un sudogroupe intégré , mais pour les systèmes occasionnels sans sudogroupe dédié , cette solution fonctionne. La seule recommandation que j'ai est que vous voudrez peut-être éviter de s'immiscer sudodans la procédure, car elle n'est peut-être pas encore configurée! Facile à contourner en faisant su -et ensuite simplement visudio. Cela fonctionne sur Gentoo.
Tresf
30

Une chose que je dois ajouter est que je suis sûr que beaucoup de gens ne comprennent pas:

Une fois que vous avez déjà fait un adduser "username", vous pouvez toujours revenir et faire un adduser "username" sudo, et il va ensuite ajouter cet utilisateur au groupe correctement.

En fait, ça ne marchera pas la première fois sudo adduser username sudo. Cela vous donnera une erreur. En résumé, vous devez d'abord créer le compte d'utilisateur avant de pouvoir les ajouter à un groupe.

TaunT406
la source
11

Tous les membres du groupe adminsont par défaut autorisés à utiliser sudo dans Ubuntu. Le moyen le plus simple consiste donc à ajouter le compte utilisateur au admingroupe.

Si vous ne voulez pas donner au compte utilisateur un accès root complet, vous devez éditer le fichier / etc / sudoer avec visudo (cela garantit que vous n’avez aucune erreur de syntaxe dans le fichier et que vous perdez complètement la capacité sudo). que vous spécifiez les commandes que cet utilisateur (ou un nouveau groupe) peut exécuter en tant que root.

Le manuel sudoer vous donnera plus d'informations à ce sujet. Vous pouvez spécifier quelles commandes sont autorisées par un utilisateur / groupe particulier à être exécutées en tant que root.

txwikinger
la source
1
Je pensais que c'était pour ça que le wheelgroupe était?
Marco Ceppi
@Marco Je ne suis pas au courant de cela. Pouvez-vous expliquer un peu plus?
ændrük
@MarcoCeppi, le groupe de roues a été utilisé sur certains systèmes pour limiter ce que les utilisateurs pouvaient utiliser su. Ubuntu utilise sudoet le groupe admin.
Psusi
11

sur CentOS, je fais en tant que root

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

L'extrait suivant permet à l'utilisateur root d'accéder à un nom d'utilisateur sans se connecter explicitement en tant qu'utilisateur root.

Assurez-vous que l'utilisateur est d'abord ajouté au groupe sudo. Testé sur Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
la source
cela fonctionne-t-il sur Ubuntu?
Séance de sebastian le
1
Oui vérifié sur Ubuntu 16.04
Sandeep
3
pourquoi pas en une ligne:useradd -m username --groups sudo
Aidan Melen