Course Groups
Introduction
Several CSE courses require students work together in groups on common projects, sharing access to common files.Usually, such groups need to be managed by system staff. However, a system has been created at CSE which delegates management of these groups to course administrators using the priv command:
priv update-groupsSystem support will still need to set up the initial configuration files, and may need to update these files occasionally, but in general, course administrators should be able to completely administer group creation and membership for themselves once the initial group management configuration files have been set up.
This document describes specificly what course administrators need to do to administer this system, while the Course Groups document describes specificly what system administrators need to do to administer this system.
User Guide For Course Administrators
Overview
The course administrator:- Gets system staff to set up the general attributes of the groups to be created, in particular they will define the group prefix P (eg: sew3b).
- Creates the file defining the specific groups and their membership.
- Runs the command priv update-groups P (eg: priv update-groups sew3b
Thus student S, who is a member of group Pn, should be able to:
- Log into a CSE machine as themselves;
- Create and access files and directories within their group's home directory (/home/Pn/) that can be shared between all members of their group.
Group attributes
General course group attributes are stored in the group attribute file in /home/ss/conf/group-manager/. This file:- Has the same name as the ARG passed to
the priv script used to manage course groups (ie:
priv update-groups ARG); - Is accessible only to system staff.
- Prefix
- The course group prefix to which the group number is appended. This is usually the same as the argument ARG is passed to the priv script but it need not be;
- Width
- The width of the group number appended to the group prefix
- Course
- The Course associated with the group
- Config
- The full pathname of the course group membership file which defines the group members and group expiry, and is the file administered by the course admins. This file location is dealt with more fully in the next section under Spec file location
- Expiry
- This is the expiry date of the group accounts. By default, groups expire before the start of the next session, but you may prefer to have them expire when the group attribute file expires (which is determined by setting valid_until in either this file (the group attributes file), or the group membership file (described below).
- Authorised posters
- This determines the users authorised to send email to the virtual mail address group.coursegroup-list By default, this is all users within CSE.
- Home base
- This is the location of the homes of the course groups . The system default is usually fine, but if your course makes particular use of specific server (like a database server), then you might prefer to keep all course groups on the filesystem local to that server.
- Extra Classes
- These are additional UDB classes that allow for things like extra disc quota, or access to specific servers
- Group Description
- By default this will be Group NN for $Course, but you may change this to a more descriptive string if you prefer.
Group membership and expiry
The group membership file is the file that you, the course administrator, will need to edit to determine group membership and expiry.Spec file location
The spec file is best located somewhere in the course admin's account, usually in a directory reflecting the groups' year and session. (eg: /home/$course_admin/YYsS.work/groups)Note that the full pathname of the group spec file needs to be assigned to the config variable in the Group attribute file, and that this config file is only accessible to system staff (SS). So if the course admin wants to be able to change this file's pathname each year/session (because the group spec file is located in a different directory each year/session), without having to involve SS each year/session, then the course admin should:
- Create a soft link with a fixed name that always links to (or points at) the current group spec file (eg: /home/$course_admin/coursegroup -> /home/$course_admin/YYsS.work/groups);
- Arrange to have the full pathname of the soft link assigned to the config variable in the group manager config file.
Spec file format
The course group spec file has the following format:
[ 'valid_until' '=' ddMMMyyyy ]
{ NN '=' user{','user} }
Where:
- ddMMMyyyy
- the date up to which the group spec files are valid (eg: 12dec2009). The group manager config file can assign the course group expiry to this date if required
- NN
- the group number that is appended to the group_name_prefix (eg: 01)
- user
- the user to be added as a member of the group group_name_prefixNN
Managing course groups
Once:- The group attribute file has been created by SS defining the attributes you want for your course groups;
- The group membership file has been created (or modified) by you;
priv update-groups ARG
where ARG is the special name defining your
course groups.It is recommended that ARG be the same as your course group's prefix, but it is actually determined by the name of the group attributes file (in /home/ss/conf/group-manager/). If this is not actually the same as your course group's prefix, then for your own reference, you should insert a comment into your group membership file specifying what ARG is.
Important Notes
-
An existing group home directory will be archived
and cleaned out (ie: re-initialised) if:
- The group was previously expired. OR
- There are no group members (in the new definition file) that are in common with the existing group membership.
This is done to ensure that group home directories are cleaned out when appropriate, and that users do not inadvertantly get access to previous groups' files.
Thus:- Adding new members to a group, or deleting some members from a group, will retain that group's home account (with all its existing directories and files), and make them accessible to all new members of the group.
- Renumbering an existing group will cause the old group account to be cleaned out and archived, and a new group account to be created.