Wildcards matching ".": exports bug or just documentation bug?
Subsystems (3)
Hi,
mountd treats wildcards in hostnames in the exports file as matching anything, including ".".
However, the exports man page explicitly states that "*" and "?" do not match ".":
Machine names may contain the wildcard characters * and ?. This can be used to make the exports file more compact; for instance, *.cs.foo.edu matches all hosts in the domain cs.foo.edu. However, these wildcard characters do not match the dots in a domain name, so the above pattern does not include hosts such as a.b.cs.foo.edu.
So, which is right, the actual behaviour or the documented behaviour? I'd tend to lean towards the former.
--Stephen
Hi,
Quoted 7 lines · Stephen C. Tweedie
mountd treats wildcards in hostnames in the exports file as matching anything, including ".".
However, the exports man page explicitly states that "*" and "?" do not match ".":So, which is right, the actual behaviour or the documented behaviour? I'd tend to lean towards the former.
Ping? This is a pretty serious discrepancy between the documented and implemented behaviour. The documentation *explicitly* states that
*.com
won't match foo.bar.com, but the implentation matches this just fine. Given that the documented behaviour doesn't actually give you a way to match an export for all arbitrarily-deep subdomains underneath a domain, I'd think matching subdomains of all levels with "*" makes more sense than matching only a single level, so it's the documentation that needs to be updated.
--Stephen
Quoted 15 lines · On Wednesday November 13, [email protected] wrote:
Hi,
Quoted 7 lines · Stephen C. Tweedie
mountd treats wildcards in hostnames in the exports file as matching anything, including ".".
However, the exports man page explicitly states that "*" and "?" do not match ".":So, which is right, the actual behaviour or the documented behaviour? I'd tend to lean towards the former.
Ping? This is a pretty serious discrepancy between the documented and implemented behaviour. The documentation *explicitly* states that
Quoted 8 lines
*.comwon't match foo.bar.com, but the implentation matches this just fine. Given that the documented behaviour doesn't actually give you a way to match an export for all arbitrarily-deep subdomains underneath a domain, I'd think matching subdomains of all levels with "*" makes more sense than matching only a single level, so it's the documentation that needs to be updated.
Sorry for not responding the first time...
I completely agree with your analysis.
Does the following make the situation suitable clear? If so I will commit it.
NeilBrown
Index: utils/exportfs/exports.man
===================================================================
RCS file: /cvsroot/nfs/nfs-utils/utils/exportfs/exports.man,v retrieving revision 1.9
exportfs/exports.man +4 -3
@@ -45,9 +45,10 @@ .IP "wildcards Machine names may contain the wildcard characters \fI*\fR and \fI?\fR. This can be used to make the \fIexports\fR file more compact; for instance, -\fI*.cs.foo.edu\fR matches all hosts in the domain \fIcs.foo.edu\fR. However, -these wildcard characters do not match the dots in a domain name, so the -above pattern does not include hosts such as \fIa.b.cs.foo.edu\fR. +\fI*.cs.foo.edu\fR matches all hosts in the domain +\fIcs.foo.edu\fR. As these characters also match the dots in a domain +name, the given pattern will also match all hosts within any subdomain +of \fIcs.foo.edu\fR. .IP "IP networks You can also export directories to all hosts on an IP (sub-) network simultaneously. This is done by specifying an IP address and netmask pair