| normality(5) | definition of what types of normalities different users may have. | normality(5) |
<normality file> := <normality file> <line> |
;
<line> := <normality type> ': ' <userlist> |
<normality type> '! ' <userlist> |
<normality type> '= ' <normality tags> |
<comment>
<normality type> := [A-Z][a-zA-Z0-9]+
<userlist> := <username> ', ' <userlist> ';\n' |
<username> ';\n'
<normality tags> := <normality tag> ', ' <normality tags> ';\n' |
<normality tag> ';\n'
<normality tag> := 'marriage' |
'love-relation' |
'nice-job' |
'money' |
'spare-time' |
'friends' |
'no-pager' |
'vacation'
<comment> := '#' .* '\n'
Let's say that we have a system with three normality types, \fIfoo, \fIbar and \fIgazonk and two users, cucumber and onion.
Now, a line like "foo! onion;" would exclude onion from having any of the real-life things specified by the foo type, even if that (or those) things appear in another normality type. So, the disallow syntax overrides the allow syntax (specified by "<type>: <username>...").
There is always an implicit type named ``all'', that contains all normality tags.
For all system administrators, you have an implicit rule, "all! asr".
# Normality file for a sad system # Our users are onion, cucumber, jdoe, jrl and washu animetype= love-relation, nice-job, friends, spare-time; notworst= love-relation, nice-job, friends; sysadm= friends; # All normality types we will use are declared # Now let's do the magic stuff... all: jdoe, jrl; animetype: washu; sysadm: cucumber; all! onion; # Now, this is fairly easy, OK?
Has a tendecy to create small discontinuities in the velvet of reality whenever there are syntax errors in the normality file.