Early Unix systems were mainly commercial commodities like most software for sale; to run the operating system, you generally had to pay for that right. In 1984 an engineer named Richard Stallman began work on the GNU Project, which was an effort to create an operating system that was like Unix and that could be distributed and used freely by anyone. He currently runs the Free Software Foundation, and many of the programs he and his supporters have created are used in both commercial and open-source versions of Unix.
In 1991 Linus Torvalds, a Finnish graduate student, began work on a Unix-like system called Linux. Linux is actually the kernel, while the parts with which most people are familiar—the tools, shell, and file system—are the creations of others (usually the GNU organization).
As the Linux project gained momentum, it grew into a major contender in the Unix market. Many people are first introduced to Unix through Linux, which makes available to desktop machines the functionality of a Unix machine that used to costs thousands of dollars. The strength of Linux lies in its progressive licensing, which allows for the software to be freely distributable with no royalty requirements.
The permissions of a file are the first line of defense in the security of a Unix system. The basic building blocks of Unix permissions are the read, write, and execute permissions, which are described in the following table:
|Permission||Applied to a Directory||Applied to Any Other Type of File|
|read (r)||Grants the capability to read the contents of the directory or subdirectories.||Grants the capability to view the file.|
|write (w)||Grants the capability to create, modify, or remove files or subdirectories.||Grants write permissions, allowing an authorized entity to modify the file, such as by adding text to a text file, or deleting the file.|
|execute (x)||Grants the capability to enter the directory.||Allows the user to “run” the program.|
|–||No permission.||No permission.|
To change file or directory permissions, you use the chmod (change mode) command. There are two ways to use chmod: symbolic mode and absolute mode.
Applying permissions with chmod’s absolute mode requires a numerical representation of the permissions, which is more efficient and is how the system views permissions. Permissions applied with chmod’s symbolic mode use the familiar rwx format and are easier to understand for most new users.
A file system is a component of Unix that enables the user to view, organize, secure, and interact with files and directories that are located on storage devices.
Everything in Unix is considered to be a file, including physical devices such as DVD-ROMs, USB devices, floppy drives, and so forth. This use of files allows Unix to be consistent in its treatment of resources and gives the user a consistent mechanism of interaction with the system. It’s easy to understand, then, why file systems are an integral part of a Unix operating system.
Here is the complete list of UNIX File structure and their recommended permissions: