man: can't set effective UID ???

man: can't set effective UID ???

Post by Rainer Menzn » Tue, 17 Sep 1996 04:00:00

Hello Linuxers,

some time ago I installed a new man-version. During this I encountered
some problems with recursive links. However, after some time it
worked. But recently, I recogniced that that I could only read man
pages when beeing logged in as root. Trying read man pages as o normal
user results in the error message:

man: can't set effective uid, operation not permitted

(or something very similar).

What does this mean. Must /usr/bin/man have special permissions which
haven't been set due to my installation problems?

Thanks for any help,


*** ____ ******* . * . ******** Dipl.-Ing. Rainer Menzner *********************
   ( /  \       /|  /|          Ruhr-Universitaet Bochum  
    /    |     / | / |          Institut fuer Neuroinformatik
   /____/     /  |/  |  __      D-44780 Bochum, Germany
  / \        /   '   | ( /      -----------------------------------------------

********************** /--) *** Tel. +49-234/700-7978 *************************


man: can't set effective UID ???

Post by Andries Brouw » Sun, 22 Sep 1996 04:00:00

: some time ago I installed a new man-version.

It would help if you also told us which version of which man.


1. UID / effective UID problem


Consider a user U, programs A which is set-uid A, program B is set-uid B.
U, A, and B are all simple mortals. No root-privilege.

Now, U calls A. As part of it's job, A fork/execs B. U should not need to
know that B is involved.

So we have

            real UID       effective UID   saved-set-UID
U's shell       U               U               U

program A       U               A               A

program B       U               B               B

A 'knows' its user U calling, and can check his credentials in , say, A.allow.
I want B to be able to authorize A using it's B.allow. But it can't! It can't
tell that its being called by A.
It does know the original caller was U, but in my situation that's irrelevant.

So, I studied Steven's 'Advanced Programming in the Unix Environment', section
8.10. to find out that BSD has a setreuid(), which can swap the real and
effective uid.
All other calls don't seem to help in this particular problem.

Now it looks like this:

            real UID       effective UID   saved-set-UID
U's shell       U               U               U

program A       U               A               A
  setreuid(..)  A               U               A

program B       A               B               B

That's exactly what I want! B can now whether A has the right to call B.
U is no longer visible!

Great. But *sigh*, it's not in XPG4, which is our portability goal.

So here's the question:
How can B tell it's A calling, using stuff available in Xopen XPG4 ??

Any hints are very much appreciated!


Ideta, 6 Frankemaheerd, 1102 AN Amsterdam, the Netherlands
My opinions are my own, not necessarily my boss's.
                                          Everything's relative - absolutely.

2. how to get opera to see that java is installed

3. effective UID vs. Real UID with su - problem

4. SB vs SB16 (digiAudiotracks)

5. setuid to a non-root uid for both effective&real uid

6. SatisFAXtion 400 Driver for Linux?

7. Set effective uid?

8. 2.5.3 remove global semaphore_lock spin lock.

9. setting an effective uid.

10. problems setting effective UID

11. Spawning shells with different effective uid's

12. Effective and Real UID and GID

13. Switching effective UID based on authentication