Risposte:
Puoi aprire un'istanza textedit come root inserendo il percorso completo dell'eseguibile effettivo:
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
Una volta aperta l'istanza di root, puoi cercare il file che ti serve o farlo dalla riga di comando:
sudo su - root -c "open -e /etc/apache2/httpd.conf"
pico .bash_profile
aggiungi alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'
, salva il file, riavvia Terminale. Ora puoi semplicemente digitare sudotext
per avviare TextEdit come root.
open -t "/etc/hosts"
ad esempio. Con TextWrangler puoi semplicemente digitare edit /etc/hosts
.
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
funziona :(
BBEdit è lo strumento gratuito per farlo nel 2019 e sostituisce tutte le funzionalità di TextErangler e puoi scaricarlo dall'App Store e dal sito web degli sviluppatori.
TextEdit non è davvero lo strumento giusto per la modifica dei file di configurazione: utilizzare invece TextWrangler . È gratuito, ha la funzionalità integrata per modificare i file con accesso root da un account amministratore, nonché cose come l'apertura di file e directory invisibili che modificano facilmente i file su SFTP, ecc.
emacs
ha anche una bella modalità conf con codice colore.
Ecco un modo per evitare di eseguire TextEdit come root:
EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf
Dovrai chiudere la copia di TextEdit dopo aver modificato il file.
sudo -e
, a volte noto come sudoedit
ma non su OS X, crea una copia temporanea del file con il permesso di scrittura per l'utente corrente, invoca un editor su di esso nel solito modo Unix e quindi lo copia di nuovo.
Le opzioni per open
: -W
attendere la chiusura di TextEdit, quindi sudo
sa quando copiare nuovamente il file. -n
assicura che sia in attesa su un'istanza separata di TextEdit, non su uno che hai già aperto e che potresti non voler chiudere. Puoi anche sostituire -t
invece che -e
se hai un editor di testo preferito diverso da TextEdit.
Se hai già EDITOR
impostato una variabile per utilizzare un editor grafico con il suo strumento da riga di comando in grado di attendere (come TextMate o BBEdit), non hai bisogno di nessuno di questi trucchi e puoi semplicemente utilizzarlo sudo -e <file>
direttamente.
Poiché l'utente root è disabilitato, l'unico modo per forzare un'app OS X arbitraria ad avere i permessi di root è abilitare root e accedere come root.
Le app possono ovviamente usare l'API per richiedere l'autenticazione del sistema e aprire la finestra di dialogo che ti aspetti quando ti vengono richiesti un utente amministratore e una password. TextEdit non ha questa funzione, quindi è necessario aggirare le autorizzazioni dei file prima e dopo aver aperto e scritto i file desiderati.
Hai provato a utilizzare sudo open -a textedit
per aprire l'app?
sudo su -
per avviare una shell come root e quindi posso eseguire open "/Applications/Textedit.app/Contents/MacOS/TextEdit"
correttamente. Non ho l'utente root abilitato né ho effettuato l'accesso come utente root.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file
Dovrebbe funzionare
/etc/apache2/httpd.conf
ha autorizzazioni predefinite 0444
. Ho provato tutta la mattina a modificare quel file (con emacs
remoto) ma non ho mai pensato di controllare le autorizzazioni (nuovo Lion).
sudo /Applications/Textedit.app/Contents/MacOS/TextEdit
quindi basta aprire il file da TextEdit