fixperm and fix mog were only mentioned above: the technical article goes into a bit more detail on several possible solutions
Solution
Cause #1
There are two solutions to this problem that should be implemented.
Immediate Solution:
# cd /usr/lpd/remote
# chown bin *
# chgrp lp *
Also make sure the permissions on /usr/lpd and /usr/lpd/remote directories are as follows:
drwxr-xr-x root other /usr/lpd
drwxr-xr-x root other /usr/lpd/remote
With this change, users should be able to print. If you need to add more users, use the command, rlpconf.
Permanent Solution:
This solution will correct the problem if you have to run mkdev rlp in the future. THIS DOES NOT SOLVE THE PROBLEM OF RUNNING MKDEV RLP TWICE AND NOT REMOVING IT IN BETWEEN. Fixperm does not resolve this issue either. Once rlp is in place you should use /etc/rlpconf to add in new printers.
To correct the problem permanently, modify the script, mkdev rlp:
1. cd /usr/lib/mkdev
2. vi rlp
3. Find the section of the script you see below:
For SCO TCP/IP Release 1.2.0:
=============================
echo "Saving lp, cancel and lpstat commands to $WORKDIR"
cd $BIN
cp lp $WORKDIR
cp lpstat $WORKDIR
cp cancel $WORKDIR
=============================
For SCO TCP/IP Release 1.2.1:
=============================
# Save old rlp commands
[ ! "$_no_prompt" ] && echo "Saving lp, cancel and lpstat commands to $WORKDIR"
for i in lp lpstat cancel
do
cp /usr/bin/$i $WORKDIR
done
=============================
4. Modify the command "cp" command(s) to "mv" commands.
For example:
mv lp $WORKDIR
mv lpstat $WORKDIR
mv canecl $WORKDIR
<or>
mv /usr/bin/$i $WORKDIR
5. Save the file.
Cause #2
NOTE: This should only be done if rlp is installed, and it is expected to remain installed permanently.
This is a two step solution process.
1. To correct the immediate problem run the following commands:
cd /usr/bin
chmod 6711 lp lpstat cancel
chown root lp lpstat cancel
chgrp daemon lp lpstat cancel
2. Intermediate Solution:
This solution will let you run fixperm with the original lp, lpstat, and cancel in /usr/bin. We move the binaries back to their original home, run fixperm, and then move them back to /usr/lpd/remote.
a. Run mkdev rlp as root. Say 'yes' to the question,
"Do you want to remove /usr/lpd/remote?" Answer
questions 2 & 3 with 'no'. This way the configured
printers will not be removed.
The original files will be moved back to /usr/bin.
b. Next, cd /
Run fixperm for the problems and test.
c. Once fixperm etc. is run, then just run mkdev rlp
again and install it. The files (lp, lpstat, and cancel)
will be moved back to /usr/lpd/remote and the lpd portion
of these files will be moved back into /usr/bin.
3. To permanently prevent fixperm and fixmog from corrupting the permissions again, the reference files need to be modified.
Fixperm: Find the entries in /etc/perms/ext for the three
binaries listed in (1) and edit those lines to
reflect the correct mode, owner and group.
Example
Before:
LPR sx2111 bin/lp 1 ./usr/bin/lpstat X02
After:
LPR sx6711 root/daemon 1 ./usr/bin/lpstat X02
^^ ^^^^ ^^^^^^
Fixmog : Find the entries in /etc/auth/system/files for the
three binaries listed in (1) and edit those lines
to reflect the correct mode, owner and group.
Example
Before:
/usr/bin/lpstat:f_owner=bin:f_group=lp:f_mode#02111:f_type=r:
After:
/usr/bin/lpstat:f_owner=root:f_group=daemon:f_mode#06711:f_type=r: ^^^^ ^^^^^^ ^^