Different users on the same mapset

Luca Palmeri lpalmeri at ux1.unipd.it
Wed Oct 13 06:59:24 EDT 1999


Dear grass comunity,

        Yesterday for the first time since I use grass, I have been

faced with an interesting question:

        can different users work on the same mapset ?

So I tried, I played with unix privileges moved mapsets changed user

and group etc. etc. and discovered that finally THE ANSWER IS NO !!!

at lest not in grass5beta3 on alinux RH6.0 (posix compliant) platform.

Well, this is a little bit strange. Why shouldn't be possible in a

multi user environment such as unix to use the same mapset under

different usernames (maybe in the same group) ?

This could be very usefull especially for large projects whit many

people involved in.

The problem is in a GRASS GIS library call G__mapset_permissions,

that looks like:

int G__mapset_permissions (char *mapset)
{
    char path[256];
    struct stat info;

    G__file_name (path,"","",mapset);

    if (stat (path, &info) != 0)
            return -1;

    if (info.st_uid != getuid())
            return 0;
    if (info.st_uid != geteuid())
            return 0;

    return 1;
}

Simple, everytime that a call access mapsets data a check is done

for the userid of the mapsets file to be equal to that of real and

effective ids of the invoking process. So if I own a mapset I can

work on it, if I do not own it I cannot regardeless of the unix

mapsets files privileges.

I have only one question, why ? I do not understand this idea.

Ok so I went forward and changed a little bit the code. But if we

release this constraint by for example commenting the last two ifs

in the call, we will have to check for access permission to the mapsets.

This is done at start time in gis_set. I've done some work on that

and modified the gis_set and the g.access programs.

Anyhow at this stage I do not think it is a good idea to post my bugfixes,

that are to be considered much more as tournarounds. A sound understanding

of the global grass structure and clear objectives on how to manage mapset

permissions are needed in order to produce a proper code.

So here I just want to point out that THIS IS AN IMPORTANT ISSUE. Clearly

if somebody is interested in having my patch I can send it. But I would first

like to understand the developping strategy beneath the G__mapset_permissions

call.

Comments are welcome

LP

--> Luca Palmeri - Dip. Proc. Chimici dell'Ingengeria
    Universita' di Padova  TEL: +390498275527 -------
-------------------------  FAX: +390498275528 -------
--> Think holistic @ the end of the 2nd millenium <--


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/19991013/08aafd7e/attachment.html


More information about the grass-user mailing list