A fork of the profile library code....
Theodore Ts'o
tytso at MIT.EDU
Fri Jan 6 14:52:34 EST 2006
Based on the discussion I've changed my profile parser to accept
quoted strings in tag and section names. I.e., you can now do this:
["section with trailing spaces "]
"a silly tag name" = quux
I will _not_ however, support this sort of thing in my profile code
fork:
["arbi"tra"ry "si"ll"y quoting ga"mes]
As that just leads to bloat and I can't think of any justification for
ANSI C string concatenation...
On Thu, Jan 05, 2006 at 04:20:38PM -0500, Alexandra Ellwood wrote:
> Our config file could also benefit from tag synonyms like "ticket
> lifetime". I've seen a bunch of '-' versus '_' mistakes that
> mystified users who couldn't understand why their libdefault edit
> didn't work. And once I spent several hours debugging code only to
> discover that the code actually worked, and my test config file
> contained a similar typo.
One of the things which I've been toying with is writing an optional
extension to the profile code to do configuration file verification.
The verifier would take a file which defines the schema for a
particular config file:
[libdefaults]
default_realm = string
# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = filename
krb4_realms = filename
kdc_timesync = integer
ccache_type = integer
ticket_lifetime = integer
forwardable = boolean
proxiable = boolean
[realms]
* = {
kdc = string
admin_server = string
default_domain = string
}
... and then print out warnings if a user had a string in a field that
expected an integer. One could imagine also adding
application-specific verifiers, i.e.,
kdc = kdc_specifier
Which would verify that the hostname was a valid hostname and the port
was a valid port number, and print warnings if that were not the case.
Since the verifier would print warnings if an unexpected tag (i.e.,
"ticket-lifetime") were to show up in a config file, it would help
mitigate mistakes made by someone who typo'ed their config file.
> (This is of course exactly the sort of problem which made me opposed
> to the design goal that these files being hand editable by end users
> in the first place. However, since we're going to make them user
> editable, we should make the process of editing them user friendly.)
Heh. This is part of what I was talking about differences in
expectations/paradigms for different platforms. I still remember
Athena release engineers swearing up and down (or more accurately,
*at*) the AIX SAM database, which was a binary-only, configuration
database much like the Windows respository. Having non-text-editable
config files is extremely un-Unix like, and is pretty much a
guaranteed way to make Unix programmers/system administrators to be
very cranky.... hence the old joke of "AIX... it *reminds* you of
Unix".
- Ted
More information about the krbdev
mailing list