Original Message:
>I am looking for a one step process to allow a group of people to work
>in a directory (read/write) and preserve the group read/write protection
>and group names on all the files.  These files are not programs, or source
>codes.  They are just some documentation that need to be modified by a
>group of people, so SCCS would not be appropriate for this purpose.
>
>What I am recommending currently is:
>
>1.  newgrp <group-name>
>2.  cd <group-dir>
>3.  umask 007
>4.  Do your work
>5.  exit
>
>This is obviously too many steps, and users want a more automated way
>of doing this.   Please let me know if there is an easier way of doing
>this on UNIX.
>
>zohreh@std.teradyne.com
Thank you to all who responded.  Almost every one suggested setting
the sticky bit on group for the group directory which eliminated the need
for doing a newgrp.  newgrp creates a new shell and that was my reason for
not being able to do it from a script.  This is what I ended up doing:
1.  Create a directory for this group with the setgid permissions:
                mkdir <dir-name>
                chmod 770 <dir-name>
                chmod g+s <dir-name>
2.  Create a group in /etc/group NIS data base.
3.  Create a netgroup entry in the master NIS netgroup file for hosts
    to be mounting this project directory.
4.  Export the directory in /etc/exports file to the netgroup entry.
5.  Run exportfs on the exported partition.
6.  Write 3 shell scripts (setproject-<projname>) and setproject-home
    to save the user's umask, set his umask to 27 to allow group write
    and change directory to the new directory.
        setproject-<projname> script:
        -------------------------------
        #!/bin/csh
        if (! $?DEFAULT_UMASK) then
                        setenv DEFAULT_UMASK `umask`
        endif
        umask 27
        cd <projname>
        pwd
        setproject-home script:
        -----------------------
        #!/bin/csh
        if ($?DEFAULT_UMASK) then
                umask $DEFAULT_UMASK
                  unsetenv DEFAULT_UMASK
        endif
        cd
        pwd
    
7.  Set up a mailing list for this group and send mail to them advising
    them to set an alias to source the setproject-<projname> and
    setproject-home to go back and forth between the group project and
    the home directory.  The aliases will look like:
        alias projname 'source /usr/std/tools/setproject-projname'
        alias home   'source /usr/std/tools/setproject-home'
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:08:26 CDT