Changes permissions or ownership of a VOB object
Product | Command Type |
---|---|
ClearCase | cleartool subcommand |
ClearCase LT | cleartool subcommand |
Attache | command |
Platform |
---|
UNIX |
Windows |
The protect command sets the owner, group, or permissions for one or more elements, shared derived objects, or named VOB objects. This information is maintained in the VOB database.
NOTE: This command does not apply to files loaded in a snapshot view.
The main use of protect is to control access by standard programs to an element or object's data. For example, you may make some elements readable by anyone, and make others readable by only their group members.
Modifying the permissions of an element changes the permissions of all of its source containers and (if applicable) cleartext containers. That is, the change affects all versions, not just the version selected by the current view. There is no way to change the permissions of an individual version.
Some forms of protect affect ClearCase and ClearCase LT access. For example, a checkout or checkin is permitted only if the user is the element's owner, or is a member of the element's group.
This command does not affect view-private objects. For this reason, entering a protect command sometimes seems to have no effect:
Changing an element's permissions has no effect on its checked-out versions. After you check in the element, your view selects the checked-in version, thus making the updated permissions appear.
Changing a DO's permission has no effect on the way the DO appears in the view where it was originally created, or in the dynamic views where it has been winked in. To have your dynamic view use a shared DO with updated permissions:
You can change the permissions on any view-private object (including a checked-out version), with the standard operating system commands commands.
NOTE TO UNIX USERS: We support the BSD semantics (POSIX CHOWN RESTRICTED) for chown: only root can change the owner-IDs. (In a view, this means the root identity on the machine on which the view storage directory resides.)
A winked-in DO is not really a view-private object, but it behaves like one (so that users in different views can build software independently). Moreover, changing the permissions of a winked-in DO actually converts it to a view-private file in your view. See Building Software.
The initial owner of an element is the user who creates it with mkelem or mkdir. The initial owner of a named VOB object is the user who creates it. The initial owner of a derived object is the user who builds it with clearmake. When the derived object is winked in and becomes shared, its data container is promoted to a VOB storage pool. This process preserves the derived object's ownership, no matter who performs the build that causes the winkin.
See the permissions reference page for a list of operations that can be performed by an element's owner.
The initial group of an element or named VOB object is the principal group of its creator. The new group specified in a protect -chgrp command must be one of the groups on the VOB's group list.
See the permissions reference page for a list of operations that can be performed by members of an element's or derived object's group.
NOTE TO UNIX USERS: When you execute protect -chgrp, the set-UID and set-GID bits of the file mode (04000 and 02000, respectively) are always cleared. This differs from UNIX practice, where clearing occurs only when a non-root identity runs the chgrp command.
The read and execute permissions of an element or shared derived object control access to its data in the standard manner. The permissions are also applied to all its associated data containers.
NOTE: protect sometimes adds group-read permission to your specification. This ensures that the owner of an element always retains read permission to its data containers.
The meaning of the write permission varies with the kind of object:
For a file element, write permission settings are ignored. To obtain write permission to a file element, you must check it out (see the checkout reference page).
For a directory element, write permission allows view-private files to be created within it. ClearCase or ClearCase LT permissions control changes to the directory element itself. (See the permissions reference page.)
For a shared derived object, write permission allows it to be overwritten with a new derived object during a target rebuild. (The shared derived object is not actually affected; rather, the view sees the new, unshared derived object in its place.)
Changing the protection of a global type or a local copy of a global type changes the protection of the global type and all its local copies. You must have permission to change the protection of the global type.
If the protection cannot be changed on one or more of the local copies, the operation fails and the global type's protection is not changed. You must fix the problem and run the protect command again.
For more information, see the Administrator's Guide.
Identities: You must have one of the following identities:
Object owner
VOB owner
root (UNIX)
Member of the ClearCase group (ClearCase on Windows)
Local administrator of the ClearCase LT server host (ClearCase LT on Windows)
NOTE: For protect -chgrp, you must be a member of the new group, and it must also be in the VOB's group list.
Locks: An error occurs if one or more of these objects are locked: VOB, element type, element, pool (non-directory elements only). For named objects, an error occurs if the VOB, object, or object's type is locked.
Mastership: (Replicated VOBs only) If your current replica is ownership-preserving, it must master the object being processed. If your current replica is non-ownership-preserving, no mastership restrictions apply.
SPECIFYING PERMISSION CHANGES. Default: None.
u | user/owner |
g | group |
o | other |
a | all (owner, group, and other) |
When identity is unspecified, its default value is a.
permission can be any combination of
r | read |
w | write |
x | execute |
To combine the forms, separate them with a comma (no white space). For example, to specify read and write permissions for an element's owner and no access by group or other:
cmd-context protect -chmod u=rw,go-rwx test.txt
Absolute permissions are constructed from the OR of any of the following octal numbers:
400 | read by owner |
200 | write by owner |
100 | execute (and directory search) by owner |
700 | read, write, and execute (and directory search) by owner |
040 | read by group |
020 | write by group |
010 | execute (and directory search) by group |
070 | read, write, and execute (and directory search) by group |
004 | read by others |
002 | write by others |
001 | execute (and directory search) by others |
007 | read, write, and execute (and directory search) by others |
For example, the value 600 specifies read/write permission for the owner and no access by any other identity. The value 764 gives all permissions to the owner, read/write permissions to the group, and read permission to others.
EVENT RECORDS AND COMMENTS. Default: Creates one or more event records, with commenting controlled by your .clearcase_profile file (default: -nc). See the comments reference page. Comments can be edited with chevent.
SPECIFYING THE OBJECTS. Default: None.
attribute-type-selector | attype:type-name[@vob-selector] | |
branch-type-selector | brtype:type-name[@vob-selector] | |
element-type-selector | eltype:type-name[@vob-selector] | |
hyperlink-type-selector | hltype:type-name[@vob-selector] | |
label-type-selector | lbtype:type-name[@vob-selector] | |
trigger-type-selector | trtype:type-name[@vob-selector] | |
pool-selector | pool:pool-name[@vob-selector] | |
hlink-selector | hlink:hlink-id[@vob-selector] | |
oid-obj-selector | oid:object-oid[@vob-selector] | |
The following object selector is valid only if you use MultiSite: | ||
replica-selector | replica:replica-name[@vob-selector] |
PROCESSING OF DIRECTORY ELEMENTS. Default: Any pname argument that specifies a directory causes the directory element itself to be changed.
The UNIX examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.
The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.
In cleartool single-command mode, cmd-context represents the UNIX shell or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt. In Attache, cmd-context represents the workspace prompt.
Add read permission to the file element hello.c, for all users.
cmd-context protect -chmod +r hello.c
Changed protection on "hello.c".
Change the group-ID for all elements in the src directory to user.
cmd-context protect -recurse -chgrp user src
Changed protection on "src".
Changed protection on "src/cm_fill.c".
Changed protection on "src/convolution.c".
Changed protection on "src/hello.c".
Changed protection on "src/msg.c".
Changed protection on "src/util.c".
Change the owner of the branch type qa_test to tester.
cmd-context protect -chown tester brtype:qa_test
Changed protection on "qa_test".
Allow users in the same group to read/write/execute the shared derived object hello, but disable all access by others. Use an absolute permission specification.
cmd-context protect -chmod 770 hello
Changed protection on "hello".
protectvob, chmod(1), chown(1), chgrp(1), passwd(4), group(4)
Feedback on the documentation in this site? We welcome any comments!
Copyright © 2001 by Rational Software Corporation. All rights reserved. |