Information
|
2.
Running tcc and tccd with different user IDs in Distributed TETware
This information is not applicable to Win32 systems.
Normally,
tcc
and
tccd
are run with the same user ID on the local system.
This should be the same as the owner of the files below the test suite
root directory on the local system.
This arrangement is desirable because in Distributed TETware both
tcc
and
tccd
may create files in the test suite directory hierarchy.
By default,
tccd
runs with the ID of the user
tet
and so it is appropriate for
tcc
to run with the ID of the user
tet
as well.
Sometimes it is necessary to run
tcc
with a different user ID from the one used by
tccd .
These instructions assume that you will run
tccd
as the user
tet
and the people who invoke
tcc
will use their own login IDs.
You should perform the following operations:
-
Create a group called
tet
in the
/etc/group
file.
Arrange for the supplementary group list of all the users who will use
Distributed TETware to include the
tet
group.
On most systems, you do this by listing all the login names
in the last field of the
tet
entry in
/etc/group .
For example:
tet::102:tet,john,paul,george,ringo
-
In the
/etc/passwd
file, make sure that the
tet
user has the
tet
group as the primary group (this is shown in the fourth field in the
password entry).
For example:
tet:x:106:102:TETware user:/home/tet:/bin/ksh
Note that the 102 is the same as the 102 in the
tet
group entry.
-
Run
tccd
with a
umask
of 2 (by using the
-m
command-line option).
This will cause files created by
tccd
and the test cases and tools that
tccd
executes to be writable by group as well as by user.
For example, you might put the following entry in
/etc/inetd.conf:
tcc stream tcp nowait tet /home/tet/bin/in.tccd in.tccd -m2
-
Make sure that each user who will work with Distributed TETware has a
umask
of 2 (or less restrictive).
You can do this by putting the line:
umask 2
in each user's
.profile .
-
Make sure that all the directories below
$TET_ROOT
belong to the group
tet
and are writable by group.
You can do this by executing the following commands:
cd $TET_ROOT
find . -type d ! -group tet -print | xargs chgrp tet
find . -type d -print | xargs chmod g+w
Note that this assumes that you have not yet built any of the test
cases.
If you have, you will need to find all the build products and change
them to group
tet
and mode 664 as well.
-
Make sure that files and directories created below
$TET_ROOT
inherit the group of the directory in which they are created.
On some systems this is the default behaviour, whereas on others you
must turn on each directory's set-GID bit in order to enable this
behaviour.
If you need to turn on the set-GID bits you can do this by
executing the following commands:
cd $TET_ROOT
find . -type d -print | xargs chmod g+s
Points to note:
-
These instructions assume that the test case files are readable
by owner and group (at least).
If they're not, the following command will fix this:
cd $TET_ROOT
find . -type f -print | xargs chmod ug+r
-
The instruction to set the set-GID bit on directories is to ensure that
newly-created files and directories inherit their group ID from the
parent directory.
If this is your system's default behaviour, you don't need to set the
set-GID bit in order to achieve this.
-
These instructions assume that your system keeps password and group
information in
/etc/passwd
and
/etc/group .
If your system uses NIS for its password and group databases you
should ask your system administrator what to do.
-
On some systems it is not advisable to edit the password and group files
directly.
Instead you should use the appropriate system administration commands
to add and/or change entries in these files.
See also
-
"The Test Case Controller daemon
tccd ''
in the TETware User Guide.
-
The
tccd
manual page in the TETware User Guide.
|