Problème avec etc/sudoers (fichier absent)

bilbitlehobbo

Membre confirmé
30 Octobre 2005
22
0
Bonjour,

j'ai vu apparaître ce message "can't stat /private/etc/sudoers: No such file or directory" après une demande de mot de passe admin (pour une modification logicielle); étant ignorant des arcanes du système, j'ai fini par découvrir que ce fameux fichier, non content d'être invisible, était de plus manquant.

J'ai le même message d'erreur en tapant su dans Terminal, ou en essayant de changer le password root (je pensais que ça venait de là).

Comment remédier à ce problème ? (Peut-être est-ce une c... mais est-il possible de "rajouter" le fichier manquant?)

J'ai recherché sur le forum, mais les posts relatifs à sudoers mentionnaient tous la présence de ce fichier. J'ai également réparé les autorisations.

Merci de votre aide



--iMac G5 2 GHz 512 Mo RAM OS 10.4.3--
 
Quelle application te met ce message "can't stat etc." ?

CI-DESSOUS QUELQUES MANIPS MAIS FAIS ATTENTION : SI TU NE TE SENS PAS D'ATTAQUE, POSE D'AUTRES QUESTIONS AUPARAVANT ;)

Pour pouvoir faire 'su' dans le Terminal, je pense qu'il faut avoir activé le user 'root' au préalable.
Essaye plutôt ceci :
Bloc de code:
sudo bash
Lorsqu'on te le demande, tu tapes ton mot de passe (celui de ton user).
Si ça marche, tu n'as pas trop à t'inquiéter. Tu pourras alors taper :
Bloc de code:
more /private/etc/sudoers
Sinon, effectivement ce fichier est manquant.
Pour quitter la commande 'bash' :
Bloc de code:
exit
et tu reviens ainsi à ton user perso.

Pour pouvoir remettre le fichier, je ne vois alors que rebooter en mono-utilisateur (appuyer simultanément sur pomme-s au démarrage) et dans ce cadre-là, recréer le fichier. Par défaut, sous Tiger :
Bloc de code:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

Pour cela, il te faudra utiliser 'visudo' mais encore faudrait-il que tu connaisses 'vi'. Dans la négative, utilise 'pico', plus simple (mais je ne l'utilise jamais donc je ne te serai pas d'un grand secours). Éventuellement, prépare le terrain en utilisant un éditeur graphique avant de rebooter.
Après le boot, tu n'auras qu'à le recopier, genre :
Bloc de code:
cp -i ~/monuser/sudoers /private/etc/sudoers
Ensuite, il faut remettre les bons droits :
Bloc de code:
chown root:wheel /private/etc/sudoers
chmod 440 /private/etc/sudoers

Un détail : en mode mono-utilisateur, ton clavier est TOUJOURS considéré comme QWERTY ... désolé !
Autre détail : les seules lignes significatives sont celles qui ne sont pas vides et qui ne commencent pas par un dièse. Donc les deux dernières.
 
Merci, Bompi.
Quand je tape "sudo bash", Terminal affiche "can't stat /private/etc/sudoers: No such file or directory". Si j'essaie "su", il demande "password", je tape mon pass admin, et la réponse est "su:Sorry"; donc ce n'est pas le bon. J'ai lu qu'on peut modifier le pass root dans Gestionnaire Netinfo, mais là comme dans Terminal, je ne suis pas à l'aise. Comme tu le dis,
SI TU NE TE SENS PAS D'ATTAQUE, POSE D'AUTRES QUESTIONS AUPARAVANT ;).

Donc, n'étant pas familier des manip' dans Terminal ou en Single User, pourrais-tu détailler un peu les étapes à l'ouverture de la fenêtre après Pomme-s au démarrage.

Merci de ton aide
 
Je ne pense pas que tu puisses activer le compte root car le fichier qui a disparu doit t'empêcher d'acquérir les droits temporaires d'administrateur. Tu peux éventuellement essayer.

En mode single-user ton écran est en mode console et le clavier en QWERTY (pas très pratique).
C'est pour cela que je conseille de créer un fichier "sudoers" dans un endroit facile d'accès, avec le contenu donné ci-dessus (contenu standard).
Ensuite donc tu bootes en single-user. Là il va te falloir taper la commande de copie du fichier vers l'emplacement voulu. Admettons que ton user soit 'smeagol' et que tu aies déposé ton fichier dans ton Desktop (le fond d'écran). Tu devras taper :
Bloc de code:
cp -i /Users/smeagol/Desktop/sudoers /private/etc/sudoers
et ton fichier sera copié.

Ensuite, il te faudra lui donner les droits adéquats. C'est là que tu précises que ce fichier appartient à l'utilisateur 'root' et au group 'wheel' :
Bloc de code:
chown root:wheel /private/etc/sudoers
Ensuite, tu précises qu'il n'est qu'en lecture :
Bloc de code:
chmod 440 /private/etc/sudoers

Là ce doit être OK. Tu tapes ctrl-D pour sortir du mode single-user et revenir à ton écran habituel. Il ne te restera plus qu'à tester que ça a marché en reprenant la manip qui ne marchait pas.
Je n'ai pas le temps maintenant mais plus tard, si tu veux, je t'envoie un script à exécuter qui fera tout ça. Petite question quand même : tu es avec quelle version de Mac OS X ?
 
En pièce jointe un petit script pour remettre le fichier sudoers, basé sur celui que j'ai chez moi (celui par défaut de Tiger).
Le script s'appelle mySudoer.sh et il ne pourra fonctionner qu'en mode 'root' ou en démarrant en single-user (on est 'root' dans ce cas-là).
Pour l'exécuter : tu vas dans le dossier où tu l'as enregistré et tu tapes :
Bloc de code:
sh mySudoer.sh

J'espère que ça marchera. C'est normalement sans danger mais bon ... c'est sans garantie non plus !
 
Pas de quoi :zen: (je l'avais oublié, celui-là ;))