10.4. Devices, Linux Filesystems, and the Filesystem Hierarchy Standard 10.4.1. Objective 1: Create Partitions and Filesystems 10.4.1.1. Disk drives and partitions IDE disks are known as /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd, and so on. SCSI disks are known as /dev/sda, /dev/sdb, /dev/sdc, and so on. Three types of partitions:
Primary Filesystem container. At least one must exist, and up to four can exist on a single physical disk. They are identified with numbers 1 to 4, such as /dev/hda1, /dev/hda2, and so on.
Extended A variant of a primary partition, but it cannot contain a filesystem. Instead, it contains one or more logical partitions. Only one extended partition may exist, and it takes one of the four possible spots for primary partitions.
Logical Created within the extended partition. From 1 to 12 logical partitions may be created. They are numbered from 5 to 16, such as /dev/hda5, /dev/hda6, and so on. Up to 15 partitions with filesystems may exist on a single physical disk. 10.4.1.2. The root filesystem and mount points The top of the filesystem tree is occupied by the root filesystem. Other filesystems are mounted under it, creating a unified filesystem. /etc, /lib, /bin, /sbin, and /dev must be part of the root filesystem. 10.4.1.3. Partition and filesystem management commands The following commands are commonly used to repair and manage filesystems:
fdisk [device] Manipulate or display the partition table for device using a command-driven interactive text interface. device is a physical disk such as /dev/hda, not a partition such as /dev/hda1.
mkfs device Make a filesystem on device.
mkswap device Prepare a partition for use as swap space. 10.4.2. Objective 2: Maintain the Integrity of Filesystems 10.4.2.1. Filesystem Commands
df [directories] Display overall disk utilization information for mounted filesystems on directories.
du [directories] Display disk utilization information for directories.
fsck filesystems Check filesystems for errors and optionally correct them. 10.4.3. Objective 3: Control Filesystem Mounting and Unmounting 10.4.3.1. Managing the filesystem table Table 10-10. Fields found in the /etc/fstab fileEntry | Description |
---|
Device | The device file for the partition holding the filesystem. | Mount point | The directory upon which the filesystem is to be mounted. | Filesystem type | A filesystem type, such as ext2. | Mount options | A comma-separated list. | Dump frequency | For use with dump. | Pass number for fsck | Used at boot time. |
10.4.3.2. Mounting and unmounting The following commands are used to mount and unmount filesystems:
mount device
mount directory
mount device directory Mount filesystems onto the hierarchy. The first and second forms consult /etc/fstab for additional information.
umount device
umount directory Unmount the filesystem on device or mount it on directory. 10.4.3.3. Filesystem types Common filesystem types compatible with Linux include:
ext2 The standard Linux filesystem.
ext3 A journalling filesystem that is backwards-compatible with ext2.
iso9660 The standard CD-ROM format.
vfat The Windows FAT filesystem.
nfs Remote servers.
proc A system abstraction for access to kernel parameters.
swap Swap partitions. 10.4.4. Objective 4: Managing Disk Quota 10.4.4.1. Quota Types
Per-user hard The maximum size for an individual.
Per-user soft A warning threshold.
Per-group hard The maximum size for a group.
Per-group soft A warning threshold.
Grace period A time restriction on the soft limit. 10.4.4.2. Commands
quota user
quota -g group Display quota limits on user or group.
quotaon [filesystems] Enable previously configured disk quotas on one or more filesystems.
quotaoff [filesystems] Disable disk quotas on one or more filesystems.
quotacheck [filesystems] Examine filesystems and compile quota databases. Usually run via cron.
edquota names Modify user or group quotas by spawning a text editor.
repquota filesystems Display a summary report of quota status for filesystems, or use -a for all filesystems: Tip: Enabling quotas requires usrquota and/or grpquota options in /etc/fstab, creation of quota.user and quota.group files at the top of the filesystem, a quotacheck, and a quotaon. 10.4.5. Objective 5: Use File Permissions to Control Access to Files 10.4.5.1. Access control Access control is implemented using a set of properties called the access mode, stored in the inode. Three classes of user are defined:
User The user that owns the file.
Group The group that owns the file.
Other All other users on the system. Three permissions are either granted or not granted to each class of user:
Read (r) Allows access to file contents and listing of directory contents.
Write (w) Allows writing a file or creating files in a directory.
Execute (x) Allows execution of a file and read/write files in a directory. These comprise nine bits in the mode User rwx, Group rwx, and Other rwx. Three additional mode bits are defined:
SUID To grant processes the rights of an executable file's owner.
SGID To grant processes the rights of an executable file's group.
Sticky bit Prohibits file deletion by non-owners. These 12-mode bits are often referred to in octal notation as well as with mnemonic constructs. Mode bits are displayed using such commands as ls and stat. 10.4.5.2. Setting access modes New files receive initial access mode as described by the umask. The umask strips specified bits from the initial mode settings. Typical umasks are 002 and 022. Existing file modes are changed using chmod with either symbolic or octal mode specifications: Symbolic: [ugoa][-+=][rwxXst]
Octal bits: user r, w, x, group r, w, x, other r, w, x rwxrwxrwx = 111111111 = 777 rwxr-xr-- = 111101100 = 751 chmod uses the following syntax:
chmod mode files Modify the access mode on files using a symbolic or octal mode. 10.4.6. Objective 6: Manage File Ownership 10.4.6.1. Concepts 10.4.6.2. Commands
chown user-owner. group-owner files Change the owner and/or group of files to user-owner and/or group-owner.
chgrp group-owner files Change the group ownership of files to group-owner. chgrp functionality is included in chown. 10.4.7. Objective 7: Create and Change Hard and Symbolic Links 10.4.7.1. Concepts A link is a pseudonym for another file. Links take very little space in the filesystem. A symbolic link is a tiny file that contains a pointer to another file. Symbolic links can span filesystems. A hard link is a copy of a file's directory entry. Both directory entries point to the same inode and thus the same data, ownership, and permissions. 10.4.7.2. ln ln has the following syntax: ln file link ln files directory Create link to file or in directory for all files. Symbolic links are created with the -s option. 10.4.8. Objective 8: Find System Files and Place Files in the Correct Location 10.4.8.1. File Hierarchy Standard (FHS) The FHS is used by Linux distributions to standardize filesystem layout . It defines two categories of data use, each with opposing subtypes:
Data sharing Sharable data can be used by multiple host systems on a network. Non-sharable data is unique to one particular host system.
Data modification Variable data is changed continually by naturally occurring (i.e., frequent) processes. Static data is left alone, remaining unchanged over extended periods of time. The FHS seeks to define the filesystem contents in these terms and locate information accordingly. 10.4.8.2. The directory hierarchy The root filesystem: Must contain utilities and files sufficient to boot the operating system, including the ability to mount other filesystems. Should contain the utilities needed by the system administrator to repair or restore a damaged system. Should be relatively small.
/usr contains system utilities and programs that do not appear in the / (root) filesystem. It includes directories such as bin, lib, local, and src. /var contains varying data such as printer spools and log files, including directories such as log, mail, and spool. 10.4.8.3. Locating files |