Question Ne peut pas faire sudo: "/ etc / sudoers est le mode 0740, devrait être 0440"


J'ai un problème:

Je n'ai pas de mot de passe root sur mon mac. Je viens d'avoir un compte administrateur, qui peut faire des trucs en utilisant sudo. Maintenant, je voulais ajouter mon utilisateur normal à la /etc/sudoers fichier aussi. Comme il ne m'a pas permis d'écrire dans ce fichier (même en écrivant avec sudo), j'ai fait ceci:

sudo chmod u+w /etc/sudoers

Ça a marché. Mais depuis lors je ne peux plus faire sudo commande plus sur mon système. Il se plaint que /etc/sudoers a le mauvais mode:

$ sudo touch /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Cela ressemble à une mauvaise blague, parce que maintenant je ne peux même pas revenir au mode 0440:

$ sudo chmod 0440 /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Y a-t-il un moyen de remédier à cette situation? Je dois obtenir mon sudo capacités de retour.


4
2017-07-21 08:24


origine


Hm. On dirait que vous avez fait la mauvaise chose. Donner un utilisateur normal sudo droits, vous pouvez les ajouter à la wheel groupe. Vous pourriez le faire chmod le fichier en cours d'exécution mode mono-utilisateur, après avoir entré mount -uw /. (la toux, sauvegarde !, la toux) - slhck
@slhck Tu es super vieille école. Apple n'a pas utilisé le groupe de roues pour cela depuis longtemps. Il a été le groupe admin pour plusieurs versions majeures de Mac OS X maintenant. Mais ajouter un utilisateur au groupe d'administration est tout ce qui vérifie la case "admin" dans le panneau Préf. Comptes. - Spiff
@Spiff. Oui je toujours mélange ça, mon mauvais. Je vais le faire, merci! - slhck
@slhck Oups quand j'ai réalisé que je pouvais suggérer des autorisations de réparation de disque J'ai décidé d'écrire ma propre réponse et j'ai volé votre suggestion. Je suis nul :-( - Spiff


Réponses:


Cela peut être l'un des rares cas où l'exécution de "Réparer les autorisations de disque" à partir de l'Utilitaire de disque est effectivement garantie.

Si cela ne fonctionne pas, suivez la suggestion de @ slhck de démarrer en mode mono-utilisateur pour le corriger:

  1. Redémarrez en maintenant les touches Commande-S enfoncées pour passer en mode mono-utilisateur. Notez que si vous utilisez un clavier Bluetooth, vous devez le faire car le carillon de démarrage est trailing. Si vous le touchez trop tôt, il est préférable que la radio Bluetooth ne soit pas réinitialisée et que le clavier ne soit plus connecté et ne communique pas avec la touche. Si vous le frappez trop tard, le processus de démarrage sera passé au démarrage multi-utilisateur.

  2. Suivez les instructions à l'écran pour remonter votre lecteur racine en lecture-écriture. Vous pouvez probablement sauter le fsck étape si vous avez redémarré gracieusement. Donc, vous pouvez probablement juste taper:

    mount -uw /

  3. Corrigez les autorisations sur /etc/sudoers. Notez que vous êtes déjà root lorsque vous êtes en mode mono-utilisateur, vous n'avez donc pas besoin de sudo ce.

    chmod 0440 /etc/sudoers

  4. Quittez le mode mono-utilisateur en redémarrant à nouveau en tapant simplement:

    reboot


7
2017-07-21 09:43





Une autre approche utilise Automator.app

Créez un nouveau flux de travail contenant les éléments suivants:

do shell script "chmod 0440 /etc/sudoers" with administrator privileges

Lorsque vous l'exécutez, il vous demandera votre mot de passe et (en supposant que vous soyez un administrateur) il résoudra le problème.

Cela fonctionne également si vous avez égaré les autorisations sur un répertoire parent (par exemple, créer / quelque chose d'autre que 755).


3
2018-06-22 07:02



Solution agréable et rapide; enregistre le redémarrage en mode mono-utilisateur. Besoin d'apprendre plus de script Apple; choses intéressantes - Christopher Lightfoot
sauvé ma journée - merci - froderik