Why can't I write this file?

Ruben de Groot mail25 at bzerk.org
Tue Mar 9 07:23:08 PST 2004


On Tue, Mar 09, 2004 at 02:44:05PM +0000, Matthew Seaman typed:
> On Tue, Mar 09, 2004 at 03:29:07PM +0100, Ruben de Groot wrote:
> > On Tue, Mar 09, 2004 at 02:10:25PM +0000, Matthew Seaman typed:
> > > 
> > > Yes, quite.  Your login credentials are established when you login to
> > > the system and only then -- that's when the limits of what you're
> > > authorized to do are set, which includes amongst other things which
> > > groups you're a member of.  So you have to log out and back in again
> > > to pick up any changes to /etc/master.passwd or /etc/group.
> > 
> > Actually, when there's a change in /etc/group, you can use 
> > "newgrp <groupname>" to add the new group to your credentials without
> > logging in again. It's not exactly the same, but it does the work.
> 
> Not on BSD-ish Unices you can't:
> 
>     % which newgrp
>     newgrp: Command not found.
> 
> That's a SysV-ism, and dates back to the days when SysV group handling
> used very different semantics to the BSD style that almost every *nix
> uses nowadays.  On the early SysV systems your login session would
> have one and only one group active at a time: any files you created
> would have that group membership, irrespective of the group ownership
> of the directory, and your access to files was tested by matching just
> that group to the group ownership of the file, rather than comparing
> to all groups you are a member of.  If you wanted to change to a new
> group, you had to use the newgrp command -- and in some cases, that
> would require your giving the group password.  If you ever wondered
> why the /etc/group file has an encrypted password field that is almost
> never used, this is where it comes from.

Well, SysV-ism or not, it's back in FreeBSD 5.x, and it works as I
described. I should have checked one of my older systems too though.

ruben at ei:/home/ruben> uname -r
5.2.1-RELEASE-p1
ruben at ei:/home/ruben> which newgrp
/usr/bin/newgrp

(See also: http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/newgrp/newgrp.c)

cheers,
Ruben



More information about the freebsd-questions mailing list