Changing file permissions
To change the permissions on a file, use the
chmod(C)
(change mode) command, which has two formats, ``symbolic'' and
``absolute'', as follows:
chmod who operator permission filename
chmod mode filename
Using the first, symbolic, format, the who field is one or
more of the following characters:
a- 
all users; change all three sets of permissions at once
 
u- 
user; change the user, or owner, permissions
 
g- 
group; change the group members' permissions
 
o- 
others; change the other users' permissions
 
The operator field is one of the following symbols:
+- 
add a new permission
 
-- 
remove a new permission
 
=- 
set permissions while clearing (removing) all other permissions
 
The following sample usages of chmod show a number of
symbolic permissions being set:
$ chmod g+w memo- 
adds write permission for group members on the file memo.
 
$ chmod o-wx memo- 
removes write and execute permission for others (users other than
the owner or those in the file's group).
 
$ chmod o= memo- 
clears (removes) all permissions for other (setting a NULL
permission clears any existing value).
 
$ chmod u=rx memo- 
sets read and execute for user, clearing (removing) write
permission (which is not specified in the ``='' command.)
 
$ chmod a+w memo- 
adds write permission to the existing permissions for all
categories of user.
 
You can also change permissions using their absolute numeric values,
by giving a three-digit octal number to specify the
permissions. This method is harder to use but less verbose.
Using octal numbers to set permissions
| 
Permissions
 | 
Octal number
 | 
| 
---
 | 
0
 | 
| 
--x
 | 
1
 | 
| 
-w-
 | 
2
 | 
| 
-wx
 | 
3
 | 
| 
r--
 | 
4
 | 
| 
r-x
 | 
5
 | 
| 
rw-
 | 
6
 | 
| 
rwx
 | 
7
 | 
Permission to execute a file is represented by a value of 1.
Permission to write a file is represented by a value of
2. Permission to read a file is represented by a value of 4. These
values are added together to produce the combinations in the table
above.
Three octal numbers (numbers in the range 0 to 7) are used to
represent the owner, group and other permissions respectively.
Thus, by adding the permissions for a given category of user, you
produce a digit; and by specifying three digits (one for each set
of users) you can specify all the permissions on a file, as follows:
   $ l myfile
   -rw-r--r--   1 johnd techpubs    5061 Feb 10 15:01 myfile
   $ chmod 640 myfile
   $ l myfile
   -rw-r-----   1 johnd techpubs    5061 Feb 10 15:01 myfile
myfile originally possessed permissions 644. The ``6''
gives read and write permissions (2 plus 4) to users in the
specified group, while the ``4'' gives read permissions only. ``0''
gives no permissions at all. The effect of executing chmod
640 on this file was to deny all permissions to users of group
``other''.
Next topic: 
Setting the default permissions for a new file
Previous topic: 
Access control for files and directories
© 2003 Caldera International, Inc.  All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003