Como faço para abrir um arquivo como root no TextEdit on Lion?

13

Como faço para abrir um arquivo como root no TextEdit? Eu tentei esses comandos como root, mas o TextEdit sempre diz que está bloqueado:

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

E, claro, sudo !!não faz diferença.

Znarkus
fonte

Respostas:

14

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"
Tyr
fonte
Obrigado, funcionou! sudo /Applications/Textedit.app/Contents/MacOS/TextEditem seguida, basta abrir o arquivo TextEdit
Znarkus
Se você não quiser digitar isso toda vez, poderá criar um alias acessando o diretório pessoal no Terminal e, em seguida 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 sudotextpara iniciar o TextEdit como root.
Webbiedave 4/03/13
Como outras respostas apontaram, para fazê-lo em 1 liner, a única opção real é ter um editor de terceiros que o suporte. Em seguida, basta digitar, open -t "/etc/hosts"por exemplo. Com o TextWrangler, você pode simplesmente digitar edit /etc/hosts.
Cregox
2
Que experiência horrível para o usuário! Não existe uma maneira mais fácil?
Marc
2
Bem, no meu Yosemite 10.10.2 o sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"não funciona :(
Henrique de Sousa
8

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.

Gordon Davisson
fonte
emacstambém possui um bom modo de código de cores.
precisa saber é
Isso não parece funcionar para mim no Mountain Lion. Eu recebo um erro ao tentar salvar os arquivos de configuração do sistema no TextWrangler. Isso mudou?
Simon East
@ Simon: Parece que você tem a versão do TextWrangler da App Store, em vez do download direto do barebones.com . Nesse caso, vários recursos (incluindo este) foram removidos para obedecer às políticas de segurança da App Store; então despeje-o e obtenha a versão direta!
Gordon Davisson
E se você estiver em um Mac estrangeiro sem internet? A solução aceita pelas 2 linhas de terminal de hackers ainda é geralmente melhor. Mas, para o uso prático do dia-a-dia, acompanho terceiros até o fim! :-)
cregox
6

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 sudoeditmas 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: -Waguardam o fechamento do TextEdit, para sudosaber quando copiar o arquivo novamente. -ngarante 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 -tvez de -eter um editor de texto favorito que não seja o TextEdit.

Se você já possui uma EDITORvariá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.

Kevin Reid
fonte
2

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 texteditpara abrir o aplicativo?

bmike
fonte
Você tem sugestões sobre aplicativos que possuem essa funcionalidade? De preferência :) livre
Znarkus
3
Isso não é bem preciso. No Terminal.app, corro 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.
EmmEff
1
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Deveria trabalhar

Gio
fonte
Ok, então não é possível iniciar o TextEdit como root? Eu realmente gostaria de evitar o incômodo extra de alterar as permissões para frente e para trás.
Znarkus
1
As coisas mudaram em Lion, eu acho que é o sandboxing
Paul Eccles
O ponto é que o arquivo que você está tentando abrir não pode ser gravado como root devido à sua permissão. Seria o mesmo para um dos seus arquivos (na verdade, é o mesmo, exceto pelo fato de que o TextEdit é "inteligente" para os arquivos dos Usuários, portanto , altera a permissão solicitando).
Gio
@Gio De fato, é devido ao sandbox do Lion: /etc/apache2/httpd.confpossui permissões padrão 0444. Durante toda a manhã, tentei editar esse arquivo ( emacsremotamente), mas nunca pensei em verificar as permissões (novas do Lion).
precisa saber é
-5
sudo nano /etc/hosts 

trabalha para o leão

Bektur
fonte
2
A pergunta é sobre o TextEdit, não o nano.
gosmond