I'm stubborn or stupid (and that's not xor) (Was: CVS Import Permissions)

Giorgos Keramidas keramida at ceid.upatras.gr
Tue Jan 31 01:54:17 PST 2006

On 2006-01-31 00:44, Duane <duane at greenmeadow.ca> wrote:
> Hi everyone,
> On the CVS server machine should our CVS repository directory belong to
> the cvs group, i.e. user==root, group==cvs?

It's usually a good idea.

> And as for the umask, as it appears to be 027, if we give the
> cvs group write permission on /usr/local/cvsrep then when we
> import our projects they will be writeable by members of group
> cvs and the owner of the project, in this case jim.

No.  This is not how `umask' works.  Whatever value `umask'
currently has is logically-AND-ed with 0666.  This means that by
using 027, the result is:

    $ python
    >>> print "%04o" % (066 & 027)

These are the bits that will be turned *off* for new files (see
the umask(2) manpage for details), so to find out which
permission bits are allowed, you have to use the reverse mask:

    >>> print "%04o" % (0777 & ~(066 & 027))

The 0751 allowed-bits mask is equivalent to:


This means that with a umask of 027, you are effectivelly
allowing only the bits in ``rwxr-x--x'' to be turned on by
default for new files, and this doesn't include write permission
for the group.

I know that the whole `umask' concept is a bit tricky to grasp,
since it depends on knowledge of numbering with an octal-base
*AND* it works in the reverse order of that people usually think
it does, but hopefully, with the help of our excellent manpages
and a bit of experimentation, it will become more obvious :)

> I apologize if I am being all the things suggested in my
> subject heading.

Nah!  Never apologize for a question.  There is no such thing as
a stupid question for this list (well, unless the question refers
to Windows, of course :P).

- Giorgos

More information about the freebsd-questions mailing list