Come posso risolvere questo problema di autorizzazione sudo - UID 503, dovrebbe essere 0 - El Capitan

4

Ogni volta che provo qualsiasi comando sudo nel terminale, viene visualizzato il seguente messaggio di errore:

sudo: /etc/sudoers is owned by uid 503, should be 0
sudo: no valid sudoers sources found, quitting

Ho provato ad accedere alla modalità utente singolo e a digitare i seguenti comandi:

mount -uw

chown /private/etc/sudoers 0

Dopo aver digitato la linea di proprietà chown, ricevo un messaggio di errore che dice "username non valido".

Altre cose che ho provato:

  • Reinstallazione di OS X (El Capitan)
  • Disabilitazione della protezione dell'integrità del sistema (SIP).
  • Chiamando Apple Care che afferma che i comandi sudo sono stati disattivati in El Capitan.
  • Accesso in modalità Utente singolo e digitando il seguente codice:
    chown root:wheel /private/etc/sudoers Questo ha generato il messaggio di errore "Operazione non consentita" nei miei account Standard, Admin e Root. Il messaggio di errore "File system di sola lettura" è apparso quando ho effettuato l'accesso in modalità utente singolo.

FYI

Quando eseguo ls -la /private/etc/sudoers in Terminale, ottengo il seguente:

-rw-r-----@ 1 MY-ADMIN-USERNAME staff 67 18 Feb 14:03 /private/etc/sudoers

Nota Ho sostituito il mio vero nome utente amministratore con "MY-ADMIN-USERNAME" solo per sapere cosa sta visualizzando.

Ho bisogno dei comandi sudo per lavorare per una serie di motivi, uno dei quali è far funzionare CrashPlan.

Il mio hardware è un iMac 2010, 3,2 GHZ, 16 GB di RAM e SSD da 500 GB che è stato installato circa un anno fa.

Questi problemi sono venuti solo con El Capitan. Non li avevo in passato con Yosemite.

Guardando in giro online, posso vedere che molte persone hanno avuto problemi simili ma le risoluzioni purtroppo non hanno funzionato per me.

    
posta W.Sun 03.03.2016 - 22:06
fonte

1 risposta

2

Prova a riparare il file sudoers dalla modalità di ripristino:

  • Avvia la modalità di recupero premendo cmd R durante l'avvio.
  • Apri Terminale dalla barra dei menu - > Utilità
  • Inserisci cd "/Volumes/main_volume_name/private/etc" . Sostituisci main_volume_name con il nome del volume principale reale (controlla diskutil list ), mantieni spazi e caratteri maiuscoli / minuscoli come sono. Se usi le virgolette come nel comando qui non devi uscire dagli spazi con \
  • Inserisci chmod 440 sudoers
  • Inserisci chown root:wheel sudoers
  • Controlla il file con cat sudoers . Il file sudoers predefinito dovrebbe apparire come questo:

    ## 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
    ##
    ## Groups of machines. These may include host names (optionally with wildcards),
    ## IP addresses, network numbers or netgroups.
    # Host_Alias    WEBSERVERS = www1, www2, www3
    
    ##
    ## User alias specification
    ##
    ## Groups of users.  These may consist of user names, uids, Unix groups,
    ## or netgroups.
    # User_Alias    ADMINS = millert, dowdy, mikef
    
    ##
    ## Cmnd alias specification
    ##
    ## Groups of commands.  Often used to group related commands together.
    # Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
    #               /usr/bin/pkill, /usr/bin/top
    
    ##
    ## 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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    
    ##
    ## Runas alias specification
    ##
    
    ##
    ## User privilege specification
    ##
    root ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    
    ## Uncomment to allow members of group wheel to execute any command
    # %wheel ALL=(ALL) ALL
    
    ## Same thing without a password
    # %wheel ALL=(ALL) NOPASSWD: ALL
    
    ## Uncomment to allow members of group sudo to execute any command
    # %sudo ALL=(ALL) ALL
    
    ## Uncomment to allow any user to run sudo if they know the password
    ## of the user they are running the command as (root by default).
    # Defaults targetpw  # Ask for the password of the target user
    # ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'
    
    ## Read drop-in files from /private/etc/sudoers.d
    ## (the '#' here does not indicate a comment)
    #includedir /private/etc/sudoers.d
    

    Dato che il tuo file sudoers è molto piccolo (67 byte) probabilmente stai perdendo alcuni o tutti i contenuti. Potrebbe essere necessario aggiungere / sostituire almeno le linee senza un "#" in anticipo:

    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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    

    e

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

    con:

    /Volumes/main_volume_name/usr/bin/nano /Volumes/main_volume_name/private/etc/sudoers
    

    Il file dovrebbe contenere almeno il seguente contenuto:

    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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    
    root ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    ​
    

    Il file richiede una riga vuota finale! (Si prega di non copiare semplicemente quanto sopra perché l'ultima riga qui non contiene una nuova riga ma uno spazio a larghezza zero)

  • Avvia il tuo volume principale e accedi come amministratore

  • Inserisci sudo xattr -c /etc/sudoers per rimuovere gli attributi (falsi).
  • Ripristina il file sudoers completo con sudo visudo /etc/sudoers modificando il contenuto sudoers di default sopra
  • Infine le informazioni sul file dovrebbero rivelare quanto segue:

    host:~ adminuser$ ls -laO /etc/sudoers
    -r--r-----  1 root  wheel  compressed 2299 31 Jul  2015 /etc/sudoers
    

    Non deve essere compresso e la data sarà ovviamente diversa.

risposta data 03.03.2016 - 23:03
fonte

Leggi altre domande sui tag