Respostas:
Você pode abrir uma instância de edição de texto como raiz digitando o caminho completo para o executável real:
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
Depois que sua instância raiz estiver aberta, você poderá procurar o arquivo que precisa ou fazer isso na linha de comando:
sudo su - root -c "open -e /etc/apache2/httpd.conf"
pico .bash_profile
, adicione alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'
, salve o arquivo e reinicie o Terminal. Agora você pode apenas digitar sudotext
para iniciar o TextEdit como root.
open -t "/etc/hosts"
por exemplo. Com o TextWrangler, você pode simplesmente digitar edit /etc/hosts
.
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
não funciona :(
O BBEdit é a ferramenta gratuita para fazer isso em 2019 e substitui todas as funcionalidades do TextErangler e você pode baixá-lo na App Store e no site do desenvolvedor.
O TextEdit não é realmente a ferramenta certa para editar arquivos de configuração - use o TextWrangler . É gratuito, possui capacidade integrada para editar arquivos com acesso root a partir de uma conta de administrador, além de abrir arquivos e diretórios invisíveis, editar facilmente arquivos por SFTP, etc.
emacs
também possui um bom modo de código de cores.
Aqui está uma maneira de evitar a execução do TextEdit como root:
EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf
Você precisará sair da cópia do TextEdit após editar o arquivo.
sudo -e
, às vezes conhecido como sudoedit
mas não no OS X, faz uma cópia temporária do arquivo com permissão de gravação para o usuário atual, invoca um editor nele da maneira usual do Unix e depois o copia novamente.
As opções para open
: -W
aguardam o fechamento do TextEdit, para sudo
saber quando copiar o arquivo novamente. -n
garante que ele esteja aguardando uma instância separada do TextEdit, não uma que você já tenha aberto e que talvez não queira sair. Você também pode substituir em -t
vez de -e
ter um editor de texto favorito que não seja o TextEdit.
Se você já possui uma EDITOR
variável configurada para usar um editor gráfico com sua própria ferramenta de linha de comando com capacidade de espera (como TextMate ou BBEdit), não precisa de nenhum desses truques e pode usar sudo -e <file>
diretamente.
Como o usuário root está desativado, a única maneira de forçar um aplicativo OS X arbitrário a ter permissões de root é habilitar o root e efetuar login como root.
É claro que os aplicativos podem usar a API para solicitar autenticação ao sistema e exibir a caixa de diálogo que você espera quando solicitada por um usuário e senha de administrador. O TextEdit não possui essa função, portanto, você precisa contornar as permissões de arquivo antes e depois de abrir e gravar os arquivos desejados.
Você já tentou usar sudo open -a textedit
para abrir o aplicativo?
sudo su -
para iniciar um shell como root e, em seguida, posso executar com open "/Applications/Textedit.app/Contents/MacOS/TextEdit"
êxito. Não tenho o usuário root habilitado nem efetuei login como usuário root.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file
Deveria trabalhar
/etc/apache2/httpd.conf
possui permissões padrão 0444
. Durante toda a manhã, tentei editar esse arquivo ( emacs
remotamente), mas nunca pensei em verificar as permissões (novas do Lion).
sudo /Applications/Textedit.app/Contents/MacOS/TextEdit
em seguida, basta abrir o arquivo TextEdit