12 votes

Correction du fichier /etc/sudoers

Je suis administrateur système pour une entreprise et j'ai été jeté dans un serveur horriblement configuré. Au milieu de mon remaniement, j'ajoutais des utilisateurs à mon serveur. /etc/sudoers fichier. Il semble que j'ai accidentellement supprimé mon compte administrateur du serveur de l'accès au fichier sudoers.

Je sais ce que j'ai fait de mal (j'ai accidentellement commenté le fichier %admin ligne) la question étant, comment puis-je rétablir mon accès d'administrateur de serveur dans le fichier sans avoir à redémarrer quoi que ce soit.

Voici à quoi ça ressemble maintenant :

##
## User privilege specification
##
root ALL=(ALL) ALL
#%admin  ALL=(ALL) ALL
%superuser ALL=(ALL) ALL
"user1" ALL=(ALL) ALL
"user2" ALL=(ALL) ALL

Notez également que mes utilisateurs n'ont pas la permission de sudo pour une raison quelconque :

Realtor-Station-3-27:~ user1$ sudo -i

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
user1 is not in the sudoers file.  This incident will be reported.
Realtor-Station-3-27:~ user1$

5 votes

Démarrez en mode utilisateur unique et corrigez le fichier :-)

16voto

dan04 Points 33306

Si vous avez accès à finder et à un compte d'administrateur système, vous pouvez résoudre ce problème sans redémarrage en les utilisant.

Ouvrez votre finder et allez dans /etc . Ici, vous pouvez voir les détails du fichier sudoers, y compris les permissions - capture d'écran ci-dessous.

screenshot showing where to change permissions on the sudoers file in Finder

Changez les permissions pour "tout le monde" ici en lecture et écriture.

À ce moment-là, vous pouvez vous réinsérer dans le fichier avec n'importe quel éditeur de texte. Vous devrez ramener les permissions de "tout le monde" à "Pas d'accès" avant que sudo ne vous permette d'effectuer une opération de modification. sudo .

0 votes

J'ai trouvé cette réponse plus utile que de le faire par CLI.

0 votes

Cela fonctionne pour Mac. Vous devez annuler le changement d'accès après l'avoir fait.

6voto

moodforaday Points 2633

Une fois que les choses fonctionnent à nouveau, vous devez vous assurer que ces lignes existent en bas de votre fichier /etc/sudoers fichier :

## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d

Alors assurez-vous que vous avez un /etc/sudoers.d/ répertoire. Voici à quoi ressemble le mien :

> ls -ld /etc/sudoers.d
drwxr-xr-x 3 root wheel 96 Jul 31 20:59 /etc/sudoers.d/

Maintenant, vous pouvez effectivement apporter des modifications au sudoers en ajoutant un nouveau fichier dans le répertoire /etc/sudoers.d/ dossier. Par exemple, j'ai nommé le mien tjluoma donc le fichier /etc/sudoers.d/tjluoma (notez l'absence d'extension de nom de fichier, qui semble être une exigence) a mes modifications à sudoers mais je ne risque pas de causer des problèmes globaux pour sudo s'il y a une erreur de syntaxe.

Vous pouvez vérifier que vos données personnelles sudoers est lu en utilisant sudo visudo -c qui listera tous les fichiers que sudo sera utilisé, comme indiqué ici :

> sudo visudo -c
/etc/sudoers: parsed OK
/private/etc/sudoers.d/tjluoma: parsed OK

(Notez que /private/etc/sudoers.d/ y /etc/sudoers.d/ font référence au même dossier).

Bien sûr, la meilleure façon d'apporter des modifications à /etc/sudoers ou votre sudoers est avec sudo visudo o sudo visudo -f /private/etc/sudoers.d/tjluoma parce qu'il vérifiera la syntaxe dans le cadre du processus d'édition/sauvegarde, mais nous avons tous probablement été coupables de ne pas suivre cette étape

0 votes

Merci de l'avoir mentionné l'obligation de ne pas avoir d'extension de nom de fichier pour les fichiers dans /etc/sudoers.d/ - c'était le problème dans mon cas.

2voto

pranav Points 173

Je n'ai pas réussi à remplacer le /etc/sudoers avec un nouveau fichier et en changeant sa permission en root:wheel y 0440 .

Finalement, j'ai dû passer en mode de récupération (redémarrer CommandR )

  1. Monter le disque dur du Macintosh à l'aide de l'utilitaire de disque.
  2. Allez dans le Terminal via les Utilitaires
  3. cd /Macintosh HD/private/etc
  4. Modifier sudoers pour corriger les erreurs.
  5. Enregistrez et modifiez les autorisations si nécessaire. sudoers besoins en fichiers root:wheel . Si ce n'est pas le cas, sudo ne sera pas exécuté. chown root:wheel sudoers
  6. J'avais aussi changé les permissions avec chmod 0440 sudoers puisque j'ai initialement supprimé sudoers et créé une nouvelle copie quand j'étais connecté.

0 votes

Je ne peux pas modifier /etc/sudoers parce que Permission refusée

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X