J'ai accidentellement supprimé le file sudoers sous Mac OS X; y a-t-il un moyen de le récupérer?

J'ai accidentellement supprimé le file sudoers sous Mac OS X; y a-t-il un moyen de le récupérer?
Et une fois que vous l'avez récupéré, comment le configurez-vous en mode 0440?

Je ne présume pas mais je suis désespéré de le récupérer!

Je suppose que vous essayez d'exécuter une command sudo et que cela vous donne une erreur que /etc/sudoers n'a pas les permissions correctes?

Si vous avez déjà accordé le statut d' Admin votre count, vous devriez être en mesure de corriger les permissions via l'interface graphique. Ouvrez le dossier "/ etc" dans Finder ("Go" -> "Aller au dossier …"), puis ouvrez les propriétés du file sudoers . Cliquez sur le verrou. Accordez le groupe d' admin read/write , l'user system read-only , le groupe de wheel read-only et le groupe everyone le everyone no access . Les permissions devraient maintenant être correctes.

Si vous ne vous êtes pas placé dans le groupe d' admin , vous devrez redémarrer OSX en mode mono-user et exécuter la command chmod 0440 /etc/sudoers .

Activez l'user root en utilisant les preferences système, puis créez / etc / sudoers lorsque vous êtes connecté en tant qu'user root

 touch /etc/sudoers; chmod 440 /etc/sudoers 

Utilisez ensuite visudo pour insert ce code:

 # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # Failure to use 'visudo' may result in syntax or file permission errors # that prevent sudo from running. # # 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 Defaults env_reset Defaults env_keep += "BLOCKSIZE" Defaults env_keep += "COLORFGBG COLORTERM" Defaults env_keep += "__CF_USER_TEXT_ENCODING" Defaults env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE" Defaults env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME" Defaults env_keep += "LINES COLUMNS" Defaults env_keep += "LSCOLORS" Defaults env_keep += "SSH_AUTH_SOCK" Defaults env_keep += "TZ" Defaults env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY" Defaults env_keep += "EDITOR VISUAL" # Runas alias specification # User privilege specification root ALL=(ALL) ALL %admin ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/Revision/CMUpdatePackage/Installer.app/Contents/MacOS/I nstaller ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/UpdatePackageInstaller.app/Contents/MacOS/UpdatePackage Installer 

Si vous n'êtes pas un administrateur, vous pouvez démarrer le système en mode mono-user (si vous ne savez pas comment faire cela, il suffit de google) et de faire la command

 mount -uw / 

et vous serez dans le terminal racine.

Si je comprends bien votre problème, alors vous n'avez actuellement pas de sudo et vous essayez de faire sudo et ça ne fonctionne pas. Dans ce cas, pour get sudo, vous pouvez faire ce qui suit:

  1. Créez un file sudoers dans votre dossier personnel. Vous pouvez find le contenu par défaut ici sudoers
  2. Ouvrez le dossier "/ etc" dans Finder ("Go" -> "Aller au dossier …").
  3. Maintenant, copyz le file sudoers du dossier de départ dans le dossier / etc via le Finder.
  4. Prompt viendra requestr le mot de passe.
  5. Entrez le mot de passe correct et vous avez terminé.

Pour vérifier sudo fonctionne bien cd /etc et sudo vim sudoers . Vous devriez pouvoir voir le file sudoers via l'éditeur vim. Toute opération de lecture / écriture dans / etc nécessiterait la command sudo.

Je sais que c'est un peu surprenant que même après avoir pas sudoers, via l'interface user, nous pouvons faire des opérations dans / etc. Mais ça a marché pour moi 🙂

Les réponses ci-dessus couvrent le contenu par défaut du file, comment le mettre en place avec le Finder et modifier ses permissions. Cependant, sudo se plaindra à less que le propriétaire du file sudoers ne soit root. La seule façon de changer le propriétaire sans sudo est via cette command:

osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'