man page access for newly added users
Hello,
I'm running Mandrake 10.1 on the 'higher' setting (it's a web server). Everything is pretty cool, except for one problem I can't figure out. New users that I add (both with useradd and adduser) cannot access man pages. Both my personal login (created at installation) and root can access all the man pages fine, but others get "No manual entry for " whatever. Even the man pages for things like ls and mkdir are not accessible. The commands themselves can be run just fine. I can su to these users as root and still not access the man pages. I know Mandrake has quite a few built-in groups (wheel, ntools, ctools, xgrp, etc), some of which I was added to by the installation program. Are man pages part of some particular group? I tried adding a user to some of these groups but this did not help. How can I give all users access to man pages? Is there any reason I would *not* want to do this? Any thoughts would be much appreciated. |
I believe that users should have access to man pages as they do no harm. If they can't access their man pages, the most likely culprit is because MANPATH is not set.
-twantrd |
No users, including myself or root, have the MANPATH environment variable set. (I'm using bash, if it matters). It says inin /etc/man.config that if the MANPATH variable is not set, then it executes the manpath command to get the man paths. That command works fine (that is, produces the appropriate directories) for all users. So this does not appear to be the problem.
However, your post led me to the manpath man page ( it's a man, man ;) which in turn led me to the -d option, which prints debugging info. Since I'd call this a bug, running "man -d ls" with a user who can't access the man pages yields the following: $ man -d ls # user who can't get the page Reading config file /etc/man.config found man directory /usr/share/man found man directory /usr/X11R6/man found man directory /usr/local/man found man directory /usr/kerberos/man found man directory /usr/man found manpath map /bin --> /usr/share/man found manpath map /sbin --> /usr/share/man found manpath map /usr/bin --> /usr/share/man found manpath map /usr/sbin --> /usr/share/man found manpath map /usr/local/bin --> /usr/local/man found manpath map /usr/local/sbin --> /usr/local/man found manpath map /usr/X11R6/bin --> /usr/X11R6/man found manpath map /usr/bin/X11 --> /usr/X11R6/man found manpath map /usr/bin/mh --> /usr/share/man found manpath map /usr/kerberos/bin --> /usr/kerberos/man found manpath map /usr/kerberos/sbin --> /usr/kerberos/man using less as pager path directory /sbin is in the config file adding /usr/share/man to manpath path directory /usr/sbin is in the config file path directory /bin is in the config file path directory /usr/bin is in the config file path directory /usr/X11R6/bin is in the config file adding /usr/X11R6/man to manpath path directory /usr/local/bin is in the config file adding /usr/local/man to manpath path directory /usr/local/sbin is in the config file adding mandatory man directories adding /usr/man to manpath No manual entry for ls ------------------END OUTPUT----------------------- Here is the output for my installation-created login, which has no problem: $ man -d ls Reading config file /etc/man.config found man directory /usr/share/man found man directory /usr/X11R6/man found man directory /usr/local/man found man directory /usr/kerberos/man found man directory /usr/man found manpath map /bin --> /usr/share/man found manpath map /sbin --> /usr/share/man found manpath map /usr/bin --> /usr/share/man found manpath map /usr/sbin --> /usr/share/man found manpath map /usr/local/bin --> /usr/local/man found manpath map /usr/local/sbin --> /usr/local/man found manpath map /usr/X11R6/bin --> /usr/X11R6/man found manpath map /usr/bin/X11 --> /usr/X11R6/man found manpath map /usr/bin/mh --> /usr/share/man found manpath map /usr/kerberos/bin --> /usr/kerberos/man found manpath map /usr/kerberos/sbin --> /usr/kerberos/man using less as pager path directory /usr/local/bin is in the config file adding /usr/local/man to manpath path directory /bin is in the config file adding /usr/share/man to manpath path directory /usr/bin is in the config file path directory /usr/X11R6/bin is in the config file adding /usr/X11R6/man to manpath path directory /usr/games is not in the config file but there is a man directory nearby adding /usr/man to manpath path directory /home/chris/bin is not in the config file and we found no man directory nearby path directory /usr/java/j2sdk1.4.2_06/jre/bin is not in the config file and we found no man directory nearby adding mandatory man directories using default preprocessor sequence found tbl(1) directive not executing command: (cd /usr/share/man && (echo ".pl 1100i"; /usr/bin/bzip2 -c -d '/usr/share/man/man1/ls.1.bz2'; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -Tlatin1 -mandoc -c | less) -----------------END OUTPUT--------------- They are the same up until near the end, after "adding mandatory man directories". A user who can access gets the "using default preprocessor sequence", but the user who can't, doesn't. Instead he gets "adding /usr/man to manpath". I'm still not sure what's going on. |
Well this is interesting. As I suspected, the problem is group related. Mandrake creates a group, 'rpm', that provides access to the urpmi, urpmq, etc. package management tools. It is THIS group that also allows access to man pages. (Verified by creating a user that has no group memberships other than rpm and all environment variables and such the same as me... such a user can access the man pages)
This seems a little strange to me, as I don't want to give any user access to package management tools, just the man pages. So are common binaries like 'ls' and 'mkdir' initially installed by urpmq and does this limit their access? What else could explain this? :confused: |
All times are GMT -5. The time now is 08:58 AM. |