I know CHMOD!

The i_know_chmod photo

One day at work, while waiting for a print out, I saw a resume laying on the printer. Being bored, I took a quick peek and noticed something odd under the skills section. It just happens I had my digital camera with me, so I took a picture to share with friends on #lug. Without my knowledge, the picture spread through the Internet, and next thing I know, I was at a grad student social and someone pointed me out as the CHMOD guy.

In case you don't know what chmod is, here's the man page... read it and you too can proudly put CHMOD on your resume!

CHMOD(1)                                                 CHMOD(1)


chmod - change access permissions of files


chmod [options] mode file... POSIX options: [-R] GNU options (shortest form): [-cfvR] [--help] [--version] [--]


chmod changes the permissions of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new permissions. The format of a symbolic mode change argument is `[ugoa...][[+-=][rwxXstugo...]...][,...]'. Such an argument is a list of symbolic mode change com- mands, separated by commas. Each symbolic mode change command starts with zero or more of the letters `ugoa'; these control which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). Thus, `a' is here equivalent to `ugo'. If none of these are given, the effect is as if `a' were given, but bits that are set in the umask are not affected. The operator `+' causes the permissions selected to be added to the existing permissions of each file; `-' causes them to be removed; and `=' causes them to be the only permissions that the file has. The letters `rwxXstugo' select the new permissions for the affected users: read (r), write (w), execute (or access for directories) (x), execute only if the file is a direc- tory or already has execute permission for some user (X), set user or group ID on execution (s), sticky bit (t), the permissions that the user who owns the file currently has for it (u), the permissions that other users in the file's group have for it (g), and the permissions that other users not in the file's group have for it (o). (Thus, `chmod g-s file' removes the set-group-ID (sgid) bit, `chmod ug+s file' sets both the suid and sgid bits, while `chmod o+s file' does nothing.) The `sticky bit' is not described by POSIX. The name derives from the original meaning: keep program text on swap device. These days, when set for a directory, it means that only the owner of the file and the owner of that directory may remove the file from that directory. GNU fileutils 3.16 August 1998 1 CHMOD(1) CHMOD(1) (This is commonly used on directories like /tmp that have general write permission.) A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Any omitted digits are assumed to be leading zeros. The first digit selects the set user ID (4) and set group ID (2) and save text image [`sticky'] (1) attributes. The second digit selects permissions for the user who owns the file: read (4), write (2), and execute (1); the third selects permissions for other users in the file's group, with the same values; and the fourth for other users not in the file's group, with the same values. chmod never changes the permissions of symbolic links, since the chmod system call cannot change their permis- sions. This is not a problem since the permissions of symbolic links are never used. However, for each symbolic link listed on the command line, chmod changes the permis- sions of the pointed-to file. In contrast, chmod ignores symbolic links encountered during recursive directory traversals.


-R Recursively change permissions of directories and their contents.


-c, --changes Verbosely describe the action for each file whose permissions actually changes. -f, --silent, --quiet Do not print error messages about files whose per- missions cannot bechanged. -v, --verbose Verbosely describe the action or non-action taken for every file. -R, --recursive Recursively change permissions of directories and their contents.


--help Print a usage message on standard output and exit successfully. --version Print version information on standard output, then exit successfully. -- Terminate option list. GNU fileutils 3.16 August 1998 2 CHMOD(1) CHMOD(1)


The variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES have the usual meaning.


POSIX 1003.2 only requires the -R option. Use of other options may not be portable. This standard does not describe the 't' permission bit. This standard does not specify whether chmod must preserve consistency by clear- ing or refusing to set the suid and sgid bits, e.g., when all execute bits are cleared, or whether chmod honors the `s' bit at all.


Above we described the use of the `t' bit on directories. Various systems attach special meanings to otherwise mean- ingless combinations of mode bits. In particular, Linux, following System V (see System V Interface Definition (SVID) Version 3), lets the sgid bit for files without group execute permission mark the file for mandatory lock- ing. For more details, see the file /usr/src/linux/Docu- mentation/mandatory.txt.


This page describes chmod as found in the fileutils-3.16 package; other versions may differ slightly. Mail correc- tions and additions to aeb@cwi.nl, aw@mail1.bet1.puv.fi and ragnar@lightside.ddns.org. Report bugs in the program to fileutils-bugs@gnu.ai.mit.edu. GNU fileutils 3.16 August 1998 3

/~leiz/random/i_know_chmod.php last updated on Wed Dec 31 1969