Security Files

The following is a list of files that define UIDs, groups and other security components. In all the files, lines beginning with a has sign # are comments. Empty lines are ignored.


/etc/uid

This file defines the UID that an object gets when it is loaded into the driver. Each line in the file has the format
/dir/.../dir/file.c   uid
which specifies that object /dir/.../dir/file.c gets UID uid. A line can also have the format
/dir/.../dir/   uid
which specifies that object in directory /dir/.../dir/ get UID uid. When an object is loaded, the most specific line determines its UID.

Thus, for example, if the file is

/                            none
/domain/luvigana/obj/	     luvigana
/domain/luvigana/obj/axe.c   globoroth
then object /domain/wow/obj/sword.c gets UID "none", object /domain/luvigana/obj/bow.c gets UID "luvigana", and object /domain/luvigana/obj/axe.c gets UID "globoroth".

NOTE:
There is an important exception. When a player logs in, she gets the UID that is the same as its query_name().


/etc/group

This file defines groups. Each line has the format
$group    uid:...:$group
where $group is a group name, and uid:...:$group is a list of UIDS and groups. Any groups that appear in the list must be previously defined. To define the empty group, just put a colon : on a line by itself.

NOTE: There are special groups:

$all
the group of all UIDs
$player
the group of all players


/etc/seteuid

This file determines the permissions for function seteuid(), which is used for changing EUIDs. When an object calls seteuid(e) its UID determines whether it has the permission to change its EUID to e. The file /etc/seteuid determines these permissions.

Each line in the file has one the form:

uid   permission_list
Recall that a permission list is a list of UIDs and groups, separated by colons. The empty permission list is just a colon by itself. Each line specifies which UIDs have the permission to change their EUID to the given uid.

NOTE:
There are exceptions: