Answers:
您可以通过输入实际可执行文件的完整路径,以root用户身份打开textedit实例:
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
打开根实例后,您可以浏览到所需的文件,或从命令行执行以下操作:
sudo su - root -c "open -e /etc/apache2/httpd.conf"
pico .bash_profile
添加alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'
,保存文件并重新启动Terminal。现在,您可以键入sudotext
以root身份启动TextEdit。
open -t "/etc/hosts"
,例如键入。使用TextWrangler,您只需键入即可edit /etc/hosts
。
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
不起作用:(
BBEdit是在2019年执行此操作的免费工具,它替代了TextErangler的所有功能,您可以从App Store和开发人员网站下载它。
TextEdit并不是编辑配置文件的正确工具,而是使用TextWrangler。它是免费的,具有内置功能,可以通过管理员帐户以root用户访问权限来编辑文件,还可以通过SFTP轻松打开不可见文件和目录等功能来编辑文件等。
emacs
也有一个不错的颜色编码conf模式。
这是一种避免以root身份运行TextEdit的方法:
EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf
编辑文件后,您将需要退出TextEdit的副本。
sudo -e
有时称为sudoedit
OS X,但在OS X上不为人所知,它会为当前用户提供具有写许可权的文件的临时副本,以通常的Unix方式在其上调用编辑器,然后将其复制回。
该选项open
:-W
等待文本编辑退出,所以sudo
知道什么时候要复制的文件回来。-n
确保它正在等待一个单独的TextEdit实例,而不是您已经打开且不想退出的实例。如果您有除TextEdit之外的收藏夹文本编辑器,也可以-t
代替-e
。
如果您已经EDITOR
设置了一个变量来使用带有自己的具有等待功能的命令行工具(例如TextMate或BBEdit)的图形编辑器,那么您就不需要这些技巧,而可以直接使用sudo -e <file>
。
由于禁用了root用户,因此强制任意OS X应用程序具有root权限的唯一方法是启用root并以root用户身份登录。
应用程序当然可以使用API要求系统进行身份验证,并在询问管理员用户和密码时弹出您期望的对话框。TextEdit没有该功能,因此在打开和写入所需文件之前和之后,您都必须解决文件权限。
您是否尝试过使用sudo open -a textedit
打开应用程序?
sudo su -
以root用户身份启动外壳程序,然后可以open "/Applications/Textedit.app/Contents/MacOS/TextEdit"
成功运行。我没有启用root用户,也没有以root用户身份登录。
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file
应该管用
/etc/apache2/httpd.conf
具有默认权限0444
。我一直在整天都在尝试(emacs
远程)编辑该文件,但从未想到要检查(新Lion)权限。
sudo /Applications/Textedit.app/Contents/MacOS/TextEdit
然后只需从TextEdit