Ho rotto sudo - come lo risolvo?

0

Apparentemente non posso più sudo sul mio Mac.

Piers-MacBook-Air:~ piersb$ sudo ls
Password:
Sorry, user piersb is not allowed to execute '/bin/ls' as root on Piers-MacBook-Air.local.
Piers-MacBook-Air:~ piersb$ 

Ha funzionato prima del più recente aggiornamento di El Capitan (l'aggiornamento a 10.11.4), e sono a MacBook Air a metà 2013. L'account è un account amministratore e sono stato in grado di eseguire sudo prima di allora. Il mio primo pensiero è stato quello di aggiungermi a / etc / sudoers ma, ahah, ovviamente hai bisogno di sudo per questo.

Piers-MacBook-Air:~ piersb$ ls -al /etc/sudoers
-r--r-----  1 root  wheel  272  5 Apr 11:15 /etc/sudoers
Piers-MacBook-Air:~ piersb$ groups
staff com.apple.sharepoint.group.1 everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh

Sono in grado di creare un nuovo utente amministratore, ma quell'utente ha lo stesso problema.

Piers-MacBook-Air:~ testuser$ sudo ls

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password:
Sorry, user testuser is not allowed to execute '/bin/ls' as root on 
Piers-MacBook-Air.local.

. Come posso accedere nuovamente a sudo? E questo è un problema comune?

    
posta piersb 08.04.2016 - 11:44
fonte

1 risposta

0

Sembra che sia apparso solo in coincidenza con l'aggiornamento 10.11.4; il problema era in realtà quando ho installato vagabondo. Da qualche parte lungo la linea o io o uno script ho usato sovrascrivere / etc / sudoers con il seguente piuttosto che aggiungerlo:

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

Quindi / etc / sudoers era toast. Ecco come risolverlo se ti capita.

  • Vai a Preferenze di sistema
  • Vai a Utenti e amp; Gruppi
  • Fai clic sul lucchetto
  • Autentica con un account amministratore
  • Scegli Network Account Server: Unisciti a ...
  • Fai clic su Apri Utility Directory
  • Fai clic sul lucchetto
  • Autentica con un account amministratore
  • Scegli Modifica / Attiva utente root
  • Scegli una password di root
  • Apri un terminale
  • Scrivi su
  • Digita la tua password di root e premi return
  • Tipo visudo

Ora dovresti modificare in modo sicuro / etc / sudoers. O almeno con la sicurezza che puoi fare qualsiasi cosa mentre sei loggato come root.

Sostituisci qualsiasi assurdità che hai dentro con un file correttamente sicuro. Ecco quello che ho usato:

#
# 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"
Defaults    env_keep += "HOME MAIL"

# 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
  • Premi ESC, quindi digita: wq! per salvare e uscire dal file
  • digita exit per uscire dalla shell di root
  • Torna alle utility della directory
  • Scegli Modifica / Disattiva utente root

E - huzzah! - il tuo comando sudo dovrebbe essere di nuovo in esecuzione e di nuovo.

    
risposta data 08.04.2016 - 15:45
fonte

Leggi altre domande sui tag