Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ chmod(2) — sys5 — Apollo Domain/OS SR10.3.5

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chown(2)

creat(2)

fcntl(2)

mknod(2)

open(2)

read(2)

write(2)

chmod(1)

CHMOD(2)                             SysV                             CHMOD(2)



NAME
     chmod - change mode of file

SYNOPSIS
     int chmod (path, mode)
     char *path;
     int mode;

DESCRIPTION
     path points to a pathname naming a file.  chmod sets the access
     permission portion of the named file's mode according to the bit pattern
     contained in mode.

     Access permission bits are interpreted as follows:

          04000   Set user ID on execution.
          020#0   Set group ID on execution if # is 7, 5, 3, or 1.
                  Enable mandatory file/record locking if # is 6, 4, 2, or 0.
          01000   Save text image  after execution.
          00400   Read by owner.
          00200   Write by owner.
          00100   Execute (search if a directory) by owner.
          00070   Read, write, execute  (search) by group.
          00007   Read, write, execute  (search) by others.

     The effective user ID of the process must match the owner of the file or
     be super-user to change the mode of a file.

     If the effective user ID of the process is not super-user, mode bit 01000
     (save text image on execution) is cleared.

     If the effective user ID of the process is not super-user and the
     effective group ID of the process does not match the group ID of the
     file, mode bit 02000 (set group ID on execution) is cleared.

     If the mode bit 02000 (set group ID on execution) is set and the mode bit
     00010 (execute or search by group) is not set, mandatory file/record
     locking will exist on a regular file.  This may effect future calls to
     open(2), creat(2), read(2), and write(2) on this file.

ERRORS
     chmod will fail and the file mode will be unchanged if one or more of the
     following are true:

     [ENOTDIR]     A component of the path prefix is not a directory.

     [ENOENT]      The named file does not exist.

     [EACCES]      Search permission is denied on a component of the path
                   prefix.

     [EPERM]       The effective user ID does not match the owner of the file
                   and the effective user ID is not super-user.

     [EROFS]       The named file resides on a read-only file system.

     [EFAULT]      path points outside the allocated address space of the
                   process.

     [EINTR]       A signal was caught during the chmod system call.

SEE ALSO
     chown(2), creat(2), fcntl(2), mknod(2), open(2), read(2), write(2).
     chmod(1) in the SysV Command Reference.

DIAGNOSTICS
     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.

NOTES
     Under some implementations supporting the "sticky" bit, if a 410
     executable file has the sticky bit (mode bit 01000) set, the operating
     system will not delete the program text from the swap area when the last
     user process terminates.  If a 413 executable file has the sticky bit
     set, the operating system will not delete the program text from memory
     when the last user process terminates.  In either case, if the sticky bit
     is set the text will already be available (either in a swap area or in
     memory) when the next user of the file executes it, thus making execution
     faster.

     Under other implementations, chmod fails if either of the following is
     true:

     [ENOLINK]     path points to a remote machine and the link to that
                   machine is no longer active.

     [EMULTIHOP]   Components of path require hopping to multiple remote
                   machines.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026