chown (BPX1CHO, BPX4CHO) — Change the owner or group of a file or directory

Function

The chown service changes a file's owner, group, or both owner and group. The owner is identified by a user ID (UID) and a group ID (GID).

Requirements

Operation Environment
Authorization: Supervisor state or problem state, any PSW key
Dispatchable unit mode: Task
Cross memory mode: PASN = HASN
AMODE (BPX1CHO): 31-bit
AMODE (BPX4CHO): 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.

Format

CALL BPX1CHO,(Pathname_length,
              Pathname,
              Owner_UID,
              Group_ID,
              Return_value,
              Return_code,
              Reason_code)

AMODE 64 callers use BPX4CHO with the same parameters.

Parameters

Pathname_length
Supplied parameter
Type:
Integer
Length:
Fullword

The name of a fullword that contains the length of the pathname of the file whose owner or group is to be changed.

Pathname
Supplied parameter
Type:
Character string
Character set:
No restriction
Length:
Specified by the Pathname_length parameter

The name of a field that contains the pathname of the file. This field has the length that is specified in Pathname_length.

Pathnames can begin with or without a slash:
  • A pathname that begins with a slash is an absolute pathname. The slash refers to the root directory, and the search for the file starts at the root directory.
  • A pathname that does not begin with a slash is a relative pathname. The search for the file starts at the working directory.
Owner_UID
Supplied parameter
Type:
Integer
Length:
Fullword

The name of a fullword field that contains the new owner UID that is assigned to the file. If there is no change, this field contains the present value or -1. This parameter must be specified.

Group_ID
Supplied parameter
Type:
Integer
Length:
Fullword

The name of a fullword field that contains the new owner GID that is assigned to the file. If there is no change, this field contains the present value or -1. This parameter must be specified.

Return_value
Returned parameter
Type:
Integer
Length:
Fullword

The name of a fullword in which the chown service returns 0 if the request is successful, or -1 if it is not successful.

Return_code
Returned parameter
Type:
Integer
Length:
Fullword
The name of a fullword in which the chown service stores the return code. The chown service returns Return_code only if Return_value is -1. See z/OS UNIX System Services Messages and Codes for a complete list of possible return code values. The chown service can return one of the following values in the Return_code parameter:
Return_code Explanation
EACCES The calling process does not have permission to search some component of the Pathname prefix.
EINVAL The Owner_UID or Group_ID parameter is incorrect.
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.
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 the Pathname prefix is not a directory.
EPERM The calling process does not have appropriate privileges (see Authorization).
EROFS Pathname is on a read-only file system. The following reason code can accompany the return code: JRReadOnlyFS.
Reason_code
Returned parameter
Type:
Integer
Length:
Fullword

The name of a fullword in which the chown service stores the reason code. The chown service returns Reason_code only if Return_value is -1. Reason_code further qualifies the Return_code value. For the reason codes, see z/OS UNIX System Services Messages and Codes.

Usage notes

  1. The chown service changes the owner UID and owner GID of a file. Only a caller with appropriate privileges can change the owner UID of a file. Refer to Authorization for information on appropriate privileges.
  2. The owner GID of a file can be changed by a caller if the caller has appropriate privileges, or if a caller meets all of these conditions:
    • The effective UID of the caller matches the file's owner UID.
    • The Owner_UID value that is specified in the change request matches the file's owner UID.
    • The Group_ID value that is specified in the change request is the effective GID, or one of the supplementary GIDs, of the caller.
  3. The set-user-ID-on-execution and set-group-ID-on-execution permissions of the file mode are automatically turned off.
  4. If the change request is successful, the change time for the file is updated.
  5. Values for both Owner_UID and Group_ID must be specified. To change only one of these values, set the one that is to remain unchanged to its present value or to -1.

Related services

Characteristics and restrictions

There are no restrictions on the use of the chown service.

Examples

For an example using this callable service, see BPX1CHO (chown) example.