对于 tinydns 和 daemontools 来说,服务名称中的句点是否被视为“特殊字符”?

对于 tinydns 和 daemontools 来说,服务名称中的句点是否被视为“特殊字符”?

我正在构建一些新的 DNS 服务器,它们将运行微型域名系统。我需要在每台服务器上运行两个 tinydns 实例,每个实例都提供我们的生产权威 DNS 和正在逐步淘汰的旧权威 DNS,即:

ns0.production.foo.net
ns0.legacy.bar.net

我想通过它们的名称清楚地识别它们,并通过运行来创建它们的服务:

tinydns-conf tinydns tinydnslogs /etc/tinydns/ns0.production.foo.net 172.16.3.100

和:

tinydns-conf tinydns tinydnslogs /etc/tinydns/ns0.legacy.bar.net 172.16.3.101

(然后显然要通过符号链接到这些文件夹/services才能发挥 daemontools 的魔力)

文档tinydns-conf指出:

界面

 tinydns-conf acct logacct D ip

tinydns-conf 创建一个运行 tinydns 的服务目录 D。名称 D 必须以斜杠开头,并且不能包含任何特殊字符。

在 tinydns/daemontools 服务名称中,句点是否被视为“特殊字符”?

我已经使用包含句点的服务名称测试了 tinydns,没有任何异常,可以吗?

我正在运行 64 位 CentOS 6.7。

答案1

我向 tinydns 邮件列表发布了大致相同的问题:

http://marc.info/?t=144662485500001&r=1&w=2

大家一致认为月经期间可能没什么问题,但要注意:

使用空格:

从 tiny*.c 文件的源代码中,我看不到某种限制。

但是我不会在这里使用空格作为目录名(来源)

Shell 元字符:

我认为如果您将“特殊字符”解释为 shell 元字符,那么您应该是安全的。(来源)

其他想法:

在相应情况下,文件名中的点‘.’可能在 shell 上被解释为 RegEx(一个通配符)。由于‘点’本身是递归包含的,因此我预计不会有任何损害。但是,正确引用文件名或转义‘点’始终是一个好主意。

因此,DJB 的声明是一种警告,而不是限制。(来源)

相关内容