Failed to set gid privileges

Peter Samuelson peter at cadcamlab.org
Wed Sep 6 03:40:29 GMT 2000


[Dave C-B]
> This is an honest attempt to deal with a problem, but one which just
> shifts the problem from the sysadmin to the application programmer...
> which is arguably dumb, as the application can't know about all
> possible OS problems and protect itself from them.

It's the only sane thing to do when your library and kernel are often
upgraded independently.  Commercial Unix doesn't have this problem, nor 
do the various free BSD's.

If you have a significantly older libc than what the application was
linked with, it will probably fail at load time.  libc is somewhat
back-compatible at the binary level but not necessarily
forward-compatible.  This is very like other Unices -- compatibility is
king.  [I have one application, GNU Emacs, I compiled for AIX 4.1.4 and
it continues to work fine on AIX 4.3.2 -- even though I can't get a
native 4.3.2 build to work at all, due (I think) to dynamic linker
changes (Emacs does some very dirty tricks with linkers and loaders).]

So if you detect certain libc functionality at compile time, you can
basically assume that it will exist at runtime.  The same,
unfortunately, can't be said of the kernel ... hence the problem that
started this thread.

It is really the responsibility of the Linux distribution to ensure
that programs are compiled such that they will work with all supported
kernels.

> Edsel/Peter: can one check versions explicitly at run-time and exit
> if you find you're using a library which is too old?

The loader should take care of most surprises in terms of library
version; for kernel version you need to open and read /proc/version.
But the problem is compounded by the fact that it is so easy to
customize your Linux kernel build, so that the available feature set
depends on much more than just a number.  We've seen several questions
on samba@ recently where a user's precompiled Samba won't run on his
custom-compiled kernel because he omitted SysV IPC support.  Not too
much you can do about that except user education.

Peter




More information about the samba-technical mailing list