OS X Server:如何编辑配置文件

服务器文档可指导您通过创建或修改“属性列表 (plists)”或其他基于文本的配置文件来启用 Server Admin Tools 中不包含的功能。

本文章已经归档,因此 Apple 将不再对其进行更新。

如果您对编辑配置文件尚不熟悉,请阅读以下主题。

选取合适的文本编辑器

TextEdit(位于“/应用程序/”中)是一款常见的图形文本编辑器。某些情况下可用它来编辑配置文件,但必须注意要将文稿保存为系统可用的格式(见下文)。与命令行文本编辑器相比,在 TextEdit 中编辑权限受限文件的难度更大。

使用命令行文本编辑器可避免一些与使用 TextEdit 相关的格式和权限隐患。OS X 中包含的三个功能齐全的命令行文本编辑器为:

  • nano 是一款简易的基于命令行的编辑器。它可以替代 pico 编辑器,因此使用 pico 编辑器的说明同样适用于 nano。调用 pico 编辑器时,实际运行的是 nano。Nano 是使用基于命令行编辑器的较好的一款入门编辑器,因为它包含易于遵循的屏幕帮助。
  • vim 是与 vi 兼容的一款文本编辑器。它提供了有关移动、搜索以及编辑文稿的多项强大的增强功能。基本编辑易于掌握,多项其他功能需要花时间研究。大多数功能可通过输入可触发特定行为的按键组合来使用。大多数基于 UNIX 的操作系统提供 Vim 或其之前的编辑器版本 vi。如果您将来需要使用命令行执行大量编辑操作,那么它是一款理想的编辑器,但如果只是偶尔使用基本命令行的编辑器,不学习如何使用它亦可。
  • Emacs 和 vim 一样,是大多数基于 UNIX 的系统都提供的一款功能非常齐全的编辑器。除了具备编辑功能以外,Emacs 可充分自定,借助模块中的其他功能,Emacs 界面可实现的功能远不止文本编辑。使用它执行基本编辑操作相对容易,它还具备不可思议的强大功能可供专业用户探索。与 vim 一样,Emacs 使用按键组合访问其多项不同功能行为。这需要大量的记忆,因此 Emacs 最适合经常使用命令行的用户使用。

如果您以前未使用过命令行且预计将来用它进行编辑的机率不大,则 nano 可能是您的最佳选择。如果您需经常使用命令行环境,则最好学习使用 vim 或 Emacs。它们的设计原理截然不同,因此请花时间了解它们以确定哪个最适合您。

通过输入编辑器的名称,后面紧跟一个空格,然后输入您要打开的文件的名称来调用命令行编辑器。如果您要创建一个新文件,请输入文件的名称。以下是一个使用 nano 打开“文稿”文件夹中一个名为“myFile.conf”的新文件的示例:

nano ~/Documents/myFile.conf

根据文件的权限,您可能需要使用 sudo 命令。以下是一个使用 nano 编辑 ldap.conf 文件(只有根用户才能对其进行更改)的示例:

sudo nano /etc/openldap/ldap.conf

有关使用 nano、vim 或 Emacs 的更多信息,请分别参阅它们的手册页。

存储文本文件以供系统使用

当编辑用于 UNIX 工具执行的文本文件时,您需要适当存储文件以便文件可由其调用程序使用(或执行)。使用纯文本并确保权限正确尤其重要。

使用纯文本

许多图形文本编辑器(包括 TextEdit)会将文本文件存储为一种大多数 UNIX 程序无法识别的复杂格式。如果您要使用 TextEdit 编辑基于文本的配置文件,请将文件存储为“纯文本”,而不是默认的“多信息文本格式”。要更改 TextEdit 中文本文稿的默认格式,您可以通过两种方式来实现:

  • 要将所有文稿存储为纯文本,请选择 TextEdit 偏好设置的“新建文稿”面板中“格式”下的“纯文本”。
  • 要更改单个文稿的格式,请从“格式”菜单中选取“制作纯文本”。

尽管“多信息文本格式”可能在某个编辑器中显示为纯文本,但事实上它是描述格式、颜色、字体和大多数 UNIX 程序使用的纯文本文件中不包含的其他信息的完整说明。要查看某个“多信息文本格式”文稿中实际包含的信息,请在 TextEdit 中存储一个文件,然后在命令行文本编辑器中将其打开。

命令行文本编辑器会自动将配置文件存储为纯文本格式。

权限

您必须具备配置文件的读写权限,且您必须确保编辑的文件保留其原始权限,否则系统可能无法使用该文件。

许多系统文件只能由根用户进行编辑。如果您以普通用户身份登录后在“文本编辑”中打开某个权限受限的配置文件,则系统可能会提示您不具备存储该文件的权限。避免更改文件权限或以根用户的身份登录来访问此文件。而应以管理员身份登录并通过使用命令行编辑器的 sudo 命令暂时假定具有根权限,如上所述。

编辑属性列表

OS X 中许多偏好设置和配置文件都使用属性列表 (plists) 来指定应用软件或进程的属性。用户个人文件夹的“资源库/Preferences/”文件夹中的 Finder 偏好设置属性列表即是一个示例。文件名为 com.apple.Finder.plist。属性列表(包括分销商的反向 DNS 名称)的默认命名惯例预先考虑应用软件或进程名称,然后是“.plist”扩展名。

属性列表可能为二进制或 xml 格式。您可以使用文本编辑器编辑 xml 属性列表,而且可以使用以下工具编辑任一格式的属性列表。

  • Xcode属性列表编辑器是 OS X 开发者工具,提供图形界面用于编辑属性列表。Xcode 版本 4 或更高版本可直接编辑属性列表。之前版本的开发者工具中的“属性列表编辑器”为单独的独立应用软件。如果您已了解属性列表及其惯例,那么这些工具非常有用。请参阅 http://developer.apple.com/devcenter/mac/index.action 了解更多信息。
  • defaults 是可用于阅读和编辑属性列表的一款命令行工具。当您了解需更改的属性列表中的具体按键和值后,用起来效率非常高。
  • PlistBuddy 是用于直接阅读和修改属性列表中的值的另外一款命令行工具。当您需要更改复杂的属性列表文件时,它比 defaults 更灵活。

有关使用 defaults 和 PlistBuddy 的信息,请分别参阅它们的手册页。

了解详情

编辑前备份文件

无论您在何时编辑配置文件或属性列表,最好在编辑前对文件进行备份。这样,如果您不小心错误地配置了该文件,则可将其替换为正确的版本。由于许多配置文件位于您具有读权限但没有写权限的位置,通常可以使用 Finder 将文件拷贝到其他位置,或使用 sudo 命令拷贝到适当的位置。例如,以下命令将对名为 syslog.conf.original 的 syslog.conf 文件进行备份。

sudo cp /etc/syslog.conf /etc/syslog.conf.original

以下两个命令将移除错误配置的 syslog.conf 文件并将其替换为以上创建的备份副本。

sudo mv /etc/syslog.conf /etc/syslog.conf.bad

sudo cp /etc/syslog.conf.original /etc/syslog.conf

发布日期: