如何在Lion上的TextEdit中以根用户身份打开文件?


13

如何在TextEdit中以root身份打开文件?我已经尝试将这些命令用作root,但TextEdit总是说它已锁定:

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

当然sudo !!没有区别。

Answers:


14

您可以通过输入实际可执行文件的完整路径,以root用户身份打开textedit实例:

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

打开根实例后,您可以浏览到所需的文件,或从命令行执行以下操作:

sudo su - root -c "open -e /etc/apache2/httpd.conf"

谢谢,成功了!sudo /Applications/Textedit.app/Contents/MacOS/TextEdit然后只需从TextEdit
Znarkus 2011年

如果您不想每次都输入,可以通过在Terminal中进入主目录来创建别名,然后pico .bash_profile添加alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"',保存文件并重新启动Terminal。现在,您可以键入sudotext以root身份启动TextEdit。
webbiedave

正如其他答案所指出的那样,要在1个衬板中执行此操作,唯一的实际选择是让第三方编辑器支持它。然后open -t "/etc/hosts",例如键入。使用TextWrangler,您只需键入即可edit /etc/hosts
cregox

2
多么糟糕的用户体验!有没有更简单的方法?
Marc

2
好吧,在我的优胜美地10.10.2上sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"不起作用:(
Henrique de Sousa

8

BBEdit是在2019年执行此操作的免费工具,它替代了TextErangler的所有功能,您可以从App Store和开发人员网站下载它。


TextEdit并不是编辑配置文件的正确工具,而是使用TextWrangler。它是免费的,具有内置功能,可以通过管理员帐户以root用户访问权限来编辑文件,还可以通过SFTP轻松打开不可见文件和目录等功能来编辑文件等。


emacs也有一个不错的颜色编码conf模式。
msanford 2012年

在Mountain Lion中,这似乎对我不起作用。尝试在TextWrangler中保存系统配置文件时收到错误消息。这改变了吗?
西蒙东

@Simon:听起来你的的TextWrangler从App Store的版本,而不是直接下载barebones.com。如果是这样,它已删除了多项功能(包括此功能)以符合App Store的安全政策;因此,将其转储并获得直接版本!
Gordon Davisson

如果您使用的是没有网络的外国Mac,该怎么办?一般而言,接受黑客入侵的2条终端解决方案仍然更好。但是对于实际的日常使用,我会一直与第三方合作!:-)
cregox

6

这是一种避免以root身份运行TextEdit的方法:

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

编辑文件后,您将需要退出TextEdit的副本。

sudo -e有时称为sudoeditOS X,但在OS X上不为人所知,它会为当前用户提供具有写许可权的文件的临时副本,以通常的Unix方式在其上调用编辑器,然后将其复制回。

该选项open-W等待文本编辑退出,所以sudo知道什么时候要复制的文件回来。-n确保它正在等待一个单独的TextEdit实例,而不是您已经打开且不想退出的实例。如果您有除TextEdit之外的收藏夹文本编辑器,也可以-t代替-e

如果您已经EDITOR设置了一个变量来使用带有自己的具有等待功能的命令行工具(例如TextMate或BBEdit)的图形编辑器,那么您就不需要这些技巧,而可以直接使用sudo -e <file>


2

由于禁用了root用户,因此强制任意OS X应用程序具有root权限的唯一方法是启用root并以root用户身份登录。

应用程序当然可以使用API​​要求系统进行身份验证,并在询问管理员用户和密码时弹出您期望的对话框。TextEdit没有该功能,因此在打开和写入所需文件之前和之后,您都必须解决文件权限。

您是否尝试过使用sudo open -a textedit打开应用程序?


您对具有该功能的应用程序有何建议?最好免费:)
Znarkus 2011年

3
这不太准确。在Terminal.app中,我sudo su -以root用户身份启动外壳程序,然后可以open "/Applications/Textedit.app/Contents/MacOS/TextEdit"成功运行。我没有启用root用户,也没有以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

应该管用


好的,因此不可能以root身份启动TextEdit吗?我真的很想避免来回更改权限的麻烦。
Znarkus 2011年

1
Lion的情况已经发生变化,我想这是沙盒赛
Paul Eccles

关键是您试图打开的文件由于具有权限而无法写为root。您的其中一个文件将是相同的(实际上是相同的,除了TextEdit是“用户”文件的“智能”事实,因此通过询问您更改权限)。
Gio

@Gio确实,这是由于Lion的沙箱:/etc/apache2/httpd.conf具有默认权限0444。我一直在整天都在尝试(emacs远程)编辑该文件,但从未想到要检查(新Lion)权限。
msanford 2012年

-5
sudo nano /etc/hosts 

为狮子工作


2
问题是关于TextEdit,而不是nano。
gosmond
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.