As part of my assignment I was asked to find a group called + and to write in brief what I think of it. This group in /etc/group
is shown as +:x::
which means it has no Gid and No users. But what does that means? what does having no Gid does to a group. I wrote that it might be invalid but apparently that's a wrong answer. I couldn't find the answer in any documentation or tutorial.
-
Look up NIS+, a directory service that may serve parts of that and other files when a line starts with a plus character.– Kusalananda ♦May 4, 2018 at 9:14
-
I'm curious to know the answer, but isn't your teacher there to help you with that ?– KiwyMay 4, 2018 at 9:14
-
I emailed him, he didnt reply 🤦🏻♂️– hungryMay 5, 2018 at 13:54
2 Answers
In former times, when there was no
/etc/nsswitch.conf
this method was used to tell the passwd and group lookup routines to search the content of NIS
(formerly known as YP
).
If this line appears last, then the local file is searched first and then (if there was no match), NIS is searched.
See NIS+ documentation here: https://docs.oracle.com/cd/E18752_01/html/816-4558/adtable-86495.html even though NIS+ has been made obsolete and removed from Solaris in December 2009.
-
NIS is still in use and there are Unix systems without that configuration file, so "former times" may only refer to Linux systems.– Kusalananda ♦May 4, 2018 at 11:09
-
NIS is still in use, while NIS+ has been obsoleted, but modern systems use
/etc/nsswitch.conf
to control search methods and search order.– schilyMay 4, 2018 at 11:11
I was asked to find a group called
+
and to write in brief what I think of it.
What you think is coloured by what operating system you use.
As a FreeBSD user you should appreciate these little history lessons, but they haven't been relevant for almost two decades and the course is seriously out of date. Or as a Linux operating system user you should understand that some other operating systems may have had unusual mechanisms relating to this, but your operating system never has had. (-:
Moreover, since +
is not part of the POSIX Portable Filename Character Set, it is indeed invalid as a POSIX-conformant group name. You are right to think that it is. That is how it is alright to employ it for this purpose. No actual conformant group name can conflict with it.
(This is the same reasoning that gives us mechanisms like using :
to distinguish user/group IDs from user/group names in (some) places where there can be either an ID or a name. :
is not part of the POSIX Portable Filename Character Set, so will never occur in (conformant) names and can be used to denote IDs, which otherwise are comprised of characters in that character set, and so cannot be unambiguously distinguished from names without some sort of extra information added.)
FreeBSD removed the +
mechanism in 2000, having only had it in the first place for six years prior to that.
It is still documented in the OpenBSD and NetBSD User Manuals, so those are where to look for doco that tells you what the mechanism is. Both still implement it, too.
As far as I can tell, the GNU C Library went straight from a file-only mechanism to an NS switch mechanism in 1996, and never had such a +
mechanism.
The commercial Unices I leave as an exercise for the reader. (-:
Further reading
group
. NetBSD File Formats Manual. 2007-06-21.group
. OpenBSD File Formats Manual. 2012-06-20.- "Group Name". Base Specifications. IEEE 1003.1:2017. The Open Group.
- "Portable Filename Character Set". Base Specifications. IEEE 1003.1:2017. The Open Group.
- Jonathan de Boyne Pollard (2018).
/run/user/jim
. "Gazetteer". The nosh Guide. Softwares. - Jacques Vidrine (2000-09-06). Add nsswitch support.. FreeBSD Source. r65532.
- Garrett Wollman (1994-09-20). My implementation of YP group file support, modeled after the password file support done yesterday. . FreeBSD Source. r2936.
- Roland McGrath (1996-06-25). Ulrich Drepper has contributed support for an
/etc/nsswitch.conf
mechanism similar to that found in Solaris 2.. GNU C Library.