A mode is any number of repetitions of
mode-type
=data
separated by ,.
mode-type
is an identifier composed of
alphanumeric characters. Currently specified: u for
user, g for group, o for other
(see below for discussion of whether these have their POSIX meaning or
are more loose). Unrecognized values of mode-type
are
silently ignored.
data
consists of any data not containing
,, \0 or \n.
For u, g, and o
mode types, data consists of alphanumeric characters, where
r means read, w means write,
x means execute, and unrecognized letters are
silently ignored.
The two most obvious ways in which the mode matters are: (1) is it writeable? This is used by the developer communication features, and is implemented even on OS/2 (and could be implemented on DOS), whose notion of mode is limited to a readonly bit. (2) is it executable? Unix CVS users need CVS to store this setting (for shell scripts and the like). The current CVS implementation on unix does a little bit more than just maintain these two settings. So all the ins and outs of what the mode means across operating systems haven't really been worked out (e.g. should the VMS port use ACLs to get POSIX semantics for groups?).