NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | EXAMPLES | ENVIRONMENT VARIABLES | EXIT STATUS | ATTRIBUTES | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO | NOTES
The chmod command changes or assigns the mode of a file. The mode of a file specifies its permissions and other attributes. The mode may be absolute or symbolic.
An absolute mode is specified using octal numbers:
chmod nnnn file…
a number from 0 to 7. An absolute mode is constructed from the OR of any of the following modes:
Set user ID on execution.
Set group ID on execution if # is 7, 5, 3, or 1.
Enable mandatory locking if # is 6, 4, 2, or 0.
For directories, files are created with BSD semantics for propagation of the group ID. With this option, files and subdirectories created in the directory inherit the group ID of the directory, rather than of the current process. It may be cleared only by using symbolic mode.
Turn on sticky bit. See chmod(2).
Allow read by owner.
Allow write by owner.
Allow execute (search in directory) by owner.
Allow read, write, and execute (search) by owner.
Allow read by group.
Allow write by group.
Allow execute (search in directory) by group.
Allow read, write, and execute (search) by group.
Allow read by others.
Allow write by others.
Allow execute (search in directory) by others.
Allow read, write, and execute (search) by others.
Note that the setgid bit cannot be set (or cleared) in absolute mode; it must be set (or cleared) in symbolic mode using g+s (or g-s).
A symbolic mode specification has the following format:
chmod symbolic-mode-list file…
[who] operator [permissions]
Operations are performed in the order given. Multiple permissions letters following a single operator cause the corresponding operations to be performed simultaneously.
zero or more of the characters u, g, o, and a specifying whose permissions are to be changed or assigned:
user's permissions
group's permissions
others' permissions
all permissions (user, group, and other)
If who is omitted, it defaults to a, but the setting of the file mode creation mask (see umask in sh(1) or csh(1) for more information) is taken into account. When who is omitted, chmod will not override the restrictions of your user mask.
either +, -, or =, signifying how permissions are to be changed:
Add permissions.
If permissions is omitted, nothing is added.
If who is omitted, add the file mode bits represented by permissions, except for the those with corresponding bits in the file mode creation mask.
If who is present, add the file mode bits represented by the permissions.
Take away permissions.
If permissions is omitted, do nothing.
If who is omitted, clear the file mode bits represented by permissions, except for those with corresponding bits in the file mode creation mask.
If who is present, clear the file mode bits represented by permissions.
Assign permissions absolutely.
If who is omitted, clear all file mode bits; if who is present, clear the file mode bits represented by who.
If permissions is omitted, do nothing else.
If who is omitted, add the file mode bits represented by permissions, except for the those with corresponding bits in the file mode creation mask.
If who is present, add the file mode bits represented by permissions.
Unlike other symbolic operations, = has an absolute effect in that it resets all other bits represented by who. Omitting permissions is useful only with = to take away all permissions.
any compatible combination of the following letters:
read permission
write permission
execute permission
mandatory locking
user or group set-ID
sticky bit
indicate that permission is to be taken from the current user, group or other mode respectively.
Permissions to a file may vary depending on your user identification number (UID) or group identification number (GID). Permissions are described in three sequences each having three characters:
rwx
rwx
rwx
This example (user, group, and others all have permission to read, write, and execute a given file) demonstrates two categories for granting permissions: the access class and the permissions themselves.
The letter s is only meaningful with u or g, and t only works with u.
Mandatory file and record locking (l) refers to a file's ability to have its reading or writing permissions locked while a program is accessing that file.
In a directory which has the set-group-ID bit set (reflected as either -----s--- or -----l--- in the output of 'ls -ld'), files and subdirectories are created with the group-ID of the parent directory rather than that of current process.
It is not possible to permit group execution and enable a file to be locked on execution at the same time. In addition, it is not possible to turn on the set-group-ID bit and enable a file to be locked on execution at the same time. The following examples, therefore, are invalid and elicit error messages:
chmod g+x,+l file chmod g+s,+l file |
file_setdac
privilege) may change that file's or directory's mode. Only a user invoking the command with the sys_config
privilege may set the sticky bit on a non-directory file. If the command is invoked without the sys_config
privilege, chmod will mask the sticky-bit but will not return an error. In order to turn on a file's set-group-ID bit, your own group ID must correspond to the file's and group execution must be set.
The following options are supported:
Force. chmod will not complain if it fails to change the mode of a file.
Recursively descend through directory arguments, setting the mode for each file as described above. When symbolic links are encountered, the mode of the target file is changed, but no recursion takes place.
chmod processes all single-level directories as it descends multilevel directories.
The following operands are supported:
Represents the change to be made to the file mode bits of each file named by one of the file operands; see the DESCRIPTION section for more information.
A path name of a file whose file mode bits are to be modified.
See largefile(5) for the description of the behavior of chmod when encountering files greater than or equal to 2 Gbyte ( 231 bytes).
example% chmod a-x file |
example% chmod 444 file |
example% chmod go+rw file example% chmod 066 file |
example% chmod +l file |
example% chmod a=rwx,g+s file example% chmod 2777 file |
See environ(5) for descriptions of the following environment variables that affect the execution of chmod: LC_CTYPE, LC_MESSAGES, and NLSPATH.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Availability | SUNWcsu |
CSI | enabled |
The -M option processes all accessible single-level directories in multilevel directories. Running the command by a user other than the owner of a file or directory requires the file_setdac
privilege. Setting the sticky bit on a non-directory
file requires the sys_config
privilege.
Absolute changes don't work for the set-group-ID bit of a directory. You must use g+s or g-s.
chmod permits you to produce useless modes so long as they are not illegal (for instance, making a text file executable). chmod does not check the file type to see if mandatory locking is meaningful.
If the file system is mounted with the nosuid option, setuid execution is not allowed.
If you use chmod to change the file group owner permissions on a file with ACL entries, both the file group owner permissions and the ACL mask are changed to the new permissions. Be aware that the new ACL mask permissions may change the effective permissions for additional users and groups who have ACL entries on the file. Use the getfacl(1) command to make sure the appropriate permissions are set for all ACL entries.
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | EXAMPLES | ENVIRONMENT VARIABLES | EXIT STATUS | ATTRIBUTES | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO | NOTES