This is the most common problem on
UNIX systems. It almost always means that permissions are not properly set up, or that the
VLINK program is not setuid. Try temporarily changing the permission of the MINIVEND_ROOT/etc/socket file to be read/write to all groups (
chmod 666 etc/socket
). This must be done after the server is started, as MiniVend deletes and recreates the socket every time it starts. If MiniVend then works you will have to make sure the user that the
VLINK program runs as matches the user who is running the MiniVend daemon.
<
HR>
It is not recommended that you install the MiniVend software
as root
. If you are setting MiniVend up for the entire machine, and not just as a
virtual host user, it is usual to create a special mvend
or minivend
user to run the daemon and the link program. This means the directory listing for your
CGI-BIN should be something like:
-rwsr-xr-x 1 minivend users 6312 Dec 30 11:39 cgi-bin/simple
and for the socket file it should be:
srw------- 1 minivend users 0 Dec 30 11:41 etc/socket
Once you have set up the software, you can easily install catalogs as root as long as your umask
is set to 2 or 22.
(The following assumes you have made the MiniVend software owned and run by
the special user mvend
and that each user has a MiniVend catalogs directory /home/user/catalogs
).
The following policies should be automatically offered when installing MiniVend 3.06 or higher.
The best way to set permissions on a multi-user system is to make all files
group readable and writable (660 or 664 mode). If you have a system setup
that places each user in their own group, then make
mvend
a member of each user's group and set ownership and permissions with:
find /home/user/catalogs -print | xargs chown user find /home/user/catalogs -print | xargs chgrp user find /home/user/catalogs -print | xargs chmod g+rw
For best results, make the user's default umask be 2 so that they will by default create files that have the proper permissions.
If you have all users in the same group, the above is not secure. You
should put mvend
in a group of which no user is a member (perhaps mvend would be a good
choice) and then make all files owned by the group mvend and all
directories be set to mode 2775:
find /home/user/catalogs -print | xargs chown user find /home/user/catalogs -print | xargs chgrp mvend find /home/user/catalogs -print | xargs chmod g+rw find /home/user/catalogs -type d -print | xargs chmod g+s
This will make files default to the proper group when created (on most UNIX versions, anyway). <HR>
If you are on a virtual hosting system, the procedure varies. Making the program setuid should work for most systems -- if your setup uses
CGI-WRAP or another setuid scheme it should still work
OK, though you may have to
unset the setuid bit with chmod u-s cgi-bin/simple
or the like. If you have a non-standard
CGI setup, as some virtual host systems do, you will need to know something about
UNIX and the web -- or engage a consultant -- to properly set the paths up. Usually switching to
TLINK/INET mode is the easiest thing to do, though with
Iserver and a few others it may take more than that.
<HR>
If you used the makecat
program to build the catalog, it should warn you if it was not able to make
the link program setuid. To set the program (in the file cgi-bin/simple
in this example) to be setuid, you use the command:
chmod u+s cgi-bin/simple
Please understand that the first remedy in the case of unknown problems will be to upgrade Perl to the latest version.