Comment activer «sudo» dans OSX 10.12 Sierra

3

Lorsque je tape "sudo some_command", le terminal affiche:

sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

mon compte est un compte administrateur et le fichier / etc / sudoers contient:

root        ALL = (ALL) ALL
%admin      ALL = (ALL) ALL

Comment régler ceci?

Desmond Chen
la source
1
S'il vous plaît ajouter la sortie dels -l /etc/sudoers
nohillside
@patrix la sortie est-r--r-----+ 1 root wheel 1563 Jan 11 10:42 /etc/sudoers
Desmond Chen
1
Euh, ls -le /etc/sudoerset ls -led /etc aussi alors, s'il vous plaît
nohillside
@patrix -rw-rw-r--+ 1 root wheel 1563 Jan 11 10:42 /etc/sudoers 0: group:admin allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurityetlrwxr-xr-x@ 1 root wheel 11 Dec 10 21:13 /etc -> private/etc
Desmond Chen
Cela a-t-il déjà fonctionné? La liste de contrôle d'accès semble un peu étrange (je n'en ai pas dans ce fichier), mais je ne suis pas sûre que cela cause des problèmes (et je suis réticent à l'essayer ici).
nohillside

Réponses:

6

Ouvrez Terminal et activez root avec:

dsenableroot -u <your_admin_username> -p <your_password> -r <root_password> #choose some root password here 

Si le sudoer est endommagé, vous ne pourrez toujours pas sudo, mais vous pourrez suréparer les autorisations en conséquence:

su #when asked afterwards enter the above <root_password>
chown root:wheel /etc/sudoers
chmod 440 /etc/sudoers
chmod -a "admin allow read,write,append,readattr,writeattr,readextattr,writeextatt‌​r,readsecurity" /etc/sudoers
exit

De retour dans votre compte administrateur, désactivez la racine:

dsenableroot -d -u <your_admin_username> -p <your_password>

Si cela ne vous aide pas, réactivez le compte root en procédant comme ci-dessus, déconnectez votre compte, connectez-vous en tant que root(ouais, vraiment):

Ouvrez terminal et tapez chmod g+x /, fermez le terme, logout et tada, sudo fonctionne à nouveau :) Ce problème se produit surtout lorsque vous montez votre /Linux via en mode RW (pour hfsplusen mode r / w, utilisez fusible et bindfs)


BTW, l' administrateur de groupe ACL ne semble pas nuire au fichier sudoers!

PJJ
la source
2
Meilleur démarrage en mode mono-utilisateur pour cela pas besoin d'activer root
Mark
Et que faire de la connexion utilisateur unique exactement? Vous devez savoir comment vous déplacer dans les commandes launchctl / diskarbit (depuis que vous êtes dans le romontage) et que vous ne le ferez pas mount -rw /et que visudocela ne résoudra pas le problème.
PJJ
@mark Peut-être une autre réponse vaut alors
nohillside
1
@PJJ OK, j’ai beaucoup modifié votre réponse ;-) - mais après la deuxième ligne de sauvegarde, vous ne devriez plus pouvoir vous connecter en tant que root. Vous devez soit exécuter chmod g+x /en mode su, soit déplacer votre dernière phrase devant la deuxième ligne dsenableroot. Aussi: cela ne devrait pas être nécessaire en Sierra!
klanomath
C’est vrai, c’est vrai, c’est ce qui a été modéré - espérons-le, ce ne sera pas trop déroutant;) - la plupart du temps, c’est chmod g+x /depuis h4x0rs qu’il confond darwin avec linux et de se faire une bonne idée de leur guid, réalisant plus tard que, dans darwin, les guides partent de 500 au lieu de 1000 ;)
PJJ
0

Voici une étape de haut niveau:

$ dsenableroot -u <user-username> -p <your-user-password> -r <new-password-for-root>

Créez ensuite une sauvegarde du fichier sudoers et modifiez-la.

$ su
Password:<your-new-root-password>
sh-3.2# cp /etc/sudoers /etc/sudoers.bak
sh-3.2# vi /etc/sudoers.bak
sh-3.2# cp /etc/sudoers.bak /etc/sudoers
sh-3.2# exit

Dernière désactivation de l'accès root:

$ dsenableroot -d -u abdi -p <root-password>
dsenableroot:: ***Successfully disabled root user.
utilisateur239754
la source