[GRASS-windows] Problems with accessing location between windows
and linux
Martin Maier
martmai at gmx.de
Sat Oct 11 12:51:13 EDT 2008
Glynn Clements wrote:
> Moritz Lennert wrote:
>
>
>>>>> I have
>>>>> created some locations and mapsets using GRASS Windows (with the native
>>>>> windows installer, 6.3.0-4), on a FAT32 disk.
>>>>>
>
>
>> AFAIK, group permissions are not enough, you need to be the _owner_ of
>> the directory and files. Can you chown the files in the windows
>> partition ?
>>
>
> The FAT filesystem has neither permissions nor ownership.
>
> [NTFS has these attributes, but the implementation is quite different
> to Unix, so I'm not sure how well it maps. Also, writing to NTFS
> partitions from Linux has always been considered risky, due to the
> complexity of the format and the lack of documentation.]
>
> When you mount FAT/VFAT filesystems on Linux, you can choose the owner
> and permissions of the files with the following options:
>
> uid=value and gid=value
> Set the owner and group of all files. (Default: the uid and gid
> of the current process.)
>
> umask=value
> Set the umask (the bitmask of the permissions that are not
> present). The default is the umask of the current process. The
> value is given in octal.
>
> dmask=value
> Set the umask applied to directories only. The default is the
> umask of the current process. The value is given in octal.
>
> fmask=value
> Set the umask applied to regular files only. The default is the
> umask of the current process. The value is given in octal.
>
> For GRASS, you will need to make yourself the owner. As Moritz points
> out, write permission alone isn't enough.
>
> There might be other problems, e.g. due to the fact that FAT doesn't
> support hard links, which GRASS code occasionally uses.
>
> Also, there could be issues due to filenames being case insensitive
> (when GRASS tries to open a file directly, the case doesn't matter,
> but if it scans the directory looking for a specific file, it may
> overlook it if the case isn't what it expects). If that is a problem,
> you can change how case is handled with the option:
>
> shortname=[lower|win95|winnt|mixed]
>
> Defines the behaviour for creation and display of filenames
> which fit into 8.3 characters. If a long name for a file exists,
> it will always be preferred display. There are four modes:
>
> lower Force the short name to lower case upon display; store a
> long name when the short name is not all upper case.
>
> win95 Force the short name to upper case upon display; store a
> long name when the short name is not all upper case.
>
> winnt Display the shortname as is; store a long name when the
> short name is not all lower case or all upper case.
>
> mixed Display the short name as is; store a long name when the
> short name is not all upper case.
>
> We have had to iron out many such problems in the process of porting
> GRASS to Windows. However, sometimes this has been achieved by adding
> Windows-specific cases to the code, which won't have any effect if
> you're actually running on Unix.
>
> Finally, if you built GRASS from source, you can disable the ownership
> checks by deleting the code within the "#ifndef __MINGW32__" blocks in
> G__mapset_permissions() and G__mapset_permissions2() in the file
> lib/gis/mapset_msc.c, then re-compiling.
>
> Note to grass-dev: should we consider providing a mechanism to allow
> the ownership check to be overridden? On a single-user system (or a
> "shared" system where everyone has root/sudo access), the check isn't
> critical, and can sometimes get in the way (like this).
>
>
Thanks a lot! I solved the problem with setting uid=my_user_name in the
fstab-file. Now everything is working. And no
problems with the case insensitivity till now. GRASS works with or
without the shortname=win95 mount option on my machine.
But I think on a multi-user system it is not possible to use the uid. So
it would be great to have a possibility to override the ownership check.
Thanks,
Martin
More information about the grass-windows
mailing list