Imagine a catalog service that starts successfully in a developer's shell but fails in production:
The file exists. Its contents are valid. The failure occurs because the production process carries different user and group credentials, and the file-system permission check does not authorize that process to read the file.
Unix file permissions connect two pieces of state:
Process credentials combined with the file's ownership and mode decide whether an operation is allowed or denied.
Permissions do not belong to a pathname or program name. They are inode metadata evaluated against the credentials of the process performing an operation.
The basic model uses an owning user, an owning group, and read, write, and execute bits for three permission classes. The bit meanings change in important ways for directories.
This chapter explains ownership and mode selection, numeric and symbolic permissions, file and directory semantics, sticky, setgid, and setuid bits, umask, permission-changing operations, authorization pitfalls, and Linux inspection.