3.1 Fundamentals of ClearCase Access Control

ClearCase implements access controls that determine which users can create, read, write, execute, and delete data in ClearCase. Access control depends on the interaction of users and the groups they belong to, ClearCase objects, and user processes or application programs that access ClearCase data on behalf of the users.

Users and Groups

ClearCase does not have its own implementation of user and group accounts. Instead, it relies on the operating system to authenticate users at login time and to provide the details of user identity and group membership that determine a user's rights to execute various ClearCase operations. Both UNIX and Windows provide networkwide databases of user and group names that are well suited to the needs of a distributed application like ClearCase. On UNIX, this database is part of the Network Information System (NIS, NIS+). On Windows, it is part of the Active Directory or Windows NT Domain system.

On both operating systems, a user logs on with a unique user name, which ClearCase uses as the user's identification or user ID. A user ID can be a member of one or more groups, one of which is distinguished as the user's primary group. On UNIX, the primary group is part of the user's entry in the NIS passwd database. On Windows, a primary group can be specified when the user's domain account is created, although each user should also set the user environment variable CLEARCASE_PRIMARY_GROUP to the name of that group (see Setting the ClearCase Primary Group). ClearCase considers both the user ID and primary group when determining a user's access rights to ClearCase objects.

In this document, the term community refers to a set of users and computers that access a common ClearCase LT server. A typical ClearCase LT community includes two classes of user:

NOTE: ClearCase on Windows has a few special requirements for creation of users and groups in Windows domains. See Domain User and Group Accounts.

Privileged Users and Groups

Some users and groups have special importance for ClearCase access control. For example, each ClearCase object has an owner, usually the creator of the object, who often has special access rights to the object. If the object is a container object, such as a VOB that contains elements, the ownership of the container object may in part determine who has access to the objects it contains.

ClearCase has a general notion of the privileged user, a term used throughout this book to describe a user who is authorized to perform certain critical operations on the ClearCase LT server. (There is no privileged user on the ClearCase LT client.)

On either UNIX or Windows, the privileged user has the right to create, delete, and modify VOBs and the objects that VOBs contain. Access to the privileged user account should be restricted to ClearCase administrators.

Restricted Privileges for Remote root

Although many ClearCase operations on UNIX hosts treat a remote root user (one who is not logged in to the local host) as a privileged user, there are several exceptions to this rule.

User Processes

Any user request to read or write ClearCase data causes a user process (such as a ClearCase GUI or command-line program, or a non-ClearCase program such as a text editor that accesses ClearCase data in a dynamic view) running with that user's identity to request access to the data.

A user process has several properties that ClearCase evaluates to determine whether to grant the process access to the requested data:

This chapter refers to a process's primary group and other groups together as the process's groups.

ClearCase Objects

The following ClearCase objects are subject to access control:

NOTE: The ClearCase scheduler maintains its own access control mechanism. See Managing the Scheduler Access Control List.

Each of these objects has one or more of these properties, which are important for access control:

For example, suppose you are working in a view and want to see the protection mode for the directory element myproj in the projects VOB. Suppose the owner and group of myproj have read, write, and execute permission, but other users have only read and execute permissions. The cleartool describe command displays the mode, along with the elements's owner (sue) and group (clearusers), as follows:

cleartool describe myproj
...
Element Protection:
User : sue rwx
Group: clearusers rwx
Other: r-x
...

In addition to these single-character abbreviations, ClearCase sometimes uses integers to display object permissions in a compact form. For each user category (owner, group, and others), a single digit from 0 through 7 represents the permissions for that category, as described in Table 2.

Table 2 Protection Mode Digits for a ClearCase Object


Digit

Read Permission?

Write Permission?

Execute Permission?

0


No


No


No


1


No


No


Yes


2


No


Yes


No


3


No


Yes


Yes


4


Yes


No


No


5


Yes


No


Yes


6


Yes


Yes


No


7


Yes


Yes


Yes


A sequence of three digits in a row expresses the protection mode for an object, in this order: owner's permissions, group's permissions, others' permissions. For example, the protection mode 750 for an object means that it has these permissions:

Digit User Category Permissions

7

Owner

Read, Write, Execute

5

Group

Read, Execute

0

Others

None


Access to ClearCase Data

Whether a process has access to a ClearCase object depends on these factors:

When a process seeks access to a protected object, the following algorithm usually determines whether access is granted:

  1. Does the process have the user ID of the owner of the object?

  2. Does the process have the group ID of the group of the object

  3. Grant or deny access according to the object's protection mode for the Other category.

If an object has no protection mode, ClearCase determines whether to grant access by using rules that depend on the type of object. See the descriptions in Access Control for VOBs and VOB Objects and Access Control for Views and View Objects.