L'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé

24

J'ai besoin d'installer un package. Pour cela, j'ai besoin d'un accès root. Cependant, le système dit que je ne suis pas dans le fichier sudoers. Lorsque vous essayez d'en modifier un, il se plaint de la même manière! Comment suis-je censé m'ajouter au fichier sudoers si je n'ai pas le droit d'en modifier un?

J'ai installé ce système et seul administrateur. Que puis-je faire?

Edit : j'ai visudodéjà essayé . Cela nécessite que je sois en sudoers en premier lieu.

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 
Sergiy Belozorov
la source
4
Eh bien, évidemment user not(is) the sudoers file. (Typo dans le titre)
Hello71
8
Vous êtes sur la liste coquine maintenant - xkcd.com/838
Aaron Newton

Réponses:

18

Ce serait quelque chose d'une faille de sécurité si vous pouviez vous ajouter /etc/sudoerssans avoir accès à sudo ou root. Fondamentalement, alors n'importe qui pourrait se faire racine.

Fondamentalement, vous devez demander aux administrateurs de cette machine de vous ajouter ou d'installer le package pour vous, conformément aux politiques du site.

Vous devez également être sûr d'utiliser visudo pour éditer le fichier sudoers - il vérifie que la syntaxe est correcte avant d'écrire le fichier. Et vous pouvez utiliser des éditeurs autres que vi avec visudo. Il utilisera par défaut tout ce que vous avez défini $EDITORet si vous ne l'avez pas défini, vous pouvez le faire

# EDITOR=nano visudo

pour utiliser l'éditeur nano à la place.

Hamish Downer
la source
5
Je suis l'administrateur, car c'est ma machine et j'ai installé ce système, mais cela n'aide pas :(
Sergiy Belozorov
9
S'il s'agit de votre système, vous devez avoir entré un mot de passe pour l'utilisateur root lors de l'installation. Alors connectez-vous en tant que «root» puis faites le truc visudo.
Hamish Downer
Effectivement. Ma faute. J'ai oublié que j'avais entré le mot de passe lors de l'installation à l'époque.
Sergiy Belozorov
24

Connectez-vous en tant que root et utilisez /usr/sbin/visudopour modifier le fichier et ajouter votre nom d'utilisateur. Normal vi / vim ne pourra pas éditer le fichier.

La manière la plus simple est de descendre jusqu'à ce que vous voyiez la ligne " root ALL=(ALL) ALL" et de vous y ajouter avec la même syntaxe ( yourusername ALL=(ALL) ALL). Ou, vous pouvez lire la page de manuel sudoers si vous voulez vous donner des privilèges plus spécifiques.

Ricket
la source
Cela nécessite que je sois dans la liste des sudoers en premier lieu pour exécuter visudo. J'ai installé cette Debian, il n'y a pas d'autre administrateur.
Sergiy Belozorov
Si vous êtes connecté en tant que root, vous n'avez pas besoin d'exécuter sudo visudo; il suffit de courir /usr/sbin/visudo. Mais il semble que vous l'ayez déjà découvert, d'après les commentaires de l'autre réponse.
Ricket
n'est pas suffisant pour ajouter l'utilisateur respectif au groupe "sudo" ou "sudoers" (selon la distribution)? Malheureusement dans mon cas, cela n'a pas fonctionné, mais je pourrais jurer que cela fonctionnait ...?
Gregor
5

Je viens de taper la commande:

$ su

Et a demandé le mot de passe "root". Typé et boum ... Ça a marché!

Ce problème était mon erreur. En raison de mon retour dans l'établissement au moment où j'ai créé le nom d'utilisateur et le mot de passe.

Carlos Trisotto
la source
Merci qui a été vraiment utile et a sauvé mon bacon! Mais je suis curieux de savoir pourquoi le simple fait d'ajouter cette commande, puis le mot de passe root, autoriserait des privilèges élevés .... semble aller à l'encontre du but du message "L'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé"
Sol
1

Le moyen le plus simple, une fois que vous êtes root, est peut-être:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

la source
7
Vous devez être sûr d'utiliser visudo pour modifier le fichier sudoers, plutôt que de le modifier directement ou d'y faire écho. Cela garantira qu'il est syntaxiquement correct, et garantira que vous ne vous verrouillez pas hors de l'accès, ou accordez à quelqu'un un accès incorrect.
pkaeding
1

Si votre fichier sudoers contient déjà ce type de ligne

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

Ensuite, la façon la plus simple de faire les choses est probablement d'accorder le admingroupe à votre utilisateur. Par exemple, pour ajouter un utilisateur oracle au admin groupe :

usermod -aG admin oracle
Alain Pannetier
la source
Voilà ce que je cherchais. Pour moi, le plus propre aussi, pas de problème avec le fichier sudoers.
webjunkie
1
La commande correcte estusermod -g oracle admin
kvanberendonck
-1: la syntaxe est usermod -g $group $user. Vous pensez probablement à la addusersyntaxe adduser $user $group.
Blacklight Shining
1
… En fait, vous voudrez probablement usermod -aG $group $user. -gdéfinit le groupe principal de l'utilisateur sur celui que vous spécifiez et -Gsans -asupprimera l'utilisateur des groupes qui ne sont pas répertoriés. -gchangera également la propriété du groupe de tous les fichiers appartenant au groupe précédent dans le répertoire personnel de l'utilisateur. Donc, si vous êtes comme moi et que votre umask est réglé sur 007...
Blacklight Shining
1
@BlacklightShining. Tu as raison. La mauvaise syntaxe a été proposée par un commentateur précédent et comme il oracles'agit souvent d'un groupe également, il y a effectivement place à confusion. Je n'aurais pas dû "corriger".
Alain Pannetier
-1

Dans le cas où vous pouvez toujours obtenir un accès root en utilisant su, vous pouvez utiliser cette ligne unique pour vous ajouter à /etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

Pour activer la modification, déconnectez-vous et reconnectez-vous. Par exemple, terminez votre session X ou déconnectez-vous via le shell exit.

Bengt
la source
-1: voir le commentaire de pkaeding .
Blacklight Shining
-1

Si vous ne pouvez pas utiliser la sudocommande, vous pouvez utiliser la méthode suivante:

  1. Appuyez sur Ctrl+ Alt+F1
  2. Déconnectez l'utilisateur si l'utilisateur n'est pas root
  3. Connectez-vous en tant que root
  4. Utiliser les privilèges root
  5. Déconnectez-vous ( exit) - Ctrl+ Alt+ F7pour accéder à l'interface graphique
user3113604
la source
-1: Cela ne fonctionne que dans certains environnements locaux qui ont en fait une interface graphique.
Blacklight Shining
-1

Tout ce que vous avez besoin est d' ajouter votre <username>au whellgroupe.

# usermod -aG whell username

Connectez-vous ensuite avec votre nom d'utilisateur et profitez :)

EFernandes
la source
-3

Connectez-vous en utilisant d'abord les éléments suivants:

$ su

Alors allez-y avec:

$ sudo apt-get update

ou quoi que ce soit comme d'habitude

Alastair
la source
1
vous n'avez pas besoin su- sudo le fait.
Simon Sheehan
Ce n'est pas tout à fait la même chose en fait. sudo est 'faire comme super utilisateur', mais vous vous connectez avec le mot de passe de votre utilisateur. su est «changer d'utilisateur» et, par défaut (sans arguments), il tente de basculer vers l'utilisateur root, auquel cas vous devez entrer le mot de passe root. Mais vous avez également raison - utiliser sudo après su est redondant, car vous seriez déjà l'utilisateur root.
Aaron Newton
@ aaron.newton Je le lirais réellement comme Switch User et DO; vous pouvez choisir n'importe quel utilisateur pour exécuter la commande comme avec le -udrapeau. Il est principalement utilisé pour root, mais il en est de même su.
Blacklight Shining
@ aaron.newton Je le lirais réellement comme Switch User et DO; vous pouvez choisir n'importe quel utilisateur pour exécuter la commande comme avec le -udrapeau. Il est principalement utilisé pour root, mais il en est de même su.
Blacklight Shining