####[ How-Do-I Documents ]#######################################

Sub : User read-write in M$ partitions                   HDI #004

How-Do-I get read and write permissions to M$ partitions mounted
as msdos or vfat ?

#################################################################

1.       Problem Definition

1.1      There is an inharent difference between *nix (ext2, ext3
         and M$ partitions (msdos/ vfat), since  the  latter does
         not support  ownership other than root.  By default, all
         files are owned by root, by group root and have permiss-
         ion of "-rw-rw-r--".
         
1.2      You may note, that no execute permissions are set. It is
         better that way, since it is not possible to run M$ exe-
         cutables under Linux.
         
1.3      Since the ownership is root.root, though read  access is
         available on the M$ partiton,  but  write  access is not
         available.
         
2.       The work around.

2.1      The work-around for this problem is to mount the M$ par-
         tition under control of a specified "group".  Under BSD,
         all users placed in the group wheel  have  access to the
         M$ partitions. This may not be true for systems like RH,
         SuSE, Debian etc which follow a Sys-V init process.
         
3.       How to do it.

3.1      Checking your system for wheel

3.1.1    In distros like Slackware, which follow the  BSD conven-
         tion, it mau not be necessary to create a seperate group
         As root do:
         
         #cat /etc/group
         
3.1.2    Note if a group called wheel is existing.  Normally, it
         would read something like this:
         
         wheel::10:root     (this gid of 10 may change)
         
3.1.3    If this exists, then all that is needed is  to  add  all
         users that need m$ partition write access to this. e.g.
         
         wheel::10:root,user1,user2,user3
         
         [This needs to be done as root using any editor.  In any
         case, this partition would need mounting through fstab ]
         
3.1.4    In case, it does not exist, please check which  group-id
         number is free. Normally GID < 100 is used by the system
         and > 500 is used by users. So, check for a number > 100
         but < 500. Usually, 200 or 300 is safe.
         
3.2      Adding a group.

3.2.1    Do NOT do it manually, unless you know all the  files to
         change. Use the program group add.
         
         #groupadd -g 200 msdos
         
3.2.3    In the above example we added a new group  called msdos.
         The group name can be anything, but msdos  gives a clear
         indication what it is for.
         
3.2.4    If you do a 'cat /etc/group',  you  would find something
         like this at the bottom of the file:
         
         msdos:x:200:
         
         Edit /etc/group in any editor, as root and add :
         
         msdos:x:200:root,user1,user2,user3
         
3.2.5    This sets your group (msdos) and  users who have  access
         to files/partitions used by the group. The only step now 
         is to set up the mounting process for access.
         
3.3      Tinkering fstab

3.1      Add the following line to fstab. Explanations follow:

-------------------------------<snip>----------------------------------
/dev/hda1   /mnt/dos-c   vfat   defaults,noauto,user,gid=200    2 2
-------------------------------</snip>---------------------------------

3.1.1    /dev/hda1 ... it is assumed that the  partition you want
         to load is /dev/hda1.  In case it is some other, this is
         to be suitable altered.
         
3.1.2    /mnt/dos-c ... this is the mount point. This needs to be
         present on your system before  invoking a reboot ... The
         name /mnt/dos-c is an example. you can  create  an empty
         directory with the mkdir command anywhere, with your own
         preferred name.
         
3.1.3    vfat ... This is the partition type id. If  vfat support
         is compiled in the kernel, or loaded as a module it will
         enable long file name support. Other types supported are
         msdos and umsdos.
         
3.1.4    defaults ... This sets the default  options to rw, suid, 
         dev, exec,auto, nouser, and async. Note,  of  these,  we
         reset two things with  subsequent  commands "noauto" and
         "user". Do 'man mount' for further details.       
                                                       
3.1.5    noauto ... This prevents automatic  mounting at boot. It
         is better to keep it that way since read-write access to
         a M$ partition should be on a need basis rather than the
         default. Secondly, if you have updatedb (for locate) set
         up as a cron process it increases the locatedb size with
         things from the M$ partition which you may not need. 
                                                       
3.1.6    user ... The nouser default is changed to user  since we
         are giving access to a particular group, which we define
         immediately thereafter. There are two advantages that we
         gain here:
         
         a) The partition is mountable by an user  in the "msdos"
            group with 'mount /mnt/dos-c' command.
         
         b) If you have DIR_COLORS set and would like to have the
            usual coloured ls listings, this needs to be set.
         
3.1.7    gid=200 ... This is the msdos group that we created, and
         the partition access is being  regulated for  only users
         listed in the group.
         
3.1.8    The last "2 2" ... The first 2 is for the "dump" option.
         This needs a fair amount of explanation. For a short bit
         of information do 'man fstab'. 
         
3.1.9    The second "2" is for fsck (fs_passno). Being a non-root 
         partition,  2nd pass check is recommended,  in case  the 
         noauto is changed to auto, so  that  fsck can check this 
         partition at boot. Do 'man fstab' for other options.
                         

#################################################################

4        Kudos and Brickbats

4.1      This document is released under GNU/ GPL licence. You are
         free to use and distribute this without any encumberances

4.2      Any kudos and brickbats should be directed at:

         USM Bish <bish@nde.vsnl.net.in>

         13 Oct 2001