The chmod service modifies the permission bits that are used to control the owner access, group access, and general access to a file. You can use it to set flags that modify the user ID (UID) and group ID (GID) of the file when it is executed. You can also use it to set the sticky bit to indicate from where the file should be fetched. You identify the file by its pathname.
For the corresponding service using a file descriptor, see fchmod (BPX1FCM, BPX4FCM) — Change the mode of a file or directory by descriptor.
Operation | Environment |
---|---|
Authorization: | Supervisor state or problem state, any PSW key |
Dispatchable unit mode: | Task |
Cross memory mode: | PASN = HASN |
AMODE (BPX1CHM): | 31-bit |
AMODE (BPX4CHM): | 64-bit |
ASC mode: | Primary mode |
Interrupt status: | Enabled for interrupts |
Locks: | Unlocked |
Control parameters: | All parameters must be addressable by the caller and in the primary address space. |
|
AMODE 64 callers use BPX4CHM with the same parameters.
The name of a fullword that contains the length of the pathname of the file whose mode you want to change.
The name of a field that contains the pathname of the file. This field has the length that is specified in Pathname_length.
The name of a fullword that describes the access. This field, which is mapped by BPXYMODE, specifies the file type and permissions for the caller, for the callers group, and for any others. For more information, see BPXYMODE — Map the mode constants of the file services.
The name of a fullword in which the chmod service returns 0 if the request is successful, or -1 if it is not successful.
Return_code | Explanation |
---|---|
EACCES | The calling process does not have permission to search some component of Pathname. |
ELOOP | A loop exists in symbolic links that were encountered during resolution of the Pathname argument. This error is issued if more than 24 symbolic links are detected in the resolution of Pathname. |
ENAMETOOLONG | Pathname is longer than 1023 characters, or a component of the pathname is longer than 255 characters. Filename truncation is not supported. |
ENOENT | No file named Pathname was found, or no pathname was specified. The following reason code can accompany the return code: JRFileNotThere. |
ENOTDIR | Some component of Pathname is not a directory. |
EPERM | The effective UID of the calling process does not match the owner of the file, and the calling process does not have appropriate privileges (see Authorization). |
EROFS | Pathname specifies a file that is on a read-only file system. The following reason code can accompany the return code: JRReadOnlyFS. |
The name of a fullword in which the chmod service stores the reason code. The chmod service returns a Reason_code only if Return_value is -1. Reason_code further qualifies the Return_code value. See z/OS UNIX System Services Messages and Codes for the reason codes.
There are no restrictions on the use of the chmod service.
For an example using this callable service, see BPX1CHM (chmod) example.