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:
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'