Problème dans le dossier sudoers

elRetard

Membre enregistré
9 Juillet 2014
1
0
44
Bonsoir à tous!
J'ai un peu fait le guignol avec les commandes, et je me retrouve avec deux dossiers sudoers:
MtUukyB.png

Le problème étant que lorsque j'essaye de faire une commande en super utilisateur, une fois le mot de passe entré, j'ai ce message "Faros is not in the sudoers file. This incident will be reported."
Cependant je suis bien dans le groupe admin:
H9qWIMv.png

J'ai essayé l'utilitaire de disque pour réparer les permissions (qui n'a rien donné) et j'ai redémarré en single-user mode pour voir ce que contenais chacun des fichiers: sudoers est totalement vide alors que sudoers~orig a l'air de contenir ce qu'il faut (je l'ai comparé a sa : http://psychocats.net/ubuntu/fixsudo). Je me suis dit que j'allais essayé de le copier dans sudoers puis le supprimer sauf que en single mode user je n'ai que le droit de lecture apparemment.. C'est là que je me suis dit qu'il était peut-être temps de demander de l'aide et d'arrêter de jouer l'apprenti sorcier (vu comment j'ai déjà foutu la m*rde j'pense que ça ira pour l'instant :D) .

Merci d'avance pour ceux qui prendront le temps de m'aider.
 
Plutôt qu'en mode mono-utilisateur, redémarre sur la partition de secours.
Lance l'Utilitaire de Disque et monte le disque interne.
Ensuite tu lances un Terminal et tu vas rétablir le fichier sudoers.
Puis tu redémarres.
Hop.
 
Billet d'«Épistémologie Matutinale»
(néo-discipline au statut sujet à caution)
par l'impertinent macomaniac
:D

Salut elRetard.

En simple apostille verbeuse du commentaire de bompi (qui a la légitimité root en la matière) --> le fichier-Système hautement protégé [parce qu'il paramètre les droits d'entrée au 'club' restreint des agents qui peuvent opérer en qualité de sudoer = 'substitut de root'] : /private/etc/sudoers ne peut s'éditer 'unilatéralement' qu'en passant par la commande visudo dans le «Terminal». Passer par un éditeur de fichiers exogène (comme l'excellent «TextWrangler» capable, après authentification 'admin' de l'initiataire, d'éditer les fichiers-Système d'OSX) conduit comme tu t'en rends compte à la génération d'une 'doublette' : le fichier-Système original est conservé ipso facto sous l'intitulé dans ton cas de : sudoers~orig, tandis que le fichier-édité est créé en parallèle sous le nom primitif : sudoers.

Je vois dans cette itération d'écriture l'effet d'un 'mécanisme de défense' sagement implémenté par les ingénieurs de la Pomme afin de protéger l'intégrité du Système contre des bidouillages intempestifs. Tu te rends compte? Le logiciel exogène que tu as utilisé (genre «TextWrangler» donc) a vérifié au préalable ton habilitation parmi les sudoers d'après le fichier-Système du même nom, ce afin d'éditer le fichier en question : circularité logique que le Système 'admet' sur le mode du 'oui_mais_non' -si je puis dire- en générant un double_de_l'original (en archive du fichier primitif affectée du suffixe : ~orig) à côté du néo_fichier_édité sous l'intitulé simple inaugural.

À quoi bon ces dissertations d'âne bâté traînant laborieusement le fardeau d'une vaine rhétorique? :D --> Eh bien! à exposer les prémisses dont se déduit immédiatement la conséquence adéquate : en cas de fausse manœuvre (ton cas...), le fichier valide est soigneusement conservé en 'doublette' sous l'intitulé de sudoers~orig à côté du fichier invalide créé sous l'intitulé de sudoers. Le cercle vicieux étant que le Système ne consulte en mode opératoire que le fichier intitulé : sudoers (lequel est invalide), tandis que le fichier valide est inconsultable sous sa dénomination de sudoers~orig --> il faut donc supprimer le fichier 'bidon' sudoers, de manière à renommer le fichier valide sudoers~orig en sudoers, afin que le Système puisse consulter ce fichier afin de t'habiliter sudoer à la demande. Sauf que, dans le «Terminal» que tu cherches à utiliser à partir de ta session admin ouverte, pour ce faire il faut d'abord que tu puisses te prévaloir du statut de sudoer pour re-nommer ledit fichier, ce que tu ne peux pas faire, puisque le fichier qui peut t'y authoriser (sudoers~orig) est devenu inconsultable par le Système --> c'est ce qu'on appelle un «circulus viciosus».

Pour le dénouer, il faut donc que tu utilises un «Terminal-de-root» :


  1. soit celui du mode Single User - d'usage abstrus, car non seulement le clavier logique est en QWERTY -ce qui est la moindre des difficultés- mais il faut commencer par monter l'ensemble des fichiers-Système par défaut en mode read_only en read_write afin que root, dans son «Terminal», puisse éditer les fichiers de /private/etc en supprimant (rm) le sudoers bidon et en re-nommant (mv) le sudoers~orig valide en sudoers. Pour ce faire, il faut toujours commencer en mode Single User par passer la commande :

    Bloc de code:
    /sbin/mount -uw /

    et ↩︎ --> afin d'ajouter aux fichiers qui suivent le point de montage / la modalité 'writable' ;


  2. soit celui de la partition de récupération Recovery HD (que bompi te conseille judicieusement d'utiliser - s'il m'autorise cette acclamation déplacée) parce que le clavier logique est en AZERTY et surtout parce que les fichiers-Système de l'OS sont montés a priori en read_write pour le «Terminal» de root en tant que relevant d'un Volume_Logique monté a priori indépendamment du Volume_Logique de la Recovery HD. L'invite de commande dans le bash du «Terminal» de la Recovery : bash-3.2# est le synonyme strict de root# --> c'est donc un tapis rouge qui est déroulé pour tout foutre en l'air réparer vertueusement les bourdes de l'utilisateur admin :D.


  3. en m'autorisant par avance de l'aimable aval de bompi (root du forum OSX dont je me pose ici audacieusement en sudoer au risque d'un déni d'authentification :D), voici les commandes dans le «Terminal» de la Recovery HD susceptibles de régler la question de la doublette des fichiers :

    • Bloc de code:
      ls /Volumes

      et ↩︎ (touche 'Entrée' du clavier pour activer la commande) --> histoire de vérifier que le volume de l'OS est bien intitulé Macintosh HD - sinon, remplacer cette occurrence dans les commandes qui suivent par l'intitulé actuel du volume de l'OS renommé.

    • Bloc de code:
      rm /Volumes/"Macintosh HD"/private/etc/sudoers

      et ↩︎ --> pour supprimer le fichier qui porte le bon intitulé mais qui n'a pas le bon contenu (mettre entre "" l'intitulé de Macintosh HD afin d'en poser l'unicité nominale pour le Système).

    • Bloc de code:
      mv /Volumes/"Macintosh HD"/private/etc/sudoers~orig /Volumes/"Macintosh HD"/private/etc/sudoers

      et ↩︎ --> pour re-nommer le fichier qui a le bon contenu à l'intitulé primitif, le seul l'habilitant à être consulté par le Système pour l'authentification d'un membre du groupe admin comme sudoer à partir d'une session admin démarrée.

    • Bloc de code:
      chown 0:0 /Volumes/"Macintosh HD"/private/etc/sudoers

      et ↩︎ --> pour rétablir à root:wheel les accédants : user + group au cas où ce devrait être le cas (mais je ne le pense pas).

    • Bloc de code:
      chmod 440 /Volumes/"Macintosh HD"/private/etc/sudoers

      et ↩︎ --> dans la même veine (peut-être bien superflue) pour rétablir à read_only les permissions des accédants sur le fichier.

☞ une petite réparation des permissions par 'acquis de conscience' dans l'«Utilitaire de Disque» de la Recovery HD et ... roulez jeunesse! :D
 
Dernière édition par un modérateur:
Bonjours macomaniac,

je n arrive pas a corrige mon problème avec sudo .
su fonctionne parfaitement .
J'ai suive tes indication mais je n y arrive pas .
Pourrais tu m aider stp ?
 

Fichiers joints

  • Sudoers.webp
    Sudoers.webp
    86,8 KB · Affichages: 186
Salut MatMat

Est-ce que tu as un fichier sudoers~orig à côté du fichier sudoers dans /private/etc ?
 
Dans un de mes volumes externes expérimentaux > j'ai trouvé un fichier sudoers qui m'a l'air d'être le fichier "default" de High Sierra (les fichiers sudoers de mes OS en usage sont beaucoup trop traficotés pour pourvoir être partagés).

Je peux donc te passer ce fichier et l'idée serait de renommer ton actuel sudoers corrompu --> sudoers-old pour le mettre en quarantaine > et le remplacer par le fichier sudoers default.

Est-ce que tu peux télécharger des fichiers depuis ta session ou pas ?
 
Alors voici le lien pour télécharger le fichier depuis le dossier public de ma DropBox : ☞sudoers.zip☜ (clique le lien rouge).

Une fois que tu l'as sur ton Bureau --> attache une clé USB à ton Mac et copie le fichier sudoers dézippé dans le volume de la clé.

Cela fait --> va à : Applications > Utilitaires > lance le Terminal. Dans la fenêtre qui s'ouvre > passe les 2 commandes informative (l'une après l'autre) :
Bloc de code:
diskutil list
fdesetup status

  • la 1ère affiche le tableau des disques
  • la 2è le statut de FileVault

Poste ce tableau ici en copier-coller (pas de capture) > mais attention ! > avant de faire ton coller -->

  • dans la page de ce fil de MacGé > presse le bouton (carré avec un + inscrit - juste au milieu de la largeur de la fenêtre totale) dans la barre de menus au-dessus du champ de saisie d'un message > menu  : </> Code > par ⌘V colle dans la fenêtre Code > presse le bouton Insérer (ce procédé permet un affichage fenêtré qui économise l'espace de page en respectant la mise en forme des tableaux du «Terminal» --> d'où une plus grande lisibilité)

=> ces informations donneront une idée de la configuration des disques. L'idée est d'utiliser le Terminal en droit root de la session de secours pour opérer.
 
Bloc de code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Sierra 10.12.3          119.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk1
   1:                 Linux Swap                         18.9 GB    disk1s1
   2:         Microsoft Reserved                         16.8 MB    disk1s2
   3:       Microsoft Basic Data Windows 10              59.9 GB    disk1s3
   4:           Windows Recovery                         487.6 MB   disk1s4
   5:           Linux Filesystem Ubuntu 16 LTS           32.9 GB    disk1s5
   6:           Linux Filesystem Untitled                15.8 GB    disk1s6

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:       Microsoft Basic Data Data                    1.0 TB     disk2s1

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *7.7 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS usb                     7.4 GB     disk3s2
 
Donc ton volume-Système s'appelle Sierra 10.12.3 et celui de la clé usb.

Quel est l'OS installé dans le volume Sierra 10.12.3 ?
 
Alors voici un fichier sudoers "default" correspondant à l'OS Sierra 10.12 : ☞sudoers.zip

  • supprime celui que tu as sur ton Bureau (ou à l'emplacement des téléchargements) > télécharge le nouveau > puis copie-le dans le volume usb en remplacement du précédent.

Tu n'as qu'à dire quand c'est fait.
 
Tu ne veux pas dire que le fichier porte l'extension .txt > mais qu'il y a un logo TXT inscrit sur son icône ?
 
C'est peut-être parce que tu as choisi TextEdit comme application par défaut pour ouvrir ce type de fichiers ?
 
Tu as bien copié le nouveau sudoers en remplacement du précédent dans le volume usb ?

- alors re-démarre en tenant pressées les 2 touches ⌘R sur l'OS de secours. Quand tu as l'écran des 4 Utilitaires macOS > va à la barre supérieure de menus de l'écran > menu Utilitaires > lance le Terminal.

Passe (avec exactitude) les commandes (l'une après l'autre) :
Bloc de code:
mv /Volumes/"Sierra 10.12.3"/private/etc/sudoers /Volumes/"Sierra 10.12.3"/private/etc/sudoers-old
cp -av /Volumes/usb/sudoers /Volumes/"Sierra 10.12.3"/private/etc
chown 0:0 /Volumes/"Sierra 10.12.3"/private/etc/sudoers
(mets "Sierra 10.12.3" avec des "" ; respecte tous les espaces)

  • la 1ère renomme le fichier sudoers du volume Sierra 10.12.3 --> sudoers-old
  • la 2è copie le fichier sudoers du volume usb dans le sous-dossier etc du volume Sierra 10.12.3
  • la 3è restaure les accédants au fichier à root:wheel comme requis.

=> est-ce que tu as l'impression d'avoir passé exactement les 3 commandes ?
 
L’opération c est passé sans erreur , je peux constater que le fichier sudoers-old est pressent dans private/etc et que le fichier sudoers a bien été copie .
Cependant ca n a pas fonctionné .
Bloc de code:
sh-3.2# sudo
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin